一、利用dnf安装mysql8

如果是centos8以下的建议用下面第二种方式安装mysql8

1、安装脚本

  1. #---------------------------------------------------
  2. #mysql8自动安装脚本
  3. #---------------------------------------------------
  4. #---------------------------------------------------
  5. #1、用最新的包安装管理器dnf安装mysql8.0
  6. echo '(1/3)开始自动安装mysql'
  7. dnf install -y @mysql
  8. #---------------------------------------------------
  9. #2、启动MySQL服务并使它在开机自动启动
  10. echo '(2/3)启动MySQL服务并使它在开机自动启动'
  11. systemctl enable --now mysqld
  12. #---------------------------------------------------
  13. #3、检查MySQL服务器是否正在运行
  14. echo '(3/3)检查MySQL服务器状态'
  15. systemctl status mysqld
  16. echo 'mysql自动安装完成,请输入mysql_secure_installation进行添加密码及安全设置'
  17. ps -ef | grep mysql

2、添加密码及安全设置

  1. 输入mysql_secure_installation回车

image.png
image.png

3、配置远程登陆

如果需要设置root账户远程登陆,上一步骤中,禁用root的远程登陆?这一步需要设为n。
接下来本机登录MySQL,将root用户的host字段设为’%’,意为接受root所有IP地址的登录请求:
本机登录MySQL:

  1. mysql -uroot -p<上面步骤中设置的密码>

回车后即可登录,接下来终端变成了mysql>开头:
image.png
接着继续执行mysql语句,将将root用户的host字段设为’%’:

  1. use mysql;
  2. update user set host='%' where user='root';
  3. flush privileges;

设置完成后输入exit退出mysql,回到终端shell界面,接着开启系统防火墙的3306端口:

  1. firewall-cmd --add-port=3306/tcp --permanent
  2. firewall-cmd --reload

关闭MySQL主机查询dns#

MySQL会反向解析远程连接地址的dns记录,如果MySQL主机无法连接外网,则dns可能无法解析成功,导致第一次连接MySQL速度很慢,所以在配置中可以关闭该功能。
打开/etc/my.cnf文件,添加以下配置:

  1. [mysqld]
  2. skip-name-resolve

重启服务

  1. systemctl restart mysqld

本机测试安装后,MySQL8.0默认已经是utf8mb4字符集,所以字符集不再修改

二、yum安装mysql8

centos7及以下的建议用此方式安装mysql8

1、获取mysql官网rpm

  1. wget http://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
  2. sudo yum localinstall mysql80-community-release-el7-2.noarch.rpm

2、yum安装MySQL8

  1. sudo yum install mysql-community-server

如果提示GPG公钥未安装、密钥不适用、密钥过期的情况则先执行以下再执行mysql安装

  1. rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

3、启动mysql服务

  1. systemctl start mysqld

4、查看mysql服务运行状态

  1. systemctl status mysqld

5、查看root临时密码

  1. cat /var/log/mysqld.log | grep "A temporary password"

6、登录mysql

  1. mysql -u root -p 回车
  2. 然后输入初始的密码:xxxxxxxx 也可以复制进去按回车

7、修改初始的密码

  1. #修改默认密码701-sql8-mima
  2. alter user user() identified by "701-Sql8-mima";
  3. #刷新权限
  4. FLUSH PRIVILEGES;
  5. exit;
  6. mysql -u root -p
  7. 输入新的密码进行测试登录
  8. show databases;
  9. use mysql;
  10. show tables;
  11. select user, host, authentication_string, plugin from user;

8、开放远程连接

  1. update user set host = '%' where user = 'root' and host='localhost';
  2. #重新启动
  3. systemctl restart mysqld
  4. 如果开了防火墙则要开放3306端口
  5. firewall-cmd --zone=public --add-port=3306/tcp --permanent
  6. firewall-cmd --reload

9、开机启动mysql

  1. vim /etc/rc.local
  2. 添加
  3. #开机启动mysql
  4. service mysqld start
  5. 重启mysql
  6. mysqld restart

10、查看数据库文件位置

  1. mysql -u root -p
  2. show variables like '%dir%';

image.png