运行环境:VMware虚拟机安装Centos7,保证网络畅通且可以访问外网。
1.MySQL下载
(1)下载wget
[root@hadoop102 ~]# yum -y install wget
(2)使用wget下载MySQL安装包
[root@hadoop102 ~]# wget https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
2.MySQL安装
(1)将下载好的MySQL进行安装
[root@hadoop102 ~]# rpm -ivh mysql57-community-release-el7-8.noarch.rpm
(2)安装MySql服务
- 切换路径到cd /etc/yum.repos.d/
[root@hadoop102 ~]# cd /etc/yum.repos.d/
[root@hadoop102 yum.repos.d]#
- 安装MySQL服务时可能会报错,因为GPG秘钥可能过期,所以在安装前执行以下命令防止安装失败。
[root@hadoop102 yum.repos.d]# rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
- 安装MySQL服务。
[root@hadoop102 yum.repos.d]# yum -y install mysql-server
3.修改MySQL密码
(1)启动MySQL
测试是否安装成功(没有报错说明成功启动)。
[root@hadoop102 yum.repos.d]# systemctl start mysqld
(2)获取临时密码
MySQL安装成功后会自动生成临时密码,登录之前需要先获取到这个临时密码。可以看到,我的临时密码是J;(78sd=jA0y
[root@hadoop102 yum.repos.d]# grep 'temporary password' /var/log/mysqld.log
2022-10-31T09:36:19.459946Z 1 [Note] A temporary password is generated for root@localhost: J;(78sd=jA0y
(3)使用临时密码登录MySQL
命令和windows中一样,-u后跟用户名,-h后跟ip地址,-P后跟端口号,最后写密码-p(暗文输入保证安全)。
[root@hadoop102 yum.repos.d]# mysql -uroot -p
Enter password:
(4)修改密码强度为低风险
mysql> set global validate_password_policy=LOW;
(5)修改密码长度
长度可以自定义修改,我这里用的是6。
mysql> set global validate_password_length=6;
(6)修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
修改成功后可以使用exit命令退出mysql,用新密码登录测试一下。
4.允许远程访问MySQL
(1)关闭防火墙
必须要关闭防火墙,可以先查看防火墙状态。
[root@hadoop102 ~]# systemctl status firewalld
我这里是关闭状态,如果不是关闭状态可以执行下面这行代码来关闭防火墙并阻止开机自启动。
[root@hadoop102 ~]# systemctl disable firewalld
(2)在mysql中查看数据库
mysql> show databases;
(3)切换到mysql数据库
mysql> use mysql;
Database changed
(4)查看user表
可以看到,root用户只能在localhost主机登录。
mysql> select Host,User from user;
+-----------+---------------+
| Host | User |
+-----------+---------------+
| localhost | root |
| localhost | mysql.session |
| localhost | mysql.sys |
+-----------+---------------+
3 rows in set (0.00 sec)
mysql>
(5)将权限修改为允许任意地址访问
mysql> update user set Host='%' where User='root';
(6)刷新权限
mysql> flush privileges;
再次查看user表,发现修改成功。
mysql> select Host,User from user;
+-----------+---------------+
| Host | User |
+-----------+---------------+
| % | root |
| localhost | mysql.session |
| localhost | mysql.sys |
+-----------+---------------+
3 rows in set (0.00 sec)
mysql>
(7)使用Navicat测试连接MySQL
新建连接MySQL的连接后输入ip、用户名和密码,点击测试连接,弹出连接成功,说明MySQL远程访问修改成功。