【问题标题】:MySQL to CSV PythonanywhereMySQL 到 CSV Pythonanywhere
【发布时间】:2020-11-07 12:20:00
【问题描述】:

我想在 pythonanywhere 上将 mysql 数据库导出为 CSV。我打开了一个 mysql 控制台,甚至尝试了“select * from”。它向我显示了正确的输出。但是当我执行“select * from into outfile 'db.csv';”时它显示:“用户 ''@'%' 的访问被拒绝(使用密码:YES)”。

【问题讨论】:

    标签: mysql flask pythonanywhere


    【解决方案1】:

    根据the MySQL documentation

    SELECT ... INTO OUTFILE 语句旨在启用转储 表到服务器主机上的文本文件。创建结果文件 在其他一些主机上,SELECT ... INTO OUTFILE 通常不适合 因为没有办法写相对于文件的路径 服务器主机文件系统,除非远程文件的位置 可以使用服务器主机上的网络映射路径访问主机 文件系统。

    或者,如果 MySQL 客户端软件安装在远程 主机,您可以使用客户端命令,例如 mysql -e "SELECT ..." > file_name 在该主机上生成文件。

    所以,换一种说法——你正在连接到运行在与运行 MySQL 控制台的计算机不同的计算机上的 MySQL 服务器,然后运行一个尝试在其上写入文件的命令另一台计算机,您没有权限写入文件(如果您这样做,将无法访问它)。

    相反,您应该启动一个 Bash 控制台,然后运行如下命令:

    mysql -u yourusername -p -h yourdatabasehost -e "select * from yourtable" 'yourdatabasename' > db.csv
    

    ...适当地替换 yourusernameyourdatabasehostyourtableyourdatabasenameyourdatabasename 周围的单引号很重要,因为在 PythonAnywhere 上,数据库名称类似于 yourusername$something,如果没有引用美元符号,shell 会将其解释为环境变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-01
      • 2016-03-16
      • 1970-01-01
      • 2021-12-01
      • 2012-06-11
      • 2015-03-06
      相关资源
      最近更新 更多