我正在使用通过ssh访问的远程服务器。在服务器上有一个我正在查询的mysql数据库
SELECT * FROM my_table where date > '2010-01-01'';
到目前为止,当我在托盘上创建输出文件时,就会出现此问题:
SELECT * FROM my_table where date > '2010-01-01' INTO OUTFILE '/home/ubuntu/data/my_output.csv';
我收到权限错误:
ERROR 1 (HY000): Can't create/write to file '/home/ubuntu/data/my_output.csv' (Errcode: 13)
有没有一种方法可以将文件直接发送到本地计算机,而不是先在没有权限从数据库写入文件的服务器上写入文件?
您可以通过ssh传送mysql端口(在服务器上)。
通过隧道连接服务器端口的ssh连接示例(在ubuntu上的.ssh / config文件中):
Host my_mysql_server
Hostname mysql_host_server
Port ssh_port
LocalForward 3307 localhost:3306
User ssh_user
终端示例:
ssh -L 3307:localhost:3306 ... (hostname, ...)
您可以将3307更改为所需的任何端口(应该是尚未使用的端口)。
然后,您可以在本地计算机上进行导出。将您的sql查询放入一个sql文件中(例如:my_query.sql),并通过终端(ubuntu)中的以下命令将其导出:
mysql -h localhost -P 3307 your_database_name -u mysql_user -p < my_query.sql > export.csv
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句