写点什么

Linux 下通过 tar 包方式安装 MySQL,详细教程

作者:阿柠xn
  • 2022 年 9 月 28 日
    陕西
  • 本文字数:2795 字

    阅读完需:约 9 分钟

写在前面:目前网络上大多数的安装教程采用的是 rpm 的方式,此种方式是需要虚拟机联网完成的,我介绍的是使用 tar 包的方式安装 mysql5.7 的方法。


首先要注意的一点是,在输入命令的时候你一定要注意你是在哪个文件夹下输入的命令,因为不同的文件夹下有些命令可能执行是完全错误的。


还需要注意的一点,我的 mysql 文件叫做 mysql57,我的 mysql57 是安装在/usr/local/文件夹下的,你当然可以按照自己的喜好去选择位置,选择名字,但是最好可以和我统一一下,可以避免很多不必要的麻烦。

准备工作

要安装,必不可少的肯定是安装包了,你可以去 mysql 官网下载 tar 包。


下载完成后还有一步,就是你如果是本地下载的话是需要上传到 linux 虚拟机的,有些虚拟机是可以直接通过拖拽的方式将文件传输进去。但有些是不可以的。我是安装了 lrzsz 工具完成的上传。


最好上传到 /usr/local/ 这里面,因为我的程序就是在这个目录下安装,不统一的话可能又会导致很多问题。


完事具备,我们就开始安装之路吧。

开始安装

1. 卸载系统自带的 Mariadb

[root@ ~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64  #显示这个就意味着有mariadb你是需要卸载的。[root@ ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
复制代码

2.卸载 etc 目录下的 my.cnf 文件

这个文件就是 mysql 的配置文件,就好比 Windows 下的 my.ini 文件。


[root@ ~]# rm /etc/my.cnf   rm: cannot remove ?etc/my.cnf? No such file or directory  #这个提示就是没有此文件,我们就可以进行接下来的操作了
复制代码

3.检查 mysql 是否存在

[root@ ~]# rpm -qa | grep mysql   #没有内容就代表着没有安装
复制代码


如果你已经安装了 mysql,那就需要卸载后再考虑安装。

4. 检查 mysql 组和用户是否存在,如无创建

[root@ ~]# cat /etc/group | grep mysql[root@ ~]# cat /etc/passwd | grep mysql
复制代码


如果两条命令输入后没有反馈就代表不存在,就需要新建

5.创建 mysql 用户组

[root@ ~]# groupadd mysql
复制代码

6.创建 mysql 用户,并加入 mysql 用户组

[root@ ~]# useradd -g mysql mysql
复制代码

7.设置 mysql 用户的密码

要注意这里设置的是 mysql 这个用户的密码,和一会数据库的密码不是一回事。


[root@ ~]# passwd mysql
复制代码

8.解压安装

这里开始就算比较重要且容易出错误的地方了。


上面不是把 mysql-5.7.46-2.7-x86_64.tar.gz 这个压缩包放到 了/usr/local/的里面了,(注意是在 local 里面,不是 local 同一级)


我们就在 local 文件夹下这里进行解压安装。


root@ local]# tar -zxvf mysql-5.7.46-2.7-x86_64.tar.gz   #这一步就是解压安装文件[root@ local]# mv mysql-install/ mysql57  # 这步是把解压后的文件进行一个改名的操作
#更改所属的组和用户[root@ local]# chown -R mysql mysql57/[root@ local]# chgrp -R mysql mysql57/[root@ local]# cd mysql57/
[root@ mysql57]# mkdir data #创建一个data文件夹存放数据
[root@ mysql57]# chown -R mysql:mysql data
复制代码

9.在 etc 下新建配置文件 my.cnf

我们在第二步的时候不是删除了配置文件,此时这里我们需要重新配置一个。


touch my.cnf
复制代码


先新建 my.cnf 这个文件,然后 vi 进去修改内容,具体内容如下:


