我正在迁移 Web 服务器。我在迁移 MySQL 数据库方面有点不知所措。我想知道在 Ubuntu Server 下哪里可以找到迁移所需的 .SQL 文件。我认为 .SQL 文件是我唯一需要的文件。我将使用 FTP 和 SSH 进行迁移。任何帮助都将不胜感激。
答案1
MySQL 不将数据存储为 .sql 文件。它将数据存储为 MyISAM 或 InnoDB 文件,这些文件通常存储在 /var/lib/mysql 中。
如果需要导出到 SQL 文件,可以使用 mysqldump 命令进行。
答案2
默认情况下,MySQL 将其文件存储在,/var/lib/mysql
但是如果默认位置已更改,则找出文件保存位置的更可靠方法是检查配置文件:
grep datadir /etc/mysql/my.cnf
请注意,数据库文件不以 .SQL 结尾。部分取决于引擎类型(MyISAM、InnoDB 等),但您会看到以 .MYD(MyISAM 数据)或 .MYI(MyISAM 索引)结尾的文件,以及其他文件。您需要所有这些文件,因此请复制整个目录。
如果您要通过直接复制来迁移文件,请记住,您需要/etc/init.d/mysql stop
先关闭数据库,否则文件可能会处于不一致的状态,需要修复和/或可能包含不一致或损坏的数据。 如果您关闭数据库,那么使用以下命令复制文件是完全合理的:
rsync -av /var/lib/mysql/ remotehost:/var/lib/mysql/
使用-a
withrsync
将保留文件的所有权和权限,这很重要。还请注意,rsync
目录上的尾部斜杠很重要。
文件复制方法很方便,因为您不需要进行转储/恢复,但请记住,如果您在不同的架构或数据库版本之间移动,则会导致问题。如果在数据库版本之间移动,那么您还需要阅读有关mysql_upgrade可以和上面的rsync
方法一起使用。
如果你想要在不关闭数据库的情况下迁移数据,或者需要在不同版本的 mysql 或不同的架构之间迁移,那么你可以使用mysqldump或者mysql热复制。
答案3
您将需要使用 创建您自己的 .SQL 文件mysqldump -u <User> -p <Database Name> > dump.sql
。
然后您需要使用 将其导入到您的新服务器中mysql -u <User> -p < dump.sql
。
显然,用适合您的信息进行替换。