当前位置: 首页 > 面试题库 >

允许所有远程连接,MySQL

须捷
2023-03-14
问题内容

我一直在使用SQL Server,现在正在将MySQL用于一个项目。使用SQL
Server,我们的开发人员可以在知道主机,用户名和密码的情况下连接到本地计算机上的远程数据库。但是,使用MySQL,要使开发人员能够从其本地计算机访问,我一直必须登录MySQL并执行:

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

address开发人员机器的IP地址在哪里。当然,如果他们更改网络,则必须再次执行。有没有一种方法可以允许所有远程连接(如我在SQL
Server中所经历的那样),或者由于某种原因这是一个坏主意吗?我们仍然有用户名和密码。.显然我有些困惑。

另外:这是一个开发数据库,​​只能从我们的内部网络访问。我知道为什么让所有人都可以访问生产数据库是个坏主意。


问题答案:

正如上面Ryan指出的,您需要的命令是

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';

在此处阅读完整的文档。

这是相关的参考资料:

以root用户身份连接到服务器后,可以添加新帐户。以下语句使用GRANT设置四个新帐户:

mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
    ->     WITH GRANT OPTION;
mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
    ->     WITH GRANT OPTION;
mysql> CREATE USER 'admin'@'localhost';
mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';
mysql> CREATE USER 'dummy'@'localhost';

这些语句创建的帐户具有以下属性:

其中两个帐户的用户名是monty,密码是some_pass。这两个帐户都是具有完全权限执行任何操作的超级用户帐户。仅在从本地主机连接时才能使用“
monty” @“ localhost”帐户。“ monty” @“%”帐户将“%”通配符用于主机部分,因此可用于从任何主机进行连接。

必须同时拥有两个帐户,才能作为帐户从任何地方连接
。如果没有localhost帐户,当monty从本地主机连接时,由mysql_install_db创建的localhost匿名用户帐户将具有优先权。结果,monty将被视为匿名用户。原因是匿名用户帐户比“
monty”
@“%”帐户具有更特定的“主机”列值,因此在用户表排序顺序中排在较早的位置。(在第6.2.4节“访问控制,阶段1:连接验证”中讨论了用户表排序。)

除非我误解,否则这对我来说似乎很愚蠢。



 类似资料:
  • 问题内容: 我已经在本地计算机上安装了MySQL Community Edition 5.5,并且希望允许远程连接,以便可以从外部源进行连接。 我怎样才能做到这一点? 问题答案: MySQL默认情况下允许这样做。 默认情况下禁用的是远程访问。如果要启用它,请在本地运行此SQL命令: 然后找到以下行并将其 注释 在文件中,该文件通常位于Unix / OSX系统上。在某些情况下,文件的位置是/etc/

  • 我正在尝试允许SQL Server Express的远程连接。当使用Visual Studio从计算机A连接到计算机B上的SQL Server时,出现错误: 建立与SQL Server的连接时发生网络相关或实例特定的错误。找不到或无法访问服务器。验证实例名称是否正确,以及是否将SQL Server配置为允许远程连接 我遵循了下面的步骤,但没有帮助。 在要从远程计算机连接到的SQL Server实例

  • 本文向大家介绍MySql允许远程连接如何实现该功能,包括了MySql允许远程连接如何实现该功能的使用技巧和注意事项,需要的朋友参考一下  MySql允许远程连接如何实现该功能 要达到这个目的需要实现两点 开通用户权限 解除本地绑定 开通用户权限 首先登陆服务器端的MySQL 效果图 执行了代码以后会看到所有的用户以及对应的host 其中host的意思就是指允许访问的Ip地址,%的意思就是任何IP,

  • 本文向大家介绍Centos忘记mysql密码及允许远程连接的方法,包括了Centos忘记mysql密码及允许远程连接的方法的使用技巧和注意事项,需要的朋友参考一下   1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库。 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的状态下,其他的用户也可以任意地登录和修改MySQL的信息。可以采用将

  • 本文向大家介绍CentOS 8 安装 MySql并设置允许远程连接的方法,包括了CentOS 8 安装 MySql并设置允许远程连接的方法的使用技巧和注意事项,需要的朋友参考一下 下载,安装先检查系统中是否有mysql ,MariaDB,如有,先卸载 如图,我的系统中存在mariaDB数据, 执行卸载如有mysql同理卸载方法相同 安装依赖环境 ,我们直接使用yum安装,依次执行 下载国内的MyS

  • 本文向大家介绍SQL2005、SQL2008允许远程连接的配置说明(附配置图),包括了SQL2005、SQL2008允许远程连接的配置说明(附配置图)的使用技巧和注意事项,需要的朋友参考一下 SQL Server 2005允许远程连接的配置说明 在尝试从远程计算机连接到 Microsoft SQL Server 2005 实例时,可能会接收到错误消息。在使用任何程序连接到 SQL Server 时