无法使用mysqldump导出数据库:未知变量'datadir = / var / lib / mysql'

时间:2017-06-30 23:17:41

标签: mysql

尝试使用以下内容导出数据库时

mysqldump -u root -p --opt databasename > databasename.sql

失败并显示:

mysqldump: unknown variable 'datadir=/var/lib/mysql'

我在互联网上进行了研究,发现了mysql配置文件的情况:

[mysqldump]
datadir=/var/lib/mysql

在这些情况下,解决方案是删除[mysqldump] / datadir变量,但在我的情况下,我的任何配置文件中都没有该变量,因此该解决方案无效对我来说。

要查看系统中所有可能的配置文件的位置,我使用了mysqld --verbose --help,结果显示:

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf

其中一些配置文件不存在,而现有配置文件甚至没有[mysqldump]变量组,例如我的/etc/my.cnf具有:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
default-storage-engine=MyISAM
innodb_file_per_table=1
max_allowed_packet=268435456
local-infile=0
max_connections=1024
table_definition_cache=400
performance_schema=0
open_files_limit=10000

[client]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

那是什么原因和解决方案?

1 个答案:

答案 0 :(得分:2)

[client]
datadir=/var/lib/mysql

删除datadir=/var/lib/mysql下的[client]行。客户端不需要知道MySQL服务器存储数据的位置。