一台 Ubuntu EC2 VPS 在升级出现问题后被烧坏了。
我没有实时服务器,但我将其磁盘安装在了另一个(Ubuntu EC2)VPS 上。
如何迁移已安装文件系统上的数据库内容,以便可以在另一台机器上加载它?
我使用 tar 和 sftp 移动我创建的文件和目录中的内容。我不知道需要复制哪些文件才能迁移 MySQL,我得到的印象是,适当地迁移数据库意味着使用数据库工具从一台机器转储,然后将文件传输到另一台机器,然后使用数据库工具在另一台机器上安装:不是简直cp。
答案1
只要 MySQL 没有运行,复制文件通常是安全的。但这并不意味着您以后不必修复它们,尤其是如果 MySQL 之前崩溃过。
您会在 MySQL 的配置中找到它们datadir
;默认值通常是/var/lib/mysql
。
答案2
除了复制 datadir 目录(默认为 /var/lib/mysql/)外,还要确保您的 mysql 配置文件(通常是 /etc/my.cnf 或 /etc/mysql/my.cnf)具有与旧服务器相同的 innodb 选项。如果您不想通读该文件,甚至可以复制整个 /etc/my.cnf 文件。
如果您的 innodb 设置在机器之间有所不同,那么您的 innodb 表和 mysql 将会发生可怕的事情。