一、利用dnf安装mysql8
如果是centos8以下的建议用下面第二种方式安装mysql8
1、安装脚本
#---------------------------------------------------#mysql8自动安装脚本#---------------------------------------------------#---------------------------------------------------#1、用最新的包安装管理器dnf安装mysql8.0echo '(1/3)开始自动安装mysql'dnf install -y @mysql#---------------------------------------------------#2、启动MySQL服务并使它在开机自动启动echo '(2/3)启动MySQL服务并使它在开机自动启动'systemctl enable --now mysqld#---------------------------------------------------#3、检查MySQL服务器是否正在运行echo '(3/3)检查MySQL服务器状态'systemctl status mysqldecho 'mysql自动安装完成,请输入mysql_secure_installation进行添加密码及安全设置'ps -ef | grep mysql
2、添加密码及安全设置
输入mysql_secure_installation回车
3、配置远程登陆
如果需要设置root账户远程登陆,上一步骤中,禁用root的远程登陆?这一步需要设为n。
接下来本机登录MySQL,将root用户的host字段设为’%’,意为接受root所有IP地址的登录请求:
本机登录MySQL:
mysql -uroot -p<上面步骤中设置的密码>
回车后即可登录,接下来终端变成了mysql>开头:
接着继续执行mysql语句,将将root用户的host字段设为’%’:
use mysql;update user set host='%' where user='root';flush privileges;
设置完成后输入exit退出mysql,回到终端shell界面,接着开启系统防火墙的3306端口:
firewall-cmd --add-port=3306/tcp --permanentfirewall-cmd --reload
关闭MySQL主机查询dns#
MySQL会反向解析远程连接地址的dns记录,如果MySQL主机无法连接外网,则dns可能无法解析成功,导致第一次连接MySQL速度很慢,所以在配置中可以关闭该功能。
打开/etc/my.cnf文件,添加以下配置:
[mysqld]skip-name-resolve
重启服务
systemctl restart mysqld
本机测试安装后,MySQL8.0默认已经是utf8mb4字符集,所以字符集不再修改
二、yum安装mysql8
1、获取mysql官网rpm
wget http://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpmsudo yum localinstall mysql80-community-release-el7-2.noarch.rpm
2、yum安装MySQL8
sudo yum install mysql-community-server
如果提示GPG公钥未安装、密钥不适用、密钥过期的情况则先执行以下再执行mysql安装
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
3、启动mysql服务
systemctl start mysqld
4、查看mysql服务运行状态
systemctl status mysqld
5、查看root临时密码
cat /var/log/mysqld.log | grep "A temporary password"
6、登录mysql
mysql -u root -p 回车然后输入初始的密码:xxxxxxxx 也可以复制进去按回车
7、修改初始的密码
#修改默认密码701-sql8-mimaalter user user() identified by "701-Sql8-mima";#刷新权限FLUSH PRIVILEGES;exit;mysql -u root -p输入新的密码进行测试登录show databases;use mysql;show tables;select user, host, authentication_string, plugin from user;
8、开放远程连接
update user set host = '%' where user = 'root' and host='localhost';#重新启动systemctl restart mysqld如果开了防火墙则要开放3306端口firewall-cmd --zone=public --add-port=3306/tcp --permanentfirewall-cmd --reload
9、开机启动mysql
vim /etc/rc.local添加#开机启动mysqlservice mysqld start重启mysqlmysqld restart
10、查看数据库文件位置
mysql -u root -pshow variables like '%dir%';


