1.下载,可以去官网或我分享的百度云下载
官网下载链接: https://dev.mysql.com/downloads/mysql/5.7.html
百度网盘链接: https://pan.baidu.com/s/1nrDWUciSyGvA9SkLACQagA 提取码:3wde
2.安装
(1)卸载mariadb,centos7一般自带了个mariadb,它是mysql的一个分支
查看已有的mariadb
yum list installed | grep mariad
执行卸载mariadb,卸载上边找到的mariadb-libs.x86_64(可能每个机器查出来的不同,根据上条命令查出来的卸载即可)
yum -y remove mariadb-libs.x86_64
(2)解压mysql -C参数指定解压目录,这里我解压到/usr/local
tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
(3)重命名 原来的名字太长了,重命名下(不重命名也行,后边命令对应的要变下)
cd /usr/local mv mysql-5.7.24-linux-glibc2.12-x86_64/ mysql-5.7.24
(4)在mysql-5.7.24文件夹目录下创建一个/data/3306文件夹,切换到mysql-5.7.24目录,执行命令
mkdir data cd data mkdir 3306
(5)添加mysql用户及用户组,执行命令:
groupadd mysql
useradd mysql -g mysql
-g: 是指定用户所在组
(6)切换到mysql-5.7.24/bin目录下执行
./mysqld --initialize-insecure --user=mysql --datadir=/usr/local/mysql-5.7.24/data/3306 --basedir=/usr/local/mysql-5.7.24
./mysql_ssl_rsa_setup --datadir=/usr/local/mysql-5.7.24/data/3306
其中第一条命令的 --initialize-insecure 表示不生成临时密码
(7)更改mysql-5.7.24整个文件夹目录权限所属,执行命令
chown -R mysql:mysql /usr/local/mysql-5.7.24
(8)在mysql-5.7.24/data/3306 目录下创建my.cnf文件,内容为下边全部的内容
[client] port = 3306 socket = /usr/local/mysql-5.7.24/data/3306/mysql.sock default-character-set=utf8 [mysqld] port = 3306 socket = /usr/local/mysql-5.7.24/data/3306/mysql.sock datadir = /usr/local/mysql-5.7.24/data/3306 log-error = /usr/local/mysql-5.7.24/data/3306/error.log pid-file = /usr/local/mysql-5.7.24/data/3306/mysql.pid character-set-server=utf8 lower_case_table_names=1 autocommit = 1
(9)启动mysql
在mysql-5.7.24/bin目录下执行命令
./mysqld_safe --defaults-file=/usr/local/mysql-5.7.24/data/3306/my.cnf &
(10)登陆mysql,在mysql-5.7.18/bin目录下执行命令
./mysql -uroot -p -P3306 -h127.0.0.1
(11)修改mysql的密码
alter user ‘root‘@‘localhost‘ identified by ‘123456‘;
(12)授权远程访问,执行命令:(这样远程客户端例如navicat才能访问)
grant all privileges on *.* to root@‘%‘ identified by ‘123456‘;
flush privileges;
其中*.* 的第一个*表示所有数据库名,第二个*表示所有的数据库表;
root@‘%‘ 中的root表示用户名,%表示ip地址,%也可以指定具体的ip地址,比如root@localhost,root@192.168.10.130
flush privileges; 刷新权限。
最后就可以用第三方客户端连接mysql了
(13)关闭mysql
./mysqladmin -uroot -p -P3306 -h127.0.0.1 shutdown
PS:
如果上面授权远程访问执行之后依然远程连接不上mysql,可能是Linux上防火墙拦截了,可以将防火墙先关闭;
systemctl stop firewalld #该命令是临时关闭防火墙,重启centos后失效
systemctl disable firewalld #把防火墙置为不可用#
或者开放端口(建议采用这种方式,比较安全)
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload #重新加载防火墙配置