开启 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
在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;