mysqldump导出数据库

问题描述:要将一个mysql中六个数据库导出来,使用mysqldump导出

mysqldump使用语法:mysqldump -uroot -p -S /data/mysql/db_itax_m/mysql.sock --default-character-set=utf8 --set-gtid-purged=off --databases dbname --tables tablename > /tmp/tablename.sql

-u 用户

-p 密码,可以省略在执行完脚本后输入密码

-S sock文件路径

--default-character-set 字符集

--set-gtid-purged  Mysql 数据库 在主从 数据库进行 导出备份和恢复的时候,需要注意是否启用数据库用GTID模式.如果开启,则在mysqldump数据时,应该mysqldump命令加上参数--set-gtid-purged=OFF

--databases 全库导出

-d 导出建库语句

--tables 全表导出

-h  host地址,本机或者异地IP

-P 端口

1.报错一:mysqldump: Got error: 2003: Can‘t connect to MySQL server on ‘127.0.0.1‘ (10061)  指定本地地址,但是如果需要更改过本地mysql端口,可能运行不成功,需要加上-P指定端口号

mysqldump -h 127.0.0.1 -udzht -p esignpro_service > /data/esignpro_service.sql

2.报错二:mysqldump: Got error: 1045: Access denied for user ‘root‘@‘localhost‘ (using password: YES) when try,怎么输入用户名和密码都是在报错,说是需要指定sock

mysqldump -uroot -p esignpro_service > esignpro_service.sql

3.报错三:mysqldump: Got error: 2002: Can‘t connect to local MySQL server through sock   说是/etc/mysql.cnf没有配置sock路径,在mysql.cnf中指定sock的路径,但是是生产环境不能随意修改配置

mysql -uroot -p -S /data/mysql/db_dzht/mysql.sock  cert_service.sql > cert_service.sql

后来发现我需要导出的这个库是主从结构,需要加上--set-gtid-purged=off --d指定数据库也可以进行备份,但是-d是只备份建库语句。

mysqldump -uroot -p -S /data/mysql/db_dzht/mysql.sock --default-character-set=utf8 --set-gtid-purged=off -d cert_service > /tmp/cert_service.sql

需要换成--databases,可以导出成功

mysqldump -uroot -p -S /data/mysql/db_dzht/mysql.sock --default-character-set=utf8 --set-gtid-purged=off --databases cert_service > /tmp/cert_service.sql