首页 >数据库 >mysql教程 >为什么MySQL的通配符主机'%”不自动授予远程访问权限?

为什么MySQL的通配符主机'%”不自动授予远程访问权限?

Patricia Arquette
Patricia Arquette原创
2024-12-14 01:30:10974浏览

Why Doesn't MySQL's Wildcard Host '%' Automatically Grant Remote Access?

MySQL 用户的远程访问

尝试使用用户 user@'%' 和密码 密码,尽管通配符 % 表示从任何主机访问,但连接失败。

原因失败

MySQL 用户主机字段中的通配符 % 不会自动授予远程访问权限。要远程连接,需要执行以下步骤:

  1. 将 MySQL 绑定到机器的 IP 地址: 在 my.cnf 中配置 MySQL 将端口 3306 绑定到您机器的 IP 地址(或 Windows 上的 my.ini)为如下所示:

    bind-address        = xxx.xxx.xxx.xxx
  2. 在本地主机和通配符中创建用户:使用以下命令在本地主机和%通配符主机中创建用户:

    CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
    CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
  3. 授予权限: 从本地主机和通配符向用户授予所有数据库的完全权限:

    GRANT ALL ON *.* TO 'myuser'@'localhost';
    GRANT ALL ON *.* TO 'myuser'@'%';
    FLUSH PRIVILEGES;

其他注意事项

  • 根据您的操作系统,您可能需要打开端口 3306 以允许远程连接。
  • 确保 MySQL 配置包含skip-name-resolve 选项以防止 DNS 查找。
  • 使用以下命令测试远程连接:

    mysql -h <hostname> -u myuser -pmypass

以上是为什么MySQL的通配符主机'%”不自动授予远程访问权限?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn