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 帳號密碼。