尝试使用以下内容导出数据库时
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
那是什么原因和解决方案?
答案 0 :(得分:2)
[client]
datadir=/var/lib/mysql
删除datadir=/var/lib/mysql
下的[client]
行。客户端不需要知道MySQL服务器存储数据的位置。