如何授予用户的远程访问权限到MySQL服务器?

如果我在我的MySQL数据库中做SHOW GRANTS

 GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD 'some_characters' WITH GRANT OPTION 

如果我没有弄错, root@localhost意味着root用户只能从localhost访问服务器。 我如何告诉MySQL授予root权限访问这个mysql服务器从其他机器(在同一个networking)呢?

这将从*.example.com任何计算机使用相同的密码授予root访问权限:

 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%.example.com' IDENTIFIED BY 'some_characters' WITH GRANT OPTION; FLUSH PRIVILEGES; 

如果名称parsing不起作用,您也可以通过IP或子网授予访问权限:

 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.%'  IDENTIFIED BY 'some_characters'  WITH GRANT OPTION; FLUSH PRIVILEGES; 

MySQL GRANT语法文档。

尝试:

 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Pa55w0rd' WITH GRANT OPTION; 

你需要采取一些步骤来确保第一个mysql然后root用户可以从外部访问:

  1. 禁用my.cnf skip-networking (即: my.cnf

  2. 检查my.cnfbind-address值,如果设置为127.0.0.1 ,则可以将其更改为0.0.0.0以允许从所有IP或任何要连接的IP访问。

  3. 授予远程访问根用户从任何IP(或指定您的IP而不是%

     GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_root_password' WITH GRANT OPTION; FLUSH PRIVILEGES;` 
  4. 重新启动mysql服务:

     sudo service mysql restart 
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'YOUR_PASS' WITH GRANT OPTION; FLUSH PRIVILEGES; 

*.* = DB.TABLE可以将用户限制在特定的数据库和特定的表中。

'root'@'%'你可以用你创build的任何用户来改变root,%是允许所有的IP。 你可以通过改变%.168.1.1等来限制它。

这些SQL授予其他人共享做的工作。 如果您仍然无法访问数据库,则可能只是为端口设置了防火墙限制。 这取决于你的服务器types(以及其间的任何路由器)如何打开连接。 打开TCP端口3306入站,并为外部机器(全部/子网/单个IP /等)提供一个类似的访问规则。

在我的情况下,我试图连接到分OS的远程MySQL服务器。 经过许多解决scheme(授予所有权限,删除IP绑定,启用networking)问题仍然没有得到解决。

事实certificate,在研究各种解决scheme时,我遇到了iptables,这让我意识到mysql端口3306不接受连接。

这里是我如何检查和解决这个问题的小记事。

  • 检查端口是否接受连接:
  telnet(mysql服务器ip)[portNo] 

– 添加ip表规则以允许端口上的连接:

  iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT 

– 不推荐在生产环境中使用,但是如果你的iptablesconfiguration不当,添加规则可能不能解决问题。 在这种情况下,应该这样做:

 服务iptables停止 

希望这可以帮助。

这对我有效。 但有一个奇怪的问题,即使我先尝试了那些没有影响的东西。 我更新了phpmyadmin页面,并得到它以某种方式工作。

如果你需要访问local-xampp-mysql。 你可以去xampp-shell – >打开命令提示符。

然后mysql -uroot -p –port = 3306或者m​​ysql -uroot -p(如果有密码设置的话)。 之后,您可以授予这些访问从MySQLshell页面(也可以从本地/ phpmyadmin工作)。

只要添加这些,如果有人发现这个话题,并有初学者的问题。