如何允许所有用户远程访问 mysql?

3 mysql ubuntu

我已经在 unbuntu 上设置了一个 mysql 服务器。服务器为我的各种客户托管网站。因此,我希望他们所有人(以及任何新客户端)都可以远程访问 mysql 服务器。我如何配置 mysql 相同?

我知道该GRANT ALL PRIVILEGES命令,但这需要我单独授予所有用户的远程访问权限。

Rol*_*DBA 7

我强烈建议你不要跑

GRANT ALL PRIVILEGES ON *.* TO 'username'@'%';
Run Code Online (Sandbox Code Playgroud)

该用户具有SHUTDOWN权限,可以允许用户远程关闭mysql

mysqladmin -hIP_of_DB Server -uusername -p shutdown
Run Code Online (Sandbox Code Playgroud)

您也不希望将SUPER 特权远程授予任何人。为什么 ?

SUPER 权限使一个帐户可以使用 CHANGE MASTER TO、KILL 或 mysqladmin kill 来杀死属于其他帐户的线程(您始终可以杀死自己的线程)、PURGE BINARY LOGS、使用 SET GLOBAL 修改全局系统变量的配置更改、mysqladmin调试命令,启用或禁用日志记录,即使启用了 read_only 系统变量也执行更新,在从服务器上启动和停止复制,在存储的程序和视图的 DEFINER 属性中指定任何帐户,并使您能够连接(一次)甚至如果达到由 max_connections 系统变量控制的连接限制。

如果您有多个用户并希望他们访问特定的数据库,则需要创建具有数据库级权限的用户。在SHUTDOWNSUPER权限是不是数据库级的补助金的一部分(见我的文章没有SUPER权限的MySQL用户,为什么)

假设您有一个名为的数据库,mydb并且您想远程访问它。做这个:

GRANT ALL PRIVILEGES ON mydb.* TO 'username'@'%';
Run Code Online (Sandbox Code Playgroud)

我有一个更好的主意给你。您应该通过他们的网络块来限制远程用户

GRANT ALL PRIVILEGES ON mydb.* TO 'username'@'10.20.%';
GRANT ALL PRIVILEGES ON mydb.* TO 'username'@'10.20.30.%';
GRANT ALL PRIVILEGES ON mydb.* TO 'username'@'10.20.30.40';
Run Code Online (Sandbox Code Playgroud)

请注意,在创建数据库级用户访问权限之前,您必须先删除 'username'@'%'。

请参阅我的帖子MySQL error: Access denied for user 'a'@'localhost' (using password: YES)以获取有关 MySQL 用户身份验证范式的完整说明

创建所需用户后,请确保您的防火墙已打开端口 3306。


归档时间:

查看次数:

15094 次

最近记录:

11 年,2 月 前