准备工作
1、查看是否安装过mysql
rpm -qa | grep -i mysql
2、如果有安装,则删除mysql
yum -y remove MySQL-*
3、删除所有带mysql的文件夹
find / -name mysql
把出现的文件夹都rm -rf掉
4、删除配置文件
rm -rf /etc/my.cnf
5、删除mysql默认密码
rm -rf /root/.mysql_sercret
删除mysql的默认密码,避免出现如下保存
Access denied for user ‘root@localhost’ (using password:yes)
安装MySQL8
1、配置MySQL8安装源
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
2、安装MySQL8
sudo yum --enablerepo=mysql80-community install mysql-community-server
提示下载包,选y,后面有其他提示都选y
配置数据库
1、启动mysql服务
systemctl start mysqld
2、查看mysql运行状态
启动成功
3、设置mysql开机启动
systemctl enable mysqld // 设置开机自启
systemctl daemon-reload // 重启systemctl
4、查看mysql生成的随机密码
grep "password" /var/log/mysqld.log
5、更改密码
- 登录mysql,输入临时密码
mysql -uroot -p
这里我在虚拟机的登录直接成功了,我之前在阿里云安装的mysql这里登录还会报错,要进一步设置配置文件才能登录,以后有机会再补充
- 输入命令,修改密码
alter user 'root'@'localhost' identified by 'root';
这里如果密码设置太简单会报不符合策略的错误,密码策略是大小写字母加数字加符号,就先设置一个复杂的密码
- 修改密码策略
show variables like 'validate_password.%';
- 策略说明(本机学习测试可以修改,服务器上不建议)
-- validate_password.check_user_name 用户名检查,打开的话用户名和密码不能相同,把这个off掉
set global validate_password.check_user_name=off;
-- validate_password.length 最小密码长度,这里最小是8,改成4
set global validate_password.length=4;
-- validate_password.mixed_case_count
-- validate_password.number_count
-- validate_password.policy 验证密码的复杂程度,改成0
set global validate_password.policy=0;
-- validate_password.special_char_count
补充,如果重启mysql密码策略会重置
6、配置远程访问,这里用navicat测试
报2003错误,输入以下命令
use mysql; -- 先选择数据库
grant all privileges on *.* to 'root'@'%' ; -- 向用户授权,但是报错
修改用户的host值
update user set host='%' where user='root';
再执行两次授权命令
因为没刷新所以执行了两次,刷新命令
flush privileges;
此时再次用navicat连接,依然报错2003,查看防火墙
sudo systemctl status firewalld
如果是个人学习可以用下面命令关闭防火墙
#停止firewall
systemctl stop firewalld.service
#禁止firewall开机启动
systemctl disable firewalld.service
开放防火墙3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
命令含义:
–zone #作用域
–add-port=3306/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
重启防火墙,查看开放端口
firewall-cmd --reload
firewall-cmd --list-ports
# 关闭端口的命令
firewall-cmd --zone=public --remove-port=22/tcp --permanent
连接成功
另外,如果是连接服务器的话,要在服务器的控制台安全组开放相应的端口
具体情况具体分析。