mysql - Kubernetes Dump mysql 并恢复 Mysql
问题描述
我需要一种机制,我可以转储在 EKS 集群中作为 pod 运行的 mysql。主要用例是我可以共享给我的开发团队的转储,以便他们可以在本地恢复转储(作为服务运行的正常 mysql)。我见过 Velero,Portworx,但如果开发人员想在本地恢复,它们只在集群(k8)内恢复/转储对我没有用处。我也使用普通的 mysqldump/mysql 和 kind schedulerjob/cronjob 但在我的数据库中它们是 UUID 使用 where 当它被转换为“null”值时。任何帮助将不胜感激,因为它从上周开始让我头疼。
解决方案
你可以试试
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
推荐阅读
- vb6 - 带有通配符的 FileSystemObject CopyFile 复制扩展名超过指定的文件
- php - PHP - 将 xml 解析为嵌套的 json
- javascript - 是否有使用 JavaScript 处理文件选择对话框的现代/新方法?
- android - 无法解析方法 addOnCompleteListener
- rest - REST API:资源需要按ID过滤,但没有指定ID
- python - 遍历表以找到最佳解决方案
- error-handling - UDP协议是否有一些错误检测?
- javascript - javascript中的休息语法
- javascript - 如何实现缓存 || 权力的游戏 API
- python - pipenv 仅在主目录中安装 .venv