MySQL開啟遠端連線權限允許遠端裝置連線資料庫

5 月 22, 2021 | | 0 comments

MySQL因為安全性root帳號,預設只允許localhost連線,想要遠端裝置連線本地端的資料庫,需要設置帳號權限修改為所有host均可訪問,如下指令。

update user set host = '%' where user = 'root';

以上是直接修改root權限的做法,還有第二種比較好的做法是,新增一個使用者,給予hoot均可訪問的權限'%',或使指定只能訪問指定某資料庫權限。

MySQL創建一個新用戶

先以 root 帳號進入 MySQL 的 Console:

> mysql -u root -p 

建立使用者名稱及密碼:

mysql> CREATE USER admin IDENTIFIED BY 'password';  

admin表示使用者帳號為admin,若後面有加入'admin'@'localhost'表示只能localhost本端連入,所以我們需要所有hoot均可訪問權限的設置'%',這邊只需要填入帳號名稱即可'admin'

給定使用者存取權限

mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin';

*.*為所有使用權限,也可針對資料庫database_name.*如下:只能訪問database_name這個資料庫。

mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'admin';

重新載入使用者權限設定

mysql> FLUSH PRIVILEGES;

通知伺服器重新載入權限設定,重新啟動MySQL,測試剛才建立的帳號使用遠端ip連線測試,登入就能成功存取資料庫了。

延伸筆記:

grant all privileges on *.* to root@"%" identified by "password" with grant option;

*.*:第一個 * 代表數據庫名;第二個*代表表名。將所有數據庫裡的所有表都授權給用戶。

若授權某數據庫或數據庫下某張表,則把 * 替換成你所需的數據庫名和表明即可。

root:授予root賬號。 “%”:表示授權的用戶IP可以指定,這裡代表任意的IP地址都能訪問MySQL數據庫。

password:分配賬號對應的密碼,這裡密碼自己替換成你的 root 帳號密碼。