使用mysql -hxx.xx.xx.xx -uroot -p远程访问服务器上的mysql时报错
Host ' ' is not allowed to connect to this MySQL server
查看用户表:
#在服务器登录mysql
mysql -uroot -p
#查看root用户所在主机情况
SELECT host FROM mysql.user WHERE User = 'root';
发现root用户只能在本地localhost登录,即只存在root@localhost
解决方法
添加root@"其他ip"
用户,并给予权限。
#进入mysql,依次执行如下命令,把你的机器ip地址加入进去
CREATE USER 'root'@'你的ip地址' IDENTIFIED BY '你的密码';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'ip_address';
FLUSH PRIVILEGES;
或者,直接使用通配符‘%’,把所有ip加入进去,方便测试
CREATE USER 'root'@'%' IDENTIFIED BY '你的密码';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
FLUSH PRIVILEGES;
然后退出mysql,在bash终端执行如下命令,重启mysql服务。
sudo service mysqld restart
此时可以进行远程连接了