php无法连接远程mysql数据库_无法连接远程MySQL数据库的解决方案

今天配置服务器的数据库,之前有印象,所以直接就是按照下面的方法,在服务器上添加了一个user用于远程连接。 -- 查看usermysql use mysql;mysql select host,user,password from user;-- 创建新usermysql create user username identified by userpwd;# 或m

今天配置服务器的数据库,之前有印象,所以直接就是按照下面的方法,在服务器上添加了一个user用于远程连接。

-- 查看user

mysql> use mysql;

mysql> select host,user,password from user;

-- 创建新user

mysql> create user 'username' identified by 'userpwd';

# 或

mysql> grant all privileges on *.* to 'username'@'xxx.xxx.xxx.xxx' identified by 'userpwd'; -- 如果任何IP可连接,则@'%'

-- 修改用户名

mysql> rename user 'oldname' to 'newname';-- mysql5之前需要使用update更新user表

-- 删除user

mysql> drop user newuser; -- mysql5之前删除用户时必须先使用revoke 删除用户权限,然后删除用户,mysql5之后drop 命令可以删除用户的同时删除用户的相关权限

-- 更改密码

mysql> update mysql.user set password=password('xxxx') where user='username';

-- 查看用户权限

mysql> show grants for 'username';

-- 赋予权限

mysql> grant select on dbname.* to 'username';

-- 回收权限

mysql> revoke select on dbname.* from 'username';

-- 刷新生效

mysql> flush privileges;

按照以上创建user的方式,查看用户表,有相应的记录后,一般是没有问题了。但是我在客户机还是无法连接。

排除了以下可能的问题:

1、防火墙禁止了3306端口访问。不过大多数Linux的防火墙默认的是不活跃的。像我这里的Ubuntu的ufw,‘ufw status’显示的是‘inactive’。

2、端口不是3306。查看配置文件my.cnf,端口的确是3306,。

后来网上找到了这篇博客http://www.2cto.com/database/201204/127400.html,博主列出了很多可能的问题,其中提到了my.cnf配置文件中bind_address项,我看了该项的注释,果然是它的问题。

[mysqld]

# instead of skip-networking the default is now to listen only on

# localhost which is more compatible and is not less secure

bind-address = 127.0.0.1

将其注释掉之后,连接成功!

希望能给大家节省点时间

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值