linux安装mysql5.7手把手安装教程!
写在前面:目前网络上大多数的安装教程采用的是rpm的方式,此种方式是需要虚拟机联网完成的,我介绍的是使用tar包的方式安装mysql5.7的方法。
首先要注意的一点是,在输入命令的时候你一定要注意你是在哪个文件夹下输入的命令,因为不同的文件夹下有些命令可能执行是完全错误的。
还需要注意的一点,我的mysql文件叫做mysql57,我的mysql57是安装在/usr/local/文件夹下的,你当然可以按照自己的喜好去选择位置,选择名字,但是最好可以和我统一一下,可以避免很多不必要的麻烦。
准备工作
要安装,必不可少的肯定是安装包了,你当然可以去mysql官网下载tar包,但是我也贴心的准备了百度云盘资源:
链接:https://pan.baidu.com/s/1nbtmEI-27ruuJgzZF9OZhQ?pwd=aqar
提取码:aqar
下载完成后还有一步,就是你如果是本地下载的话是需要上传到linux虚拟机的,有些虚拟机是可以直接通过拖拽的方式将文件传输进去。但有些是不可以的。我是安装了lrzsz工具完成的上传。
具体操作可以查看这篇文章:xshell上传本地文件到linux虚拟机,下载虚拟机文件到本地
最好上传到 /usr/local/ 这里面,因为我的程序就是在这个目录下安装,不统一的话可能又会导致很多问题。
完事具备,我们就开始安装之路吧。
开始安装
1. 卸载系统自带的Mariadb
[root@ ~]# rpm -qa|grep mariadb mariadb-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=INNODB lower_case_table_names=1 max_allowed_packet=16M #配置免密登录 skip-grant-tables [mysqld_safe] # 配置日志文件和进程文件 error-log=/usr/local/error.log pid-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 restart Shutting 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 status SUCCESS! 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 -p mysql> 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. 开放外部访问数据库
- 开放***端口
firewall -cmd --list-all
- 开放3306端口
firewall-cmd --permanent --add-port=3306/tcp
- 查看3306端口是否开放
firewall-cmd --query-port=3306/tcp
- 次查看现在***
firewall-cmd --list-all
20. Navicat连接
到这里mysql的安装过程就结束了。
如果你还遇到了什么问题,可以评论留言。