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

执行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~]# 
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值