本地可以连接数据库,远程连接mysql不成功

来源:互联网 发布:数据采集仪 编辑:程序博客网 时间:2024/05/17 00:17

版本:Ubuntu16.04


一、使用xshell成功连接Linux服务器,然后命令行执行mysql本地连接命令,可以成功登录mysql数据库,但是使用mysql workbench连接不成功,出现错误:ERROR 2003:Can’t connect to MySQL server on ‘xxxx’<10061>
1、查看3306端口是否被占用netstat -apn|grep 3306:查询结果如下图所示
这里写图片描述
注意红色字体3306的地方,这说明3306被绑定到了本地ip127.0.0.1
2、检查修改my.cnf的配置

vim /etc/mysql/mysql.conf.d/mysqld.cnf

配置绑定ip地址,将bind-address = 127.0.0.1修改为bind-address = 0.0.0.0或注销,保存后退出(若没有修改权限,则赋予该文件修改权限chmod u+w /etc/mysql/mysql.conf.d/mysqld.cnf
重启mysql

/etc/init.d/mysql restart

3、本地cmd重新连接测试
二、出现错误:ERROR 1130:Host ‘xxxx’ is not allowed to connect to this MySQL server
1、检查用户访问的权限:
本地登录数据库,查看mysql数据库里user表的host和user字段

mysql -uroot -pshow databases;use mysql;select host,user from user;

2、MySQL建用户的时候会指定一个host,默认是127.0.0.1/localhost,表示这个用户就只能本机访问, 其它机器用这个用户帐号访问会提示没有权限,修改host改为%,允许所有机器访问

 update user set host='%' where user='root';

3、重启mysql使配置生效

/etc/init.d/mysql restart