问题描述:要将一个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