1、先去mysql官网查看下载地址,经查看对应下载地址为 http://repo.mysql.com/mysql84-community-release-el8-1.noarch.rpm,这个地址可能会更新,务必获取最新地址。
2、执行命令
下载
wget http://repo.mysql.com/mysql84-community-release-el8-1.noarch.rpm
本地安装
yum localinstall mysql80-community-release-el8-5.noarch.rpm
3、验证仓库是否添加成功
[root@VM-8-5-opencloudos /]# yum repolist enabled | grep "mysql.*-community.*"
4、安装成功
[root@VM-8-5-opencloudos /]# systemctl start mysqld
[root@VM-8-5-opencloudos /]# systemctl status mysqld
5、此时没有默认密码是进入不了mysql的。需要直接找到临时密码登录
grep 'temporary password' /var/log/mysqld.log
查询日志信息结果
[root@VM-8-5-opencloudos etc]# grep 'temporary password' /var/log/mysqld.log
2024-12-12T08:30:52.457448Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: /lf0f2ybC0he
6、此时第一次登录需要用临时密码登录
mysql -uroot -p /lf0f2ybC0he
登录成功后需要修改数据库密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxxx';
此时可能会修改不成功,报错如下:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
这个错误表明你设置的新密码不满足当前的密码策略要求。
在 MySQL 8.4 中,默认的密码策略较为严格。你可以通过以下方法调整密码策略以设置新密码:
SHOW VARIABLES LIKE 'validate_password%';
这将显示当前的密码策略设置,例如密码长度要求、密码强度等。
降低密码策略要求:
SET GLOBAL validate_password.policy = 0;
SET GLOBAL validate_password.length = 4;
此时再去执行修改命令,显示成功修改。
退出mysql
exit;
7、此时别以为大功告成了,如果你想用本地的navicat去连接此数据库的话,你会发现连接失败。这是因为可能服务器没开启3306端口。执行命令
firewall-cmd --state
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
然后查看端口号
netstat -tuln
结果显示3306已开启
[root@VM-8-5-opencloudos /]# netstat -tuln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 :::33060 :::* LISTEN
tcp6 0 0 :::3306 :::* LISTEN
udp 0 0 127.0.0.1:323 0.0.0.0:*
udp6 0 0 ::1:323
OK。接下来配置数据库用户使其可以远程访问。
进入数据库后,查看用户
SELECT USER,HOST FROM USER;
发现用户的host 为local host,这说明此用户只允许本地访问,而不允许远程访问,所以继续执行命令为用户授权
GRANT ALL PRIVILEGES ON *.* TO 'username'@'your_client_ip' WITH GRANT OPTION;
将username替换为数据库用户,your_client_ip指的是允许哪个ip访问,如果允许所有主机访问,可以直接写为%。
至此,大功告成,打开本地navicat,输入地址,用户,密码,显示连接成功。
Over!!