一、利用dnf安装mysql8
如果是centos8以下的建议用下面第二种方式安装mysql8
1、安装脚本
#---------------------------------------------------
#mysql8自动安装脚本
#---------------------------------------------------
#---------------------------------------------------
#1、用最新的包安装管理器dnf安装mysql8.0
echo '(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 mysqld
echo '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 --permanent
firewall-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.rpm
sudo 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-mima
alter 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 --permanent
firewall-cmd --reload
9、开机启动mysql
vim /etc/rc.local
添加
#开机启动mysql
service mysqld start
重启mysql
mysqld restart
10、查看数据库文件位置
mysql -u root -p
show variables like '%dir%';