1. 程式人生 > >本地cmd連線遠端mysql資料庫

本地cmd連線遠端mysql資料庫

一、登入遠端mysql

輸入mysql -h要遠端的IP地址 -u設定的MySQL使用者名稱 -p登入使用者密碼

例如:mysql -h 192.168.1.139 -u root -p dorlocaldata

如果不能實現,把MySQL安裝目錄下的MySQL Server 5.7下面的bin資料夾裡的mysql.exe複製到c盤Windows下。)出現ERROR 1045 (28000): Access denied for user '使用者名稱'@'操作的IP地址' (using password: YES)可能是密碼不對的原因。
連線不上可能出現的原因,(

1)未開啟使用者名稱許可權。這時應該在遠端伺服器,使用root登入(mysql -uroot -p),輸入grant all privileges on *.* to'使用者名稱'@'ip地址' identified by'密碼',(分配新使用者的許可權),然後進行重新整理許可權flush privileges;  然後重新啟動mysql服務

(2)遠端伺服器防火牆阻擋遠端連線資料庫,關閉防火牆或者點開windows防火牆,允許程式或功能通過window防火牆中的MySQL進行勾選(可能可允許的程式中沒有MySQL這個選項)。
例子
mysql -uhello -pworld -h192.168.1.88 -P3306 -Dmysql_oa
mysql -u使用者名稱 -p密碼 -h遠端資料庫IP地址 -P埠 -D資料庫名
 

二、異常處理

1.MySQL--is blocked because of many connection errors解決方案

原因:

  同一個ip在短時間內產生太多(超過mysql資料庫max_connection_errors的最大值)中斷的資料庫連線而導致的阻塞;

解決方法:

1、提高允許的max_connection_errors數量(治標不治本):

  ① 進入Mysql資料庫檢視max_connection_errors: show variables like '%max_connect_errors%';

    ② 修改max_connection_errors的數量為1000: set global max_connect_errors = 1000;

  ③ 檢視是否修改成功:show variables like '%max_connect_errors%';

2、使用mysqladmin flush-hosts 

命令清理一下hosts檔案(不知道mysqladmin在哪個目錄下可以使用命令查詢:whereis mysqladmin);

  ① 在查詢到的目錄下使用命令修改:/usr/bin/mysqladmin flush-hosts -h192.168.1.1 -P3308 -uroot -prootpwd;

  備註:

    其中埠號,使用者名稱,密碼都可以根據需要來新增和修改;

    配置有master/slave主從資料庫的要把主庫和從庫都修改一遍的(我就吃了這個虧明明很容易的幾條命令結果折騰了大半天);

    第二步也可以在資料庫中進行,命令如下:flush hosts;