将网站迁移到新服务器时,MySQL数据库的导入是关键一步。最稳妥、最推荐的方法是使用“逻辑备份与恢复”(即先导出再导入),这样可以最大程度避免兼容性问题。
以下是两种主流的操作方法,你可以根据自己的技术偏好选择:
这种方法适合习惯使用SSH连接服务器的用户,速度快且稳定。整个过程分为三步:导出 -> 传输 -> 导入。
通过SSH登录到你的旧服务器,使用 mysqldump 命令将数据库导出为一个 .sql 文件。
# 在旧服务器上执行 mysqldump -u 你的用户名 -p --single-transaction --routines --triggers 你的数据库名 > database_backup.sql
--single-transaction 参数能保证导出数据的一致性,尤其对于InnoDB引擎的表非常重要。database_backup.sql 文件就是你的数据库完整备份。翻车预警:导出后,务必用 cat database_backup.sql 或 ls -lh 命令检查一下文件大小,确保它不是空的!
可以使用 scp 或 rsync 命令将刚才生成的备份文件安全地传输到新服务器。
# 在你的本地电脑或旧服务器上执行 scp database_backup.sql root@新服务器IP:/home/
这会将文件上传到新服务器的 /home/ 目录下。
首先,你需要在新服务器上创建一个新的空数据库和用户。
登录MySQL并创建库/用户
# SSH登录新服务器后执行 mysql -u root -p
进入MySQL命令行界面后,依次执行以下SQL语句:
-- 创建新数据库,建议使用 utf8mb4 字符集以支持所有字符(如emoji) CREATE DATABASE 新数据库名 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -- 创建新用户并授权(请将'密码'替换为强密码) CREATE USER '新用户'@'localhost' IDENTIFIED BY '密码'; GRANT ALL PRIVILEGES ON 新数据库名.* TO '新用户'@'localhost'; FLUSH PRIVILEGES; EXIT;
执行导入命令现在,使用 mysql 命令将备份文件导入到刚创建的空数据库中。
# 在新服务器上执行 mysql -u 新用户 -p 新数据库名 < /home/database_backup.sql
输入密码后,如果没有报错,就说明导入成功了。
如果你的服务器面板(如cPanel, hPanel, 宝塔面板等)提供了phpMyAdmin,可以通过网页进行可视化操作,对新手更友好。
.sql 文件到你的电脑。.sql 文件。无论使用哪种方法,导入完成后都必须完成以下几步,网站才能正常访问:
更新网站配置文件这是最常见的问题点。你必须修改网站根目录下的配置文件,让它连接到新的数据库。
wp-config.php 文件。config.php, settings.py, .env 等配置文件。
需要更新的信息通常包括:DB_NAME: 新数据库名DB_USER: 新数据库用户名DB_PASSWORD: 新数据库密码DB_HOST: 通常是 localhost检查字符编码如果导入后网站出现中文乱码,很可能是因为新旧服务器的字符集不一致。务必确保在创建新数据库时指定了 utf8mb4 字符集,并在导入时也使用了该字符集。
测试验证在修改DNS解析前,强烈建议通过修改本地电脑的 hosts 文件,将域名指向新服务器IP,然后全面测试网站功能,确保前台页面、后台登录、表单提交等都正常工作