MySQL遠程訪問的命令
格式:mysql -h主機地址-u用戶名 -p用戶密碼
示例:
yanggang@host:~$ mysql -h192.168.1.11 -uroot -p123456
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.11' (111)
出現錯誤!無法連接遠程的MySQL數據庫
MySQL遠程連接數據庫,有兩種方式:
mysql.sock和TCP/IP,前者比後者連接訪問速度更快,但僅限於同一台本機,詳見
上述錯誤,是沒有遠程訪問權限導致的
解決方法:
1 在目標服務器上(192.168.1.11),修改mysql的my.cnf文件:
sudo vi /etc/mysql/my.cnf
2 注釋掉bind-address,屏蔽其只對本地監聽
#bind-address = 127.0.0.1
3 啟動MySQL服務,使其修改的配置生效,詳見
sudo restart mysql
配置完了服務器的數據訪問權限,此時還是不能遠程訪問MySQL數據庫
這是因為現在還沒有對服務器上的數據庫或表賦予訪問權限(GRANT)
4 在服務器上,登錄MySQL數據庫
mysql -u root -p123456
5 對數據庫top800賦予權限
grant all privileges on top800.* to [email protected] identified by '123456';
flush privileges;
6 現在可以遠程訪問服務器上的MySQL
mysql -h192.168.1.11 -uroot -p123456
默認,只能訪問information_schema和top800,其中top800是我們在步驟5賦予權限的數據庫
知識拓展:
1 在服務器上刪除用戶對數據庫的訪問權限:
revoke all privileges on top800.* from [email protected] identified by '123456';
2 在服務器上刪除用戶root:
delete from user where user='yanggang';
3 在修改生效:
flush privileges;
4 在服務器上查詢用戶:
摘自Sunboy_2050的專欄