1. 程式人生 > >ERROR 2013 (HY000): Lost connection to MySQL server的解決方法

ERROR 2013 (HY000): Lost connection to MySQL server的解決方法

1、進入mysql,建立一個新使用者root,密碼為root

   格式:grant 許可權 on 資料庫名.表名 to 使用者@登入主機 identified by "使用者密碼";            grant select,update,insert,delete on *.* to [email protected] identified by "root";

   原先資料表結構

mysql> use mysql; Database changed mysql> select host,user,password from user; +-----------+------+-------------------------------------------+ | host      | user | password                                  | +-----------+------+-------------------------------------------+ | localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | +-----------+------+-------------------------------------------+

   執行上述語句後結果

mysql> use mysql; Database changed mysql> select host,user,password from user; +--------------+------+-------------------------------------------+ | host         | user | password                                  | +--------------+------+-------------------------------------------+ | localhost    | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | | 192.168.1.12 | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | +--------------+------+-------------------------------------------+ 2 rows in set (0.00 sec)

   可以看到在user表中已有剛才建立的root使用者。host欄位表示登入的主機,其值可以用IP,也可用主機名,

   (1)有時想用本地IP登入,那麼可以將以上的Host值改為自己的Ip即可。

2、實現遠端連線(授權法)

   將host欄位的值改為%就表示在任何客戶端機器上能以root使用者登入到mysql伺服器,建議在開發時設為%。       update user set host = ’%’ where user = ’root’;

   將許可權改為ALL PRIVILEGES

mysql> use mysql; Database changed mysql> grant all privileges  on *.* to

[email protected]'%' identified by "root"; Query OK, 0 rows affected (0.00 sec)

mysql> select host,user,password from user; +--------------+------+-------------------------------------------+ | host         | user | password                                  | +--------------+------+-------------------------------------------+ | localhost    | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | | 192.168.1.12 | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | | %            | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | +--------------+------+-------------------------------------------+ 3 rows in set (0.00 sec)

這樣機器就可以以使用者名稱root密碼root遠端訪問該機器上的MySql.

3、實現遠端連線(改表法)

use mysql;

update user set host = '%' where user = 'root';

這樣在遠端就可以通過root使用者訪問Mysql.

通過上面的方法,在mysql的user表中建立了一個使用者後,重新整理許可權,就可以通過遠端連線mysql了(通過使用者的客戶端的機器連線到伺服器上面的mysql伺服器),不過依然出現了下面的錯誤:
當通過 TCP/IP 連線 MySQL 遠端主機時,出現 ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 104 。如果是在linux shell命令列中直接打 mysql 命令,能夠順利連上 MySQL,執行查詢語句也比較正常,但如果執行 STOP SLAVE; 命令時就隨機出現 ERROR 2013 (HY000): Lost connection to MySQL server during query 問題。而如果把操作命令寫到指令碼檔案再去執行該指令碼檔案的話,則必然出現 Lost connection to MySQL server at 'reading initial communication packet', system error: 111
要是無論通過什麼途徑遠端訪問都出現錯誤可以認為是系統有防火牆之類的限制,但現在這種奇怪的抽筋現象讓人百思不得其解。最後找到的解決方法是在 my.cnf 裡面的 [mysqld] 段增加一個啟動引數

skip-name-resolve

問題消失,原因如下:
http://www.ixpub.net/thread-1326843-1-1.html
所謂反向解析是這樣的:
mysql接收到連線請求後,獲得的是客戶端的ip,為了更好的匹配mysql.user裡的許可權記錄(某些是用hostname定義的)。
如果mysql伺服器設定了dns伺服器,並且客戶端ip在dns上並沒有相應的hostname,那麼這個過程很慢,導致連線等待。

新增skip-name-resolve以後就跳過著一個過程了。
新增上述的引數後,就直接跳過了。希望對同行有幫助。

相關推薦

ERROR 2013 (HY000): Lost connection to MySQL server解決方法

1、進入mysql,建立一個新使用者root,密碼為root:   格式:grant 許可權 on 資料庫名.表名 to 使用者@登入主機 identified by "使用者密碼";            grant select,update,insert,dele

