一、確認my.cnf文件中的bind-address是否被注釋
#bind-address=127.0.0.1
在my.cnf配置文件中,bind-address表示MySQL只接受來自本機的連接,並拒絕所有外部連接。因此,首先需要檢查該選項是否被注釋掉。如果被注釋掉,則說明MySQL默認允許外部連接。
如果該選項未注釋掉,則需要注釋掉或者把127.0.0.1改為0.0.0.0,表示MySQL接受來自所有IP地址的連接。例如:
bind-address=0.0.0.0
二、確保MySQL的用戶表中有root用戶的遠程訪問許可權
在MySQL的用戶表中,每個用戶都有主機和許可權兩種屬性。如果想允許root用戶從外部連接MySQL,則需要確保其主機屬性為「%」(即所有主機),並且有至少一種許可權。
1. 添加root用戶
CREATE USER 'root'@'%' IDENTIFIED BY 'password';
這一步是確保用戶表中存在root用戶,如果已經存在,則可以跳過這一步。
2. 授權給root用戶遠程訪問MySQL
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
這一步是確保root用戶在所有主機上都能夠訪問MySQL。ALL PRIVILEGES表示賦予該用戶所有許可權, ‘*’表示所有資料庫和表。如果只想授權某個資料庫和表,則需要將’*.*’改為具體的資料庫和表。
三、打開防火牆埠
如果MySQL所在的伺服器有防火牆,則需要打開3306埠(MySQL默認埠)以允許外部連接。例如:
firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload
四、重啟MySQL服務
最後一步是重啟MySQL服務以使更改生效。
systemctl restart mysqld
總結
通過以上步驟,我們可以把MySQL設置為允許外部連接,並且通過授權不同的用戶不同的許可權,保證MySQL的安全性。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/247871.html