我使用Homebrew安装了MySQL(5.7.16),现在我尝试导入一个sql.file,这里是我收到的通知。错误代码:1290(--secure-file-priv)。我的mac是10.12.1。我看到了另一个答案,它建议解决方案是应该添加secure-file-priv ="" MySQL ERROR 1290 (HY000) --secure-file-priv option
但是我怎么能在mac上做到这一点?
答案 0 :(得分:0)
我刚被迫升级到Sierra(10.12.1),最终下载了5.7.16。我遇到了无法导入/导出的问题。要解决此问题,必须在mysql命令中包含--secure-file-priv选项。由于我安装了mysql以自动启动,因此选项由plist文件控制。在我的安装上,它是
/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
根据操作系统和安装方式(源,pkg,macports等),您的默认启动过程可能会有所不同。我使用dmg从Oracle安装并使用此plist文件控制我的启动。如果你这样做,用sudo编辑plist文件(我用vi):
sudo vi /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
你应该看到一个看起来像
的部分<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld</string>
<string>--user=_mysql</string>
<string>--basedir=/usr/local/mysql</string>
<string>--datadir=/usr/local/mysql/data</string>
<string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
<string>--log-error=/usr/local/mysql/data/mysqld.local.err</string>
<string>--pid-file=/usr/local/mysql/data/mysqld.local.pid</string>
<string>--secure-file-priv=/PATH/TO/DIR/</string>
</array>
将最后一行添加/编辑到要从/导出/导出的目录。
在mysql中使用IMPORT或EXPORT时,必须使用完整路径文件名,即:
select * from user INTO OUTFILE "/PATH/TO/DIR/file.txt";
尝试使用文件名不会起作用。如果你计划导出,目录也需要写权限(我的目录在我的个人用户空间下,并且需要使指定的目录可写入所有 - 即
chmod a+w /PATH/TO/DIR
这解决了我的问题。
答案 1 :(得分:0)
对于通过MAMP安装的MySQL(在Mac上):
在本地用户帐户中启用文件i / o:
编辑〜/ .my.cnf(使用vi或您喜欢的编辑器)和以下几行:
$ vi~ / .my.cnf
[mysqld_safe] [mysqld] secure_file_priv="/Users/russian_spy/"
现在检查它是否有效:
一个。启动mysql(默认MAMP用户是root,密码也是root)
$ /Applications/MAMP/Library/bin/mysql -u root -p
湾在mysql中查看列入白名单的路径
mysql> SELECT @@GLOBAL.secure_file_priv;
+---------------------------+
| @@GLOBAL.secure_file_priv |
+---------------------------+
| /Users/russian_spy/ |
+---------------------------+
1 row in set (0.00 sec)
℃。最后,通过将表train
导出到CSV文件
mysql> SELECT * FROM train INTO OUTFILE '/Users/russian_spy/test.csv' FIELDS TERMINATED BY ',';
Query OK, 992931 rows affected (1.65 sec)
mysql>