首页 > 解决方案 > Kubernetes Dump mysql 并恢复 Mysql

问题描述

我需要一种机制,我可以转储在 EKS 集群中作为 pod 运行的 mysql。主要用例是我可以共享给我的开发团队的转储,以便他们可以在本地恢复转储(作为服务运行的正常 mysql)。我见过 Velero,Portworx,但如果开发人员想在本地恢复,它们只在集群(k8)内恢复/转储对我没有用处。我也使用普通的 mysqldump/mysql 和 kind schedulerjob/cronjob 但在我的数据库中它们是 UUID 使用 where 当它被转换为“null”值时。任何帮助将不胜感激,因为它从上周开始让我头疼。

标签: mysqlkubernetesmysql-workbenchdumpvelero

解决方案


你可以试试

mysqldump --user=root --port=3306 --password=topsecret --hex-blob some_database

--hex-blob :使用十六进制表示法转储二进制列

文档:https ://dev.mysql.com/doc/refman/8.0/en/mysqldump.html#option_mysqldump_hex-blob

补充一点,您还可以运行Adminer的 UI来导出数据,而不是使用命令到容器。

或者

复制整个数据文件夹

如果你要复制整个数据库,所有的数据库和数据库的内容,你可以压缩整个 MySQL 数据目录,并将它复制到新服务器 Pod 的数据目录。

这是将 InnoDB 文件从一个实例复制到另一个实例的方法。如果您在运行相同操作系统系列和相同版本 MySQL 的服务器之间移动,这将正常工作

https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_datadir


推荐阅读