温馨提示×

linux mysql如何导入数据

小樊
42
2026-10-12 13:43:28
栏目: 云计算

在 Linux 下向 MySQL 导入数据,常见场景有 SQL 文件导入、CSV 文件导入、使用 mysqldump 恢复 等。下面按最常用方式给你说明。


一、导入 SQL 文件(最常见)

1️⃣ 已有 .sql 文件

mysql -u 用户名 -p 数据库名 < 文件.sql

示例:

mysql -u root -p testdb < /data/testdb.sql

执行后会提示输入密码


2️⃣ 先登录 MySQL 再导入

mysql -u root -p
use testdb;
source /data/testdb.sql;

二、使用 mysqldump 恢复数据库

如果你是用 mysqldump 导出的:

mysqldump -u root -p testdb > testdb.sql   # 导出
mysql -u root -p testdb < testdb.sql       # 导入

三、导入 CSV 文件(表已存在)

方法 1:LOAD DATA(推荐,快)

LOAD DATA INFILE '/data/data.csv'
INTO TABLE user
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES;

⚠ 注意:

  • 文件要在 MySQL 服务器上
  • 需要 FILE 权限
  • 若报错 secure_file_priv,可改配置或放允许目录

查看允许目录:

SHOW VARIABLES LIKE 'secure_file_priv';

方法 2:mysqlimport

mysqlimport -u root -p --fields-terminated-by=',' testdb /data/data.csv

四、新建数据库再导入

mysql -u root -p -e "CREATE DATABASE newdb;"
mysql -u root -p newdb < newdb.sql

五、常见问题

1️⃣ 编码问题

mysql -u root -p --default-character-set=utf8mb4 testdb < file.sql

2️⃣ 导入很慢

  • 先禁用索引
  • 使用 LOAD DATA
  • 加大 innodb_buffer_pool_size

3️⃣ 权限不足

GRANT ALL PRIVILEGES ON db.* TO 'user'@'localhost';
FLUSH PRIVILEGES;

如果你能告诉我:

  • 数据格式(SQL / CSV / 其他)
  • 数据量大小
  • 是否是远程服务器

我可以给你更精确的导入方案。

0 踩