[mysql]# 设置mysql客户端默认字符集default-character-set=utf8[mysqld]skip-name-resolve#设置3306端口port = 3306# 设置mysql的安装目录basedir=/usr/local/mysql57# 设置mysql数据库的数据的存放目录datadir=/usr/local/mysql57/data# 允许最大连接数max_connections=200# 服务端使用的字符集默认为8比特编码的latin1字符集character-set-server=utf8# 创建新表时将使用的默认存储引擎default-storage-engine=INNODBlower_case_table_names=1max_allowed_packet=16M#配置免密登录skip-grant-tables
[mysqld_safe]# 配置日志文件和进程文件error-log=/usr/local/error.logpid-file=/usr/local/mysql.pid
复制代码


这个配置文件,很多都是与 mysql 的安装路径有关的,所以你如果和我的不统一,就需要做相应的修改。

10.安装与初始化

要注意这些命令是在 mysql57 这个目录下执行的,这点尤为重要


[root@ mysql57]# bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql57/ --datadir=/usr/mysql57/data/[root@ mysql57]# cp ./support-files/mysql.server /etc/init.d/mysqld[root@ mysql57]# chown 777 /etc/my.cnf [root@ mysql57]# chmod +x /etc/init.d/mysqld
复制代码

11.重启

[root@ mysql57]# /etc/init.d/mysqld restartShutting down MySQL.. SUCCESS! Starting MySQL. SUCCESS! 
复制代码

12.设置开机启动

[root@ mysql57]# chkconfig --level 35 mysqld on[root@ mysql57]# chkconfig --list mysqld[root@ mysql57]# chmod +x /etc/rc.d/init.d/mysqld[root@ mysql57]# chkconfig --add mysqld[root@ mysql57]# chkconfig --list mysqld[root@ mysql57]# service mysqld statusSUCCESS! MySQL running (4475)
复制代码

13.设置环境变量

在/etc/profile 这个文件中,要加一句话


export PATH=$PATH:/var/mysql57/bin
复制代码


[root@ mysql57]# source /etc/profile   #重启
复制代码

14.获得初始密码

这个密码就是数据库的密码,其实我们在 my.cnf 里是设置了一个免密登录的,所以这个显得并不是特别必要要知道的。


[root@ ~]# cat /root/.mysql_secret # Password set for user 'root@localhost' at 2022-08-19 16:47:12 7qa2CT1sYO_1
复制代码

15. 修改密码

这里我当时一直会报一个 mysql 命令找不到的错误,后来发现是没有在/usr/local/mysql57/bin 下面执行 mysql 命令,所以导致这一问题解决不了。(后面配置软链接就可以在任何目录下都可以执行 mysql 命令了)


[root@hdp265dnsnfs bin]# mysql -uroot -pmysql> set PASSWORD = PASSWORD('123456');Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;Query OK, 0 rows affected (0.01 sec)
复制代码

16. 添加远程访问权限

这接下来的操作就是为了本地 Navicat 能够远程连接 Linux 虚拟机上的准备。


在本机先使用root用户登录mysql: mysql -u root -p"youpassword" 进行授权操作:
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
重载授权表:
FLUSH PRIVILEGES;
退出mysql数据库:
exit
复制代码



这命令我们可以看出来,root 这个用户,是允许任何用户(%)登录的。

17.重启生效

/bin/systemctl restart  mysql.service
[root@ bin]# /etc/init.d/mysqld restart Shutting down MySQL.. SUCCESS! Starting MySQL. SUCCESS!
复制代码

18.可以在任何目录下登录 mysql

ln -s /usr/local/mysql57/bin/mysql   /usr/bin/mysql
复制代码

19. 开放外部访问数据库

  1. 开放防火墙端口


firewall -cmd --list-all
复制代码


  1. 开放 3306 端口


firewall-cmd --permanent --add-port=3306/tcp
复制代码


  1. 查看 3306 端口是否开放


firewall-cmd --query-port=3306/tcp
复制代码


  1. 次查看现在防火墙


firewall-cmd --list-all
复制代码

20. Navicat 连接



到这里 mysql 的安装过程就结束了。

发布于: 刚刚阅读数: 4
用户头像

阿柠xn

关注

还未添加个人签名 2022.08.29 加入

还未添加个人简介

评论

发布
暂无评论
Linux下通过tar包方式安装MySQL,详细教程_运维_阿柠xn_InfoQ写作社区