安装环境:CentOS7
压缩包:mysql-8.0.20-el7-x86_64.tar.gz
官网下载地址:https://dev.mysql.com/downloads/mysql/
我的网盘链接地址:https://pan.baidu.com/s/1CNGeiis7drpufg-1Tno3GQ 提取码:java
1、通过xftp等传输工具将下载好的tar包上传到Linux服务器的/usr/local/目录下
1、由于在CentOS7中MySQL要收费,所以官方决定在CentOS7中默认安装mariadb,现在需先卸载mariadb
(1)查看 mariadb 的安装包
[root@localhost ~]# rpm -qa | grep mariadb
(2)如果有则卸载 mariadb
[root@localhost ~]# rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps
2、检查是否安装过mysql
[root@localhost ~]# rpm -qa | grep mysql
如有则通过以下命令卸载
[root@localhost ~]# rpm -e --nodeps xxx(mysql_libs)
如果之前用yum安装过mysql,则通过以下命令卸载
[root@localhost ~]# yum remove mysql
1、解压 mysql-8.0.20-el7-x86_64.tar.gz包
(1)进入tar包所在目录
[root@localhost ~]# cd /usr/local/
(2)开始解压
[root@localhost local]# tar -zxvf mysql-8.0.20-el7-x86_64.tar.gz
(3)修改目录名称为mysql
[root@localhost local]# mv mysql-8.0.20-el7-x86_64 mysql
(4)进入mysql目录
[root@localhost local]# cd mysql
2、配置MySQL
(1)添加用户组
[root@localhost mysql]# groupadd mysql
(2)创建用户(-s /bin/false参数指定mysql用户仅拥有所有权,而没有登录权限)
[root@localhost mysql]# useradd -r -g mysql -s /bin/false mysql
(3)创建MySQL配置文件存放目录
[root@localhost mysql]# mkdir data
[root@localhost mysql]# mkdir log
[root@localhost mysql]# mkdir conf
(4)进入conf目录
[root@localhost mysql]# cd conf
(5)在conf目录中创建MySQL配置文件
[root@localhost mysql]# vi my.cnf
并输入如下内容(可直接复制粘贴)
[client]
port=3306
socket=/usr/local/mysql/log/mysql.sock
[mysqld]
server-id=47
# 设置连接端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
pid-file=/usr/local/mysql/log/mysql.pid
socket=/usr/local/mysql/log/mysql.sock
log_error=/usr/local/mysql/log/error.log
# 允许最大连接数
max_connections=200
# 允许连接失败的次数
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
# mysql_native_password
default_authentication_plugin=mysql_native_password
最后保存并退出 :wq
并将my.cnf文件复制一份到/etc/目录
[root@localhost conf]# cp my.cnf /etc/
3、初始化MySQL
(1)给mysql目录赋予权限
[root@localhost mysql]# chmod -R 777 /usr/local/mysql
(2)初始化
[root@localhost conf]# cd ..
[root@localhost mysql]# ./bin/mysqld --defaults-file=/usr/local/mysql/conf/my.cnf --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
[root@localhost mysql]# ./bin/mysql_ssl_rsa_setup
(3)将mysql添加到系统进程中
[root@localhost mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
(4)配置MySQL环境变量
[root@localhost mysql]# vim /etc/profile
在文件末尾加上export PATH=$PATH:/usr/local/mysql/bin/
最后保存并退出 :wq
重新加载环境变量配置
[root@localhost mysql]# source /etc/profile
(5)寻找临时密码并复制
ps:找到“A temporary password is generated for…”,最后的字符串比如 “Kll=PBDhs6fc” 就是临时密码,每个MySQL的临时密码都不一样。
[root@localhost mysql]# cd log
[root@localhost log]# more error.log
(6)以临时密码第一次登录MySQL
[root@localhost log]# cd..
[root@localhost mysql]# mysql -u root -p
可能会提示错误 “Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)”
输入以下命令
[root@localhost mysql]# ln -s /usr/local/mysql/log/mysql.sock /tmp/mysql.sock
(7)再次以临时密码登录
[root@localhost mysql]# mysql -u root -p
Enter password: (此处输入刚刚复制的临时密码)
(8)修改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
mysql> flush privileges;
(9)开启远程登录
mysql> use mysql;
mysql> update user set host='%' where user='root';
mysql> flush privileges;
1、重启服务且查看状态
mysql> quit
[root@localhost mysql]# service mysql restart
[root@localhost mysql]# service mysql status
[root@localhost mysql]# chmod +x /etc/init.d/mysql
[root@localhost mysql]# systemctl enable mysql
3、开放防火墙端口
(1)查看防火墙开放端口
[root@localhost mysql]# firewall-cmd --list-all
(2)如果没有开放3306端口,则在防火墙中将3306端口开放
[root@centos7 bin]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
[root@centos7 bin]# firewall-cmd --reload