如何为用户授予对mysql服务器的远程访问权限?

2021-11-20 00:00:00 connection mysql grant

如果我在我的 mysql 数据库中执行 SHOW GRANTS 我得到

If I do SHOW GRANTS in my mysql database I get

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

如果我没记错的话,root@localhost 表示用户root 只能从localhost 访问服务器.我如何告诉 MySQL 授予 root 从其他机器(在同一网络中)访问这个 mysql 服务器的权限?

If I am not mistaken, root@localhost means that user root can access the server only from localhost. How do I tell MySQL to grant root the permission to access this mysql server from every other machine (in the same network), too?

推荐答案

这会在 *.example.com 中的任何机器上使用相同的密码授予 root 访问权限:

This grants root access with the same password from any machine in *.example.com:

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

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

If name resolution is not going to work, you may also grant access by IP or subnet:

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

MySQL GRANT 语法文档.

MySQL GRANT syntax docs.

相关文章