【问题标题】:Where does MySQL on OSX write outfiles by default?默认情况下,OSX 上的 MySQL 在哪里写入输出文件?
【发布时间】:2012-07-13 02:44:00
【问题描述】:

我正在尝试将 MySQL select 语句中的一些数据写入运行 Snow Leopard 的 Mac 上的文件。

select date_base, fractile_v2, gics, count(gvkey_iid)
from master
where fractile_v2 <= 15 and
      fractile_v2  != 0
group by date_base, gics, fractile_v2
order by date_base, fractile_v2
limit 100000
INTO OUTFILE '/User/my-name/Desktop/gics_v2.csv'
FIELDS TERMINATED BY ',';

不幸的是,这会产生以下错误:

错误代码:1. 无法创建/写入文件“/Users/andrew/Desktop/gics_v2.csv”(错误代码:13)

我假设是权限问题。

当我用简单的gics_v2.csv 替换完整的文件路径'/User/my-name/Desktop/gics_v2.csv' 时,语句似乎运行了。但是我不知道文件保存在哪里,也找不到。

有人知道吗?任何人都可以建议我如何解决初始写入错误吗?我以 root 用户身份运行 MySQL。

【问题讨论】:

  • 不确定this 是否有帮助。对于它的价值,find / -name "gics_v2.csv" 作为 root 应该在您的计算机上找到该文件
  • @BenM 感谢 Ben,我不得不使用 'sudo' 找到它,但它位于 /usr/local/mysql-5.5.17-osx10.6-x86_64/data/ 下。非常感谢您的帮助。

标签: mysql macos into-outfile


【解决方案1】:

这是一个权限问题,因为您试图让 mysql 用户写入您的私人主目录。尝试写入您在 /usr/local/ 中创建的文件夹,为了安全起见,您可以设置全局读/写权限,因为它是您的 Mac。

在你的 Mac 上打开终端:

cd /usr/local

mkdir DbOutput

sudo chmod -R 777 数据库输出

然后回到你的代码但改变路径:

选择 date_base, fractile_v2, gics, count(gvkey_iid)

来自主人

fractile_v2

fractile_v2 != 0

按 date_base、gics、fractile_v2 分组

按 date_base、fractile_v2 排序

限制 100000

INTO OUTFILE '/usr/local/DbOutput/gics_v2.csv'

由','终止的字段;

【讨论】:

  • 非常感谢迈克。我将不得不玩弄我认为的权限。我已经有一段时间没有做这些事情了。感谢您的帮助。
  • 没问题。我最近一直在使用这个网站,我觉得有必要回馈一下。这是我的第一个答案和投票,所以也感谢你。 ;-)
  • 我不同意这一点——它并没有真正回答这个问题,建议某人制作目录 777 是一种黑客行为。最好使用更合适的权限。
  • 另外,检查secure_file_priv stackoverflow.com/a/10757312/5973334
【解决方案2】:

默认情况下 SELECT ... INTO OUTFILE 将文件放在数据文件所在的目录中。所以像/path/to/datadir/databasename/gics_v2.csv

它将文件作为服务器而不是客户端写入。所以它不是使用你用户的权限,而是运行mysqld进程的用户(通常是osx上的_mysql。)

您只需为其提供一个允许该用户写入的路径。

【讨论】:

  • 感谢您的帮助。我找到了它的写入位置并创建了一个新的特定目录并授予服务器用户写入权限。感谢您的帮助。
【解决方案3】:

我知道这个问题已经过时了,但仅供参考,在我的 Mac OS X 10.10 上,OUTPUT 目录是这样的:/usr/local/mysql-5.7.10-osx10.9-x86_64/data/databasename/***.csv

【讨论】:

    【解决方案4】:

    我运行的是 Mac OS X Server 10.7.4,对我来说,OUTFILE 目录是 /var/mysql/<em>databasename</em>/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      相关资源
      最近更新 更多