mysql無法連線遠端資料庫(ERROR 2013Lost connection to MySQL server

ERROR 2013 (HY000) Lost connection to MySQL server at ‘reading authorization packet’ 重啟mysql不行就重啟Windows伺服器!!!!!! 重啟mysql不行就重啟Windows伺服器!!!!

_mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query')

RR 時間 bsp strong span serve 方式 同事 clas 最近寫了一個定時腳本,每天淩晨跑,每次跑時間很長。 在測試這個腳本的時候,跑了一個小時,發生一個錯誤,腳本中斷,錯誤如下: _mysql_exceptions.OperationalE

解決workbench MySQL Error Code:2013. Lost connection to MySQL server during query

在MySQL中新建表格時出現了lost connection to MySQL的問題,在網上查了許多的方法修改timeout,max_allowed_packet。 一種方法是在cmd中修改value,但是我重啟mysql以後值就會恢復預設值,下面是修改的方法; 可以用show g

解決1129 host is blocked和MySQL Error (2013): Lost connection to MySQL server

首先說一下我這個問題產生的原因: 由於我的mysql連線的是公司的一臺主機上的服務,下班回家時更新了程式碼,重啟專案到一半的時候由於比較急就直接帶著電腦回家了(公司的主機外網不能訪問),所以資料庫連線就產生了錯誤,然而一直連線重試再連線導致了錯誤次數超過了max_conne

ERROR 2013 at line 38: Lost connection to MySQL server during query

我的資料庫是mysql4.0 1、首先進入mysql。進入資料庫(use databases), 2、輸入: source scansealdb.sql (前提是必須把sql指令碼放到mysql\bin\目錄下) 3、在次輸入cmd.輸入命令:net start mysql。(

解決MySQL Error (2013): Lost connection to MySQL server at waiting for initial communication packet

【錯誤內容】:SQL Error (2013): Lost connection to MySQL server at 'waiting for initial communication packet', system error: 0【錯產生經過】:連結MySQL時出現.

mysql鏈接錯誤:Lost connection to MySQL server at 'reading authorization packet', system error: 0

綁定 ati hostname .cn 進行 通過 bin 主機名 反向 在遠程連接mysql的時候,連接不上,出現如下報錯:Lost connection to MySQL server at ‘reading authorization packet‘, system

Mysql max_allowed_packet Lost connection to MySQL server during query [Err] 2013 - Lost connection to MySQL server during query

[Err] 2013 - Lost connection to MySQL server during query 解決方法: [mysqld] max_allowed_packet=20971520 我設的是20M(1024*1024*20) = 20971520

MySQL報錯解決方案:2013-Lost connection to MySQL server

安裝 今天 線下 ice 開啟 網絡 重新 round 報名 今天上課的時候,在搭建完MySQL測試環境中出現的問題,整理如下: 問題描述:搭建完MySQL,用遠程連接工具(Navicat)連接時報錯: 2013-Lost connection to MySQL serve

Lost connection to MySQL server at 'reading authorization packet', system error: 0_Mysql

timeout error: 配置 err system 設置 cti nec 域名解析 1.大多數時候設置"set global connect_timeout=60;"是可以解決問題的。 我們可以通過執行“SHOWSTATUS LIKE ‘aborted%‘”,可以觀察

Lost connection to MySQL server at 'reading initial communication packet', system error: 104

報錯 SQLSTATE[HY000] [2013] Lost connection to MySQL server at 'reading initial communication packet', system error: 104 "Connection reset by pe

MySQL查詢錯誤程式碼: 2013 Lost connection to MySQL server during query

問題 遇到錯誤程式碼: 2013 Lost connection to MySQL server during query 分析 有許多原因,主要可能是wait_timeout,於是查詢各超時變數 SHOW VARIABLES LIKE "%timeout%"

手把手解決Mysql錯誤:Lost connection to MySQL server at 'reading authorization packet', system error: 0

----------------------------------------------------------------------首先是如何更改Mysql設定-----------------------------------------------------

解決Navicat遠端伺服器2013-Lost connection to MYSQL server at 'reading for initial communication packet'

解決過程:       (3)如果還有問題,請判斷網路問題。(我之前使用跳板IP連線,一直解決不了問題,後來使用內網之後直接就解決了問題,不知道具體錯誤出現在何處?大神之前幫助我也沒解決這個問題。) 可能上面說的都很簡單,而且思路都是別人的,這也是花費

MySQL中查詢時"Lost connection to MySQL server during query"報錯的解決方案

解決 lose tool 查詢 不用 resolv 原因 網上 技術 一、問題描述: mysql數據庫查詢時,遇到下面的報錯信息: 二、原因分析: dw_user 表數據量比較大,直接查詢速度慢,容易"卡死",導致數據庫自動連接超時.... 三、解決辦法: 方案1.在my

使用navicat連接mysql連接錯誤:Lost connection to Mysql server at 'waiting for initial communication packet'

-a 無法連接 through cal .com 圖片 查找 解決 host 使用navicat時,報錯截圖如下: 原因分析: mysql開啟了DNS的反向解析功能,這樣mysql對連接的客戶端會進行DNS主機名查找。 mysql處理客戶端解析過程: 當

Mysql連接錯誤:Lost connection to Mysql server at 'waiting for initial communication packet'

註釋 機器 錯誤 命令 添加 tab localhost grant my.cnf配置 原因分析: mysql開啟了DNS的反向解析功能,這樣mysql對連接的客戶端會進行DNS主機名查找。 mysql處理客戶端解析過程: 1)當mysql的client連過來的時候,服

連線Mysql報錯lost connection to MySQL server at "waiting for initial communication packet

打開了3306埠,設定了user表host為'%',依然無法連線,telnet 3306埠不同,原因是配置檔案中設定了 bind-address: 127.0.0.1,(/etc/mysql/mysql.conf.d/sqld.cnf )把他註釋掉,埠能連上,但是又報下面的錯誤 lost conn

Lost connection to MySQL server at reading initial communic

Debian下Mysql伺服器遠端連線時會出現:Lost connection to MySQL server at 'reading initial communication packet'的錯誤,使用者許可權已設定為允許任意主機連線。其實問題出在Mysql的配置上,在my.cnf裡,有一條是bin