我需要迁移由离开公司的人员管理的数据库。源服务器是 MariaDB 1:10.5.5,目标服务器是 MariaDB 1:10.5.19。
现有的备份脚本使用以下命令:
mysqldump --max_allowed_packet=5120M -u root -p my_db > my_dump.sql
两台服务器在 /etc/mysql/conf.d/mysqldump.cnf 中都有以下设置:
[mysqldump]
quick
quote-names
max_allowed_packet = 16M
在/etc/mysql/mariadb.conf.d/50-server.cnf中:
max_allowed_packet=524288000
(-> = 500MB)
我不知道为什么,但这样设置一定是有原因的。
我不明白为什么在命令行上使用“--max_allowed_packet=5120M”。
它不符合服务器设置,并且 MySQL 文档表示 mysqldump max_allowed_packet 值不得超过服务器值,并且协议的最大值为 1G。
如果我手动运行“mysqldump --max_allowed_packet=5120M -u root -p my_db > my_dump.sql”,
我收到此警告:“警告:选项‘max_allowed_packet’:无符号值 5368709120 调整为 2147483648”
我怎样才能安全地转储这个数据库?我需要确保不会丢失任何数据并且它将导入到新服务器中。我必须使用“max_allowed_packet”吗?也许与服务器具有相同的值(524288000)?
谢谢!
只要它小于两端的限制,并且数据库中没有任何会超过数据包大小的非常大的 blob,您就希望通过在每一端使用较小的数据包大小或不同的数据包大小来丢失数据的交换。