允许所有远程连接,MySQL

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (28)

我一直在使用SQLServer,现在正在使用MySQL作为一个项目。使用SQL Server,如果我们的开发人员知道主机、用户名和密码,就可以连接到本地计算机上的远程数据库。但是,为了让开发人员从本地机器访问MySQL,我不得不登录到MySQL并执行:

GRANT ALL ON *.* to user@address IDENTIFIED BY 'password'; 
flush privileges;

何地address是开发人员机器的IP地址。当然,如果他们改变了网络,我必须再次执行。是否有一种方式允许所有远程连接,就像我在SQLServer中所经历的那样,还是因为某种原因而不是一个好主意?我们还有用户名和密码。我显然有点困惑。

此外:这是一个开发数据库,只能从我们的内部网络访问。我理解为什么让每个人都能访问生产数据库是个坏主意。

提问于
用户回答回答于

需要的命令是

GRANT ALL ON *.* to user@'%' IDENTIFIED BY 'password'; 

但是,请注意,文档表明,为了使此操作正常,另一个用户帐户将从localhost必须为同一用户创建匿名帐户;否则,由mysql_install_db优先,因为它有一个更特定的主机列。

换句话说,为了用户user要能够从任何服务器连接;需要创建2个帐户,如下所示:

GRANT ALL ON *.* to user@localhost IDENTIFIED BY 'password'; 
GRANT ALL ON *.* to user@'%' IDENTIFIED BY 'password'; 
用户回答回答于

可以通过编辑/etc/my.cnf禁用所有安全性:

[mysqld]
skip-grant-tables

扫码关注云+社区