1. 程式人生 > >mysql5.7.18 ERROR 2027 (HY000): Malformed packet問題總括

mysql5.7.18 ERROR 2027 (HY000): Malformed packet問題總括

ERROR 2027 (HY000): Malformed packet問題
概要
操作過程
1、本地登入
2、遠端登入
3、在mysql配置檔案my.cnf將query_cache關閉
4、關於read_ rnd_ buffer_ size引數
5、參考資料
mysql 5.6.36 同樣操作
後續

ERROR 2027 (HY000): Malformed packet問題 

概要

  • 資料庫版本:5.7.18
  • 遠端登入mysql,select * from table報ERROR 2027。
  • 資料庫IP地址:192.168.1.21。

操作過程

1、本地登入

  • 本地登入mysql:

 
  1. mysql -uroot -p -S /usr/local/mysql5711/mysql.sock
  • 檢視mysql版本:

 
  1. mysql> select version();
  2. +------------+
  3. | version() |
  4. +------------+
  5. | 5.7.18-log |
  6. +------------+
  7. 1 row in set (0.00 sec)
  • 本地查詢:

 
  1. mysql
    > select * from sanguoyanyi;
  2. +------+--------+
  3. | id | people |
  4. +------+--------+
  5. | 1 | guojia |
  6. +------+--------+
  7. 1 row in set (0.00 sec)

2、遠端登入

  • 遠端登入並查詢:

 
  1. mysql -uroot -p -h192.168.1.21
  2. [email protected].168.1.21 : sbtest 09:37:38> select * from sanguoyanyi;
  3. ERROR
    2027 (HY000): Malformed packet
  • select * 會報錯,但是指定所有欄位正常查詢:

 
  1. [email protected].168.1.21 : sbtest 09:48:46> select id,people from sanguoyanyi;
  2. +------+--------+
  3. | id | people |
  4. +------+--------+
  5. | 1 | guojia |
  6. +------+--------+
  7. 1 row in set (0.00 sec)
  8. [email protected].168.1.21 : sbtest 09:48:56> desc sanguoyanyi;
  9. +--------+-------------+------+-----+---------+-------+
  10. | Field | Type | Null | Key | Default | Extra |
  11. +--------+-------------+------+-----+---------+-------+
  12. | id | int(11) | YES | | NULL | |
  13. | people | varchar(13) | YES | | NULL | |
  14. +--------+-------------+------+-----+---------+-------+
  15. 2 rows in set (0.00 sec)
  • 檢視query_cache設定情況:

 
  1. [email protected].168.1.21 : sbtest 09:38:11> show variables like 'query_cache%';
  2. +------------------------------+----------+
  3. | Variable_name | Value |
  4. +------------------------------+----------+
  5. | query_cache_limit | 2097152 |
  6. | query_cache_min_res_unit | 4096 |
  7. | query_cache_size | 67108864 |
  8. | query_cache_type | ON |
  9. | query_cache_wlock_invalidate | OFF |
  10. +------------------------------+----------+
  11. 5 rows in set (0.01 sec)
  • 關閉query_cache:

 
  1. [email protected].168.1.21 : sbtest 09:49:05> set global query_cache_size=0;
  2. Query OK, 0 rows affected (0.00 sec)
  3. [email protected].168.1.21 : sbtest 09:58:37> set global query_cache_type=0;
  4. Query OK, 0 rows affected (0.00 sec)
  5. [email protected].168.1.21 : sbtest 09:58:53> show variables like 'query_cache%%';
  6. +------------------------------+---------+
  7. | Variable_name | Value |
  8. +------------------------------+---------+
  9. | query_cache_limit | 2097152 |
  10. | query_cache_min_res_unit | 4096 |
  11. | query_cache_size | 0 |
  12. | query_cache_type | ON |
  13. | query_cache_wlock_invalidate | OFF |
  14. +------------------------------+---------+
  15. 5 rows in set (0.00 sec)
  • 關閉qc之後再次查詢,發現此時查詢結果正常

 
  1. [email protected].168.1.21 : sbtest 09:58:58> select * from sanguoyanyi;
  2. +------+--------+
  3. | id | people |
  4. +------+--------+
  5. | 1 | guojia |
  6. +------+--------+
  7. 1 row in set (0.00 sec)

3、在mysql配置檔案my.cnf將query_cache關閉

  • 在配置檔案裡配置:

 
  1. query_cache_size = 0
  2. query_cache_type = 0
  • 然後重新啟動mysql,再進行遠端登入mysql,然後使用select * 查詢,發現沒有報錯。

