在 Ubuntu 中,进入 MySQL 后恢复(导入).sql
文件可以通过以下几种方法实现。以下是详细步骤和注意事项:
方法一:使用 SOURCE
命令(MySQL Shell 内操作)
登录 MySQL:
mysql -u [用户名] -p
输入密码后进入 MySQL Shell。
选择目标数据库(如果.sql文件未指定数据库):
USE [数据库名];
如果数据库不存在,需先创建:
CREATE DATABASE [数据库名];
执行导入:
SOURCE /路径/到/文件.sql;
例如:
SOURCE /home/user/backup.sql;
方法二:命令行直接导入(无需进入 MySQL Shell)
mysql -u [用户名] -p [数据库名] < /路径/到/文件.sql
- 示例:
mysql -u root -p mydatabase < /backup/data.sql
- 说明:
- 如果
.sql
文件包含创建数据库的语句,可以省略[数据库名]
。 - 系统会提示输入密码。
- 如果
方法三:使用 mysqlimport
(仅适用于特定格式)
适用于由 mysqldump --tab
导出的文本文件(如 .txt
、.csv
):
mysqlimport -u [用户名] -p [数据库名] /路径/到/文件.txt
常见问题解决
1. 权限不足
- 确保用户对目标数据库有操作权限:
GRANT ALL PRIVILEGES ON [数据库名].* TO '[用户名]'@'localhost'; FLUSH PRIVILEGES;
2. SQL文件过大
- 调整 MySQL 配置(如
max_allowed_packet
),或分拆文件导入。
3. 字符集冲突
- 导入时指定字符集(如 UTF-8):
mysql -u root -p --default-character-set=utf8mb4 [数据库名] < file.sql
4. ERROR 1049: Unknown database
.sql
文件中可能包含CREATE DATABASE
,但当前用户无权限。可手动创建数据库后再导入。
验证导入结果
- 检查数据表:
SHOW TABLES;
- 查询数据样本:
SELECT * FROM [表名] LIMIT10;
附:导出 SQL文件的命令(备份参考)
mysqldump-u[用户名]-p[数据库名]> backup.sql
通过以上任一方法即可完成恢复操作。根据实际需求选择最适合的方式!
内容由零声教学AI助手提供,问题来源于学员提问