用命令行将远程服务器的 MySQL 表数据导出到本地

0x00 root 身份 ssh 登录到远程机器

$ ssh root@server_ip_address
  • 「server_ip_address」换成你的远程服务器的 ip 地址

0x01 远程机器上进入 MySQL 控制台

mysql -u root -p

0x02 选择数据库

use your_db;

0x03 执行导出

select * from your_table_name into outfile 'file.csv' FIELDS TERMINATED BY ',';
  • 「your_table_name」换成你自己的表名

如果你的 MySQL 配置了 --secure-file-priv,这时会报错:

ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

解决方案是先查看 secure_file_priv 值:

SELECT @@secure_file_priv;

输出结果:

「secure_file_priv」值可能各不相同,不要直接拷贝这里的值。

然后修改 SELECT 语句的 OUTFILE

select * from your_table_name into outfile '/var/lib/mysql-files/file.csv' FIELDS TERMINATED BY ',';

0x04 将远程文件 scp 到本地

退出远程服务器的控制台,在本地机器执行命令:

scp root@server_ip_address:/var/lib/mysql-files/file.csv .

这样就拿到了一个 CSV 文件,搞定。

更新时间:

留下评论