主机连接虚拟机MySQL报错:Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server

    今天在主机上安装了Navicat premium客户端,想连接到虚拟机MySQL服务器上。发现连接时候报错:Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server。出现这种错误,一般是MySQL的远程权限问题导致。

    解决方法就是在MySQL服务器上开启对主机的远程控制权限。

    登录MySQL

    mysql>grant all privileges on db_name.db_table to 'user_name'@'remote_address' identified by 'password' with grant option;

    名词解释:

    db_name:MySQL服务器上的数据库名

    db_table:MySQL服务器上的数据表名

    user_name:远程主机的登录用户名

    remote_address:远程主机IP地址

    password:远程主机的登录密码

    这行命令的意思就是给IP地址为remote_address的远程主机的用户名user_name授予全部操作MySQL的权限(all privileges),远程主机用户密码为password,开放授权的数据表为db_name.db_table。

    "all privileges"可以替换为具体的操作,如"select","update","delete"等。

    如果要开放所有数据库的所有数据表,则"db_name.db_table"可以改为"*.*"。

    有时输入以上命令之后MySQL终端没有任何反应,可以退出MySQL重新登录一次。看到类似"Query OK, 0 rows affected (0.00 sec)"的返回结果则表示开放授权成功。

    另外也可以输入"flush privileges;"来及时刷新开放的权限。

    在主机上再次尝试连接,就会发现连接成功了!

你可能感兴趣的:(数据库)