«

MySQL数据库导入sql文件报错解决

时间:2026-10-9 07:26     作者:emer     分类: 无


导入sql文件的时候各种报错?下面整理了最常见的导入报错和解决办法,照着排查就行。

1. 先看最常见的导入命令

mysql -u root -p 数据库名 < /path/to/你的文件.sql

或者进入MySQL后用source:

mysql -u root -p
USE 数据库名;
source /path/to/你的文件.sql;

2. 报错1:Unknown database

原因: 数据库不存在,你直接导入了。

解决: 先创建数据库再导入:

CREATE DATABASE 数据库名 DEFAULT CHARACTER SET utf8mb4;

然后再执行导入命令。

3. 报错2:Access denied

原因: 权限不够,或者密码错了。

解决: 确认用户名密码对不对,给用户授权:

GRANT ALL PRIVILEGES ON *.* TO '用户名'@'localhost' IDENTIFIED BY '密码';
FLUSH PRIVILEGES;

4. 报错3:File not found

原因: 文件路径不对,或者文件没权限读。

解决:

5. 报错4:Duplicate entry

原因: 导入的表已经有数据了,主键冲突。

解决:

6. 报错5:Unknown collation

原因: 字符集排序规则不一致,比如导出用的是 utf8mb4_general_ci,导入的数据库是 utf8_general_ci。

解决: 导入前设置字符集:

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- 导入你的SQL
SET FOREIGN_KEY_CHECKS = 1;

7. 报错6:MySQL server has gone away

原因: SQL文件太大,导入超时了。

解决: 修改MySQL配置:

# /etc/my.cnf
max_allowed_packet = 64M
wait_timeout = 300
interactive_timeout = 300

然后重启MySQL:

systemctl restart mysqld

8. 报错7:Syntax error

原因: SQL文件格式不对,或者MySQL版本不兼容。

解决:

9. 大文件导入更快的方法

如果SQL文件几百MB,用mysql命令行比phpMyAdmin快10倍:

mysql -u root -p 数据库名 < big_file.sql

还可以开事务加速:

SET autocommit = 0;
SET unique_checks = 0;
SET foreign_key_checks = 0;
-- 导入完成后
SET autocommit = 1;
SET unique_checks = 1;
SET foreign_key_checks = 1;
COMMIT;

遇到问题加QQ23979811 协助处理

标签: MySQL 数据库 报错 数据恢复 sql导入