您的位置:首页 > 数据库 > SQL

MySQL: Couldn't execute 'SET OPTION SQL_QUOTE_SHOW_CREATE=1':问题

2017-05-23 10:04 375 查看
执行mysqldump报错

[root@t91~]# mysqldump -d --socket=/usr/local/mysql/mysql.sock orcl_db >orcl_db.sql
mysqldump: Couldn't execute 'SET OPTION SQL_QUOTE_SHOW_CREATE=1': You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_QUOTE_SHOW_CREATE=1' at line 1 (1064)
[root@t91~]#


看到报错信息,有说MySQL server version for the right syntax to user ….,猜测可能是工具的版本问题导致的,所以需要check

查看mysqldump版本和路径

[root@t91~]# mysqldump --version
mysqldump  Ver 10.13 Distrib 5.1.66, for redhat-linux-gnu (x86_64)
[root@t91~]#
[root@t91~]# type mysqldump
mysqldump is hashed (/usr/bin/mysqldump)
[root@t91~]#


再查看mysql版本是5.6.12

[root@t91~]# mysql --version
Warning: Using a password on the command line interface can be insecure.
/usr/local/mysql/bin/mysql  Ver 14.14 Distrib 5.6.12, for Linux (x86_64) using  EditLine wrapper
[root@t91~]#
[root@t91~]# type mysql
mysql is aliased to `/usr/local/mysql/bin/mysql -uroot --password= -S /usr/local/mysql/mysql.sock'
[root@t91~]#


看到问题所在了,mysqldump的版本和数据库的版本不一致,/usr/bin下面的是5.1.66,/usr/local/mysql/bin/下面的是5.6.12的版本。mysql能连接到5.6.12版本的是因为做了alias映射的关系,mysqldump没有做映射,那为啥会出现这个问题呢?看环境变量里面的配置

[root@t91~]# more /etc/profile |grep mysql
export PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin
[root@t91~]#


看到了有加载/usr/bin; 和 /usr/local/mysql/bin;

/usr/bin;在/usr/local/mysql/bin;的前面进行加载,所以生效的是/usr/bin下面的mysqldump。

所以解决问题的办法有如下几种:

(1)将/usr/bin;放在/usr/local/mysql/bin;后面,重新登陆

(2)删除/usr/bin下面的老版本的MySQL,执行命令rm -rf /usr/bin/mysql*

这里采取的是第一种办法,因为不知道这个老的mysql版本是否会被别的应用使用,暂时为了快速解决问题,自动加载新版本/usr/local/mysql/bin

[root@t91~]# more /etc/profile |grep mysql
export PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/root/bin:/usr/local/mysql/bin:/usr/bin
[root@t91~]#


修改完配置后,重新登陆,查看配置,再查看mysqldump的路径,然后执行mysqldump操作,一切OK,如下所示:

[root@t91~]# more /etc/profile |grep mysql
export PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/root/bin:/usr/local/mysql/bin:/usr/bin
[root@t91~]#
[root@t91~]# type mysqldump
mysqldump is /usr/local/mysql/bin/mysqldump
[root@t91~]# mysqldump -d --socket=/usr/local/mysql/mysql.sock orcl_db >orcl_db.sql
[root@t91~]#
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