摘要
在服務(wù)器搭建數(shù)據(jù)庫(kù)后泄朴,一般創(chuàng)建用戶后可通過用戶密碼進(jìn)行本地訪問,如果此時(shí)需要使該數(shù)據(jù)庫(kù)支持異地訪問,比如用戶在本地用Navicat等第三方數(shù)據(jù)庫(kù)工具訪問玫锋,則需要?jiǎng)?chuàng)建一個(gè)可支持異地訪問登錄的用戶挠乳。
解決辦法
- 進(jìn)入服務(wù)器控制臺(tái)(命令行)权薯;
- 設(shè)置當(dāng)前數(shù)據(jù)庫(kù)跳過授權(quán)驗(yàn)證:
修改my.cnf姑躲,去掉#skip-grant-tables前面的“#”,保存退出崭闲。
[root@XXX bin]# vi /etc/my.cnf
- 重啟mysql服務(wù)
[root@XXX bin]# systemctl restart mysql
- 進(jìn)入mysql命令行
[root@XXX bin]# mysql
- 執(zhí)行添加用戶授權(quán)的命令
更改"mysql" 數(shù)據(jù)庫(kù)里的 "user" 表里的 "host"項(xiàng)肋联,從"localhost"改稱"%",即可支持遠(yuǎn)程登錄刁俭。
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'cth19910127' WITH GRANT OPTION;
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
//輸入如上命令后如果出現(xiàn)此錯(cuò)誤橄仍,則繼續(xù)輸入一下命令
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION; //重新再輸一遍
Query OK, 0 rows affected (0.00 sec)
重新設(shè)置數(shù)據(jù)庫(kù)登錄需要授權(quán)驗(yàn)證,即是將第二部去掉的#skip-grant-tables前面的“#”重新補(bǔ)回來(lái)牍戚;
重啟mysql
[root@XXX bin]# systemctl restart mysql
完成以上操作后侮繁,即可用root賬戶進(jìn)行異地登錄。