MySQL8 设置远程访问授权

    开启 MySQL 的远程登陆帐号有三大步:

    1、确定服务器上的防火墙没有阻止 3306 端口

MySQL 默认的端口是 3306 ,需要确定防火墙没有阻止 3306 端口,否则远程是无法通过 3306 端口连接到 MySQL 的。

如果您在安装 MySQL 时指定了其他端口,请在防火墙中开启您指定的 MySQL 使用的端口号。

如果不知道怎样设置您的服务器上的防火墙,请向您的服务器管理员咨询。


    2、MySQL配置文件中设置本地IP/localhost绑定

[root@localhost ~]# vi /etc/my.cnf

    3、增加允许远程连接 MySQL 用户并授权

本文主要讲解,在MySQL8中如何正确的配置远程访问用户,与MySQL5.7不同之处!


如果你只是想要把root用户允许远程访问,登录mysql后,你可以直接执行以下命令,以下远程授权适用于MySQL8也适用于MySQL5.7。

mysql -uroot -p
mysql> use mysql;
mysql> update user set host = '%' where user ='root';
mysql> flush privileges;
mysql> exit

image.png

在MySQL5.7版本使用grant来进行用户授权


例:创建一个whsir用户,允许所有IP访问,密码是password

mysql> GRANT ALL PRIVILEGES ON *.* TO 'whsir'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

但是从MySQL8版本开始,不能再使用GRANT创建用户,而是要先CREATE USER,然后使用GRANT授权。


上面的例子在MySQL8中的写法:

mysql> CREATE USER 'whsir'@'%' IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; 
mysql> FLUSH PRIVILEGES;

附:查看用户相关信息

mysql> use mysql;
mysql> select host,user,plugin from user;


© 版权声明
THE END