程序員必上的開發(fā)者服務(wù)平臺 —— DevStore
MySQL遠(yuǎn)程訪問的命令
格式: mysql -h主機地址 -u用戶名 -p用戶密碼
示例:
yanggang@host:~$ mysql -h192.168.1.11 -uroot -p123456出現(xiàn)錯誤!無法連接遠(yuǎn)程的MySQL數(shù)據(jù)庫
MySQL遠(yuǎn)程連接數(shù)據(jù)庫,有兩種方式:
mysql.sock和TCP/IP,前者比后者連接訪問速度更快,但僅限于同一臺本機,詳見
上述錯誤,是沒有遠(yuǎn)程訪問權(quán)限導(dǎo)致的
解決方法:
1 在目標(biāo)服務(wù)器上(192.168.1.11),修改mysql的my.cnf文件:
sudo vi /etc/mysql/my.cnf
2 注釋掉bind-address,屏蔽其只對本地監(jiān)聽
#bind-address = 127.0.0.1
3 啟動MySQL服務(wù),使其修改的配置生效,詳見
sudo restart mysql
配置完了服務(wù)器的數(shù)據(jù)訪問權(quán)限,此時還是不能遠(yuǎn)程訪問MySQL數(shù)據(jù)庫
這是因為現(xiàn)在還沒有對服務(wù)器上的數(shù)據(jù)庫或表賦予訪問權(quán)限(GRANT)
4 在服務(wù)器上,登錄MySQL數(shù)據(jù)庫
mysql -u root -p123456
5 對數(shù)據(jù)庫top800賦予權(quán)限
grant all privileges on top800.* to root@192.168.1.22 identified by '123456';
flush privileges;
6 現(xiàn)在可以遠(yuǎn)程訪問服務(wù)器上的MySQL
mysql -h192.168.1.11 -uroot -p123456
默認(rèn),只能訪問information_schema和top800,其中top800是我們在步驟5賦予權(quán)限的數(shù)據(jù)庫
知識拓展:
1 在服務(wù)器上刪除用戶對數(shù)據(jù)庫的訪問權(quán)限:
revoke all privileges on top800.* from root@192.168.1.22 identified by '123456';
2 在服務(wù)器上刪除用戶root:
delete from user where user='yanggang';
3 在修改生效:
flush privileges;
4 在服務(wù)器上查詢用戶: