一個mysqldump的報錯


1、MySQL版本

  5.7.14-log 

2、問題分析

  mysqldump -uxxx -pxxx db_nale 

  一般來講上述命令主要是用於MySQL的邏輯備份,用來備份某個數據的全部表,但是我在執行該命令的時候卻發生報錯。報錯如下:

Couldn't execute 'SHOW VARIABLES LIKE 'gtid\_mode''
[root@bak tmp]# mysqldump -uroot -p123 --databases test mysqldump: [Warning] Using a password on the command line interface can be insecure. -- MySQL dump 10.13  Distrib 5.7.14, for Linux (x86_64) --
-- Host: localhost Database: test -- ------------------------------------------------------
-- Server version    5.7.14-log /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; mysqldump: Couldn't execute 'SHOW VARIABLES LIKE 'gtid\_mode'': Unknown error 1146 (1146)

  經過萬能的百度,大家都說需要添加【--set-gtid-purged=OFF】參數。該參數是由於GTID導致的,mysqldump會試圖去查詢這個系統變量,具體原因還未查清楚,但是我添加該參數后發現仍有報錯,報錯如下:

Couldn't execute 'SHOW VARIABLES LIKE 'ndbinfo\_version''
[root@bak tmp]# mysqldump -uroot -p123 --databases test --set-gtid-purged=OFF Warning: Using a password on the command line interface can be insecure. -- MySQL dump 10.13  Distrib 5.6.26, for Linux (x86_64) --
-- Host: localhost Database: test -- ------------------------------------------------------
-- Server version    5.7.14-log /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; mysqldump: Couldn't execute 'SHOW VARIABLES LIKE 'ndbinfo\_version'': Unknown error 1146 (1146)

  emmm....問題仍然沒有解決,說明問題不是GTID的問題。

  最后在找到了一個解決方法,有好心人回復說,這是由於MySQL服務器升級的原因導致的,所以我們應該升級MySQL服務。

[root@bak tmp]# mysql_upgrade -u root -p123 --force mysql_upgrade: [Warning] Using a password on the command line interface can be insecure. Checking server version. Running queries to upgrade MySQL server. Checking system database. mysql.columns_priv OK mysql.db OK mysql.engine_cost OK ..... ..... zabbix.users OK zabbix.users_groups OK zabbix.usrgrp OK zabbix.valuemaps OK Upgrade process completed successfully. Checking if update is needed.

  在升級完成MySQL服務之后重啟MySQL,然后重新執行mysqldump命令。

[root@bak ~]# mysqldump -uroot -p123 --databases test >a.sql Warning: Using a password on the command line interface can be insecure.

  問題解決~

 

具體參考如下:

https://stackoverflow.com/questions/33270703/error-1142-select-command-denied-on-session-variables-table-with-mysqldump

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM