1.每个版本的数据库字符集会有差别,如果导出数据库的话会包字符集异常,需要改下字符集,
yum -y install holland-mysqldump.noarch #备份组件
mysqldump -uroot -p123qqq...A -E -R cloud >cloud.sql #备份数据库
导出数据库所有库
mysqldump -h 127.0.0.1 -uroot -p"Gd*(53#SALE" -R -E --all-databases >back.sql
导入数据库所有库
mysql -h 10.36.21.220 -P 30004 -uroot -p'3!y5cD&%2OWz' <back.sql
备份单表
mysqldump -h 域名 -P 端口 -u用户 -p密码 库名 表名 > /路径/表名.{$date}.bak
mysqldump -h gem-zs-p-db01. -uroot -p"Gd" zhaoshang user_export_logs > /home/user_export_logs
导入表数据
mysql -h 10.0.21.250 -uroot -p"Gd"
source /home/user_export_logs
导入数据库结构出现错误ERROR 1273 (HY000) at line 25: Unknown collation: 'utf8mb4_0900_ai_ci'解决办法
把文件中的所有的utf8mb4_0900_ai_ci
替换为utf8_general_ci
以及utf8mb4
替换为utf8
sed -i 's/utf8mb4_0900_ai_ci/utf8_general_ci/g' cloud.sql
sed -i 's/utf8mb4/utf8/g' cloud.sql
mysql -uroot -p123qqq...A cloud <cloud.sql
1.要实现点对点的备份恢复,或者对于某点的数据完整备份,必须使用--single-transaction 和--master-data=2两个参数,比如主从搭建时候的,因为在--single-transaction参数中,没可以保证数据备份的备份时间点的事务一致性
2.--single-transaction备份对于数据库的影响时间比较长,影响范围比较大 ,但是加入该参数后,对于多张大表的备份速度肯定会加快。
3.--lock-all-tables并不能保持所有数据对于某个时间点的一致性
备份指定数据库
mysql -e "show databases;" -h 10.36.21.220 -P 30003 -uroot -p'Gd*(53#SALE'| grep -Ev "Database|information_schema|mysql|sys|__recycle_bin__|performance_schema" | xargs mysqldump -h 10.36.21.220 -P 30003 -uroot -p'Gd*(53#SALE' -R -E --single-transaction --databases >30003.sql
mysql -h 10.36.21.220 -P 30003 -uroot -p'Gd*(53#SALE' <30003.sql
mysql 导入数据出错就停止,如何忽略错误继续?
在 MySQL 中,可以通过使用 --force 或 --skip-errors 参数来忽略错误并继续导入数据。
--force 参数将忽略所有的错误,包括语法错误、重复键值、外键约束错误等,但这可能会导致导入的数据存在问题。
例如,可以使用以下命令来使用 --force 参数导入数据
mysql -u username -p --force database_name < file.sql
例如,可以使用以下命令来使用 --skip-errors 参数导入数据:
--skip-errors 参数将忽略某些错误,例如插入重复的记录或插入违反外键约束的记录,但会继续导入数据文件
mysql -u username -p --skip-errors database_name < file.sql
需要注意的是,在忽略错误的情况下,导入的数据可能存在问题,建议在导入数据前备份原有数据,并在导入完成后进行检查和验证。
mysql -h 10.36.21.221 -P 30003 root -p'Gd*(53#SALE' --force < 30003_20230624_033100.sql