首页 > 数据库 > MySQL > 正文

mysql远程访问权限配置方法详解

2024-07-24 12:36:34
字体:
来源:转载
供稿:网友

由于公司业务需要需要远程访问数据,网上的方法还是蛮多的,但是找了很多都不好用,下面我整理了几个比较靠谱的几个答案下面一起来看看.

例子一,代码如下:

grant all privileges on wxtest.* to root175@111.34.73.175 identified by '11111'

增加一个root175用户,密码为11111,只能在111.34.73.175上登录,并对数据库wxtest有查询,增加,修改和删除的功能,需要在mysql的root用户下进行执行,这个如果以这个用户登录的话是只能看到wxtest这个表的,代码如下:

flush privileges;

刷新权限操作

格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by “密码”;

增加一个test1用户,密码为123456,可以在任何主机上登录,并对所有数据库有查询,增加,修改和删除的功能,需要在mysql的root用户下进行,代码如下:

mysql>grant select,insert,update,delete on *.* to test1@”%” identified by '123456';

mysql>flush privileges;

取消授权,当然,有授权,就一定有取消授权,Sql代码如下:

REVOKE ALL ON *.* FROM admin@X.Y.Z.W;   

FLUSH PRIVILEGES; 

这里需要主要的是一定要在你的防火墙中加上通过3306端口,如过通过的3306端口,试试telnet ip 3306 看看可不可以访问了,如果你的你的防火墙关闭了还没有telnet上去,那你就应该问问空间商了,他们有可能在他们的硬件防火墙上开启了3306,别问我怎么知道,我先哭会去.

Mysql无法远程连接的问题

1、Mysql的端口是否正确

通过netstat -ntlp 查看端口占用情况,一般情况下端口是3306。在用工具连接MySQl是要用到端口。例如My AdminMy Query BrowserMySQl Front等。

2、检查用户权限是否正确

mysql库的user表里有两条记录:host分别为localhost和%(为了安全,%可以换成你需要外部连接的IP)。

3、查看/etc/mysql/my.cnf中,skip-networking 是否已被注掉

需要注掉,报错:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.51.112' (111),代码如下:

  1. sudo gedit /etc/mysql/my.cnf 
  2. #skip-external-locking 
  3.  
  4. #bind-address        = 127.0.0.1 
  5.  
  6. skip-name-resolve //Vevb.com

4、查看iptables是否停掉,没关的情况下,无法连接

通过:service iptables stop临时关闭。

报错:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.51.112' (113)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表