4、關於read_ rnd_ buffer_ size引數

  • 網上說造成2027的原因是read_ rnd_ buffer_ size設定的太小,導致在初始化cache的時候,發現“只能存放小於等於2個記錄”,但實際上此值為16M,足夠大。

 
  1. mysql> show variables like 'read_rnd_buffer_size';
  2. +----------------------+----------+
  3. | Variable_name | Value |
  4. +----------------------+----------+
  5. | read_rnd_buffer_size | 16777216 |
  6. +----------------------+----------+
  7. 1 row in set (0.00 sec)
  • 為了排除這個引數的影響,嘗試將此值改小

 
  1. [email protected].168.1.21 : sbtest 10:03:25> set global read_rnd_buffer_size=64000;
  2. Query OK, 0 rows affected (0.00 sec)
  3. 相關推薦

    mysql5.7.18 ERROR 2027 (HY000): Malformed packet問題總括

    ERROR 2027 (HY000): Malformed packet問題 概要 操作過程 1、本地登入 2、遠端登入 3、在mysql配置檔案my.cnf將query_cache關閉 4、關於read_ rnd_ buf

    Linux下MySQL5.7.18二進制包安裝(無默認配置文件my_default.cnf)

    一點 utf8 user 二進制 width which 密碼 用戶 location 本文出處:http://www.cnblogs.com/wy123/p/6815049.html 最新在學習MySQL,純新手,對Linux了解的也不多,因為是下載

    Linux系統下安裝Mysql5.7.18教程收集分享

    最後一行 sdn 作者 tails lin 分享 使用 心態 html 本人最近服務器新手入門,需要搭建一個在linux虛擬機上的服務器 第一天再裝虛擬機,選的linux系統CentOS,一切順利。 第二天,要給虛擬機裝Mysql,但是需要用到命令行進行安裝/操作等,我是一

    CentOS6.5 yum安裝mysql5.7.18

    target 密碼 ssl align -1 下載 targe log eas 由於最近工作要做MySQL集群,所以需要安裝MySQL,本機可以聯網,如不能聯網可參看rpm安裝方法,廢話不多,具體安裝步驟如下: 1,下載MySQL   wget https://repo.m

    mysql5.7.18手動配置

    1-1 mysq mysql5.7 mysql logs cnblogs 5.7 -1 手動配置 mysql5.7.18手動配置

    win10下一鍵安裝mysql5.7.18

    bsp .cn sql src ima 分享 安裝 一鍵安裝mysql com win10下一鍵安裝mysql5.7.18

    mysql5.7.18的安裝與主從復制

    state lec pos 存在 mysql主從 dir hub 我們 .com CentOS6.7安裝mysql5.7.18      1、 解壓到/usr/local目錄     # tar -zxvf mysql-5.7.18-linux-glibc2.5-i686

    Centos7 下Mysql5.7.18的安裝和簡單主從

    mysql centos7 安裝 Mysql5.7.18的安裝#下載解壓tar包wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gztar -zxvf mysql-5.

    Linux rhel7 下MySQL5.7.18詳細安裝文檔

    -s stat mar log 文件夾 title /usr 初始化 端口 Linux rhel7 下MySQL5.7.18詳細安裝文檔 本文安裝MySQL5.7使用的是vm虛擬機rhel7操作系統 ,ftp文件傳輸是FileZilla3.27,遠

    centos6.4下安裝mysql5.7.18

    https chmod stat groupadd grep 內容 nload inf c-c 1、安裝前工作 在安裝前需要確定現在這個系統有沒有 mysql,如果有那麽必須卸載(在 centos7 自帶的是 mariaDb 數據庫,所以第一步是卸載數據庫)。 卸載系統自帶

    安裝MySQL5.7.18遇到的坑

    load 詳細 停止 cmd 級別 系統 post 內容 net 最近才註意到MySQL的各個版本之間差別還挺大的,比如5.5.x版本的timestamp類型列只能有一個設置為default CURRENT_TIMESTAMP的,於是嘗試了換成一個新版本是mysql,但是不

    Centos7.3下mysql5.7.18安裝並修改初始密碼的方法

    ice version 分享 form for 榮耀 serve 密碼 doc 1、官方安裝文檔 http://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/ 2、下載 Mysql yum包 http://dev.mysql

    MySQL5.7.18基於GTID的主從複製過程實現

    GTID是5.6時加入的,在5.7中被進一步完善,生產環境建議在5.7版本中使用.GTID全稱為Global Transaction Identifiers,全域性事務識別符號.GTID的複製完全是基於事務的,每一個事務對應一個GTID.因此事務執行具有唯一ID,主從複製時,無需再指定POS位置,只要對比ID

    Centos7.3.1611安裝mysql5.7.18 rpm教程 並設定datadir

    一、解除安裝MariaDB CentOS7預設安裝MariaDB而不是MySQL,而且yum伺服器上也移除了mysql相關的軟體包。因為MariaDB和MySQL可能會衝突,故先解除安裝MariaDB。 1. 安裝新版mysql之前,我們需要將系統自帶的mariadb-lib解除安裝 [[ema

    mysql5.7.18備份恢復新建例項啟動失敗

    mysql5.7.18備份恢復新建例項啟動失敗 mysql5.7.18備份恢復新建例項啟動失敗 報錯資訊 [[email protected]-192-168-1-128 mysql5.7.18]# /home/program

    MySQL5.7.18安裝卡在了starting server

    問題描述:如題(安裝環境為win10) 問題原因:之前裝過一次資料庫,看網上分析的是可能沒有解除安裝乾淨 解決方案:1)停止MySQL57服務                   2)控制

    Linux環境下的mysql5.7.18中的my.cnf內容

    # Example MySQL config file for medium systems. # # This is for a system with little memory (32M - 64M) where MySQL plays

    Linux MySQL5.7.18安裝手冊

    1.安裝依賴包 yum install libaio library -y 2.新建使用者組和使用者 groupadd mysql useradd mysql -g mysql 3.解壓到data下面 tar -zxvf /data/software/mysql-5.7.18-linux-glibc

    Linux MySQL5.7.18自動化安裝指令碼

    ###### 自動安裝資料庫指令碼root密碼MANAGER將指令碼和安裝包放在/root目錄即可#####################資料庫目錄/data/mysql##################資料目錄/data/mysql##################慢日誌目錄/data/slowlog

    (超詳細)centos7.2離線安裝mysql5.7.18.tar.gz

    因為網路隔離,無法使用yum方式安裝mysql,這裡介紹linux伺服器上手動離線安裝mysql的方法。 目的 離線安裝mysql服務 伺服器:centos7.2,配置本地yum源 mysql版本:mysql5.7.18 步驟 下載安裝包mysql-5.7