首頁 >資料庫 >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