在 Debian 上给 MySQL 导入数据,常见有几种方式,下面按最常用 → 进阶给你说明(假设你已经安装并启动了 MySQL)。
例如:
/root/data.sql
mysql -u root -p
CREATE DATABASE testdb;
USE testdb;
SOURCE /root/data.sql;
✅ 适合文件不大、交互式操作
mysql -u root -p testdb < /root/data.sql
mysql -u root -p -e "CREATE DATABASE testdb;"
mysql -u root -p testdb < /root/data.sql
✅ 最常用方式
.sql.gz 压缩文件导入gunzip < data.sql.gz | mysql -u root -p testdb
或:
zcat data.sql.gz | mysql -u root -p testdb
✅ 适合大文件
id,name,age
1,Alice,30
2,Bob,25
LOAD DATA INFILE '/tmp/data.csv'
INTO TABLE users
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option
查看限制目录:
SHOW VARIABLES LIKE 'secure_file_priv';
把 CSV 放到该目录(如 /var/lib/mysql-files/)
如果你这是从别的 MySQL 导出的:
mysqldump -u root -p testdb > testdb.sql
导入:
mysql -u root -p testdb < testdb.sql
sudo systemctl status mysql
sudo systemctl start mysql
sudo systemctl restart mysql
| 场景 | 推荐方式 |
|---|---|
| 普通 SQL 文件 | mysql db < file.sql |
| 交互操作 | SOURCE file.sql |
| 压缩文件 | zcat file.gz | mysql |
| CSV 数据 | LOAD DATA INFILE |
如果你愿意,可以把你具体的文件格式(SQL / CSV / 压缩包)或报错信息发出来,我可以直接帮你写完整命令 ✅