ERROR 2003 ( HY000 ) : Can ‘t connect to MySQL server on ‘ xxx.xxx.xxx.xxx ‘,

远程登陆数据库的时候出现了下面出错信息 :

ERROR 2003 ( HY000 ) : Can 't connect to MySQL server on ' xxx.xxx.xxx.xxx ',

ERROR 2003 ( HY000 ) : Can ‘t connect to MySQL server on ‘ xxx.xxx.xxx.xxx ‘,_第1张图片

这是需要ubuntu开启3306端口,设置远程访问
1,mysql没有设置相应的数据权限,修改mysql数据库中的user表使相应的用户能从某一主机登陆

mysql -u root –p
mysql>use mysql;
mysql>select host, user from user;

查询user表的登录主机权限数据
ERROR 2003 ( HY000 ) : Can ‘t connect to MySQL server on ‘ xxx.xxx.xxx.xxx ‘,_第2张图片
localhost表示只允许本机访问,要实现远程连接,可以将root用户的host改为%,%表示允许任意host访问,如果需要设置只允许特定ip访问,则应改为对应的ip。

修改root用户的host字段

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

使本次修改立即生效,命令:flush privileges

现在再查询一下

mysql>select host, user from user;

ERROR 2003 ( HY000 ) : Can ‘t connect to MySQL server on ‘ xxx.xxx.xxx.xxx ‘,_第3张图片

2,查看3306端口是否开放

netstat -an|grep 3306

如下图所示则是没有开放接口
在这里插入图片描述

修改MySQL的配置文件
(我这边是在这个目录,每个人目录不同) /etc/mysql/mysql.conf.d/mysqld.cnf,
因为默认3306端口只允许本地访问的,注释掉这行
在这里插入图片描述
在这里插入图片描述
再用命令netstat -an|grep 3306查看是否开放3306端口,下图是开放了端口3306的样子
在这里插入图片描述
3,修改端口号
在全局配置文件搜索port关键字,如果有且未注释,则保持原状,如果没有,则在配置文件的[mysqld] 块中加入

port = 3306

4,重启服务

service mysql restart

现在可以远程登陆数据库了,不信你试试

你可能感兴趣的:(mysql,php)