dat*_*ant 16 mysql sql windows security
我在Windows 10机器上运行MySQL 5.7.我已经阅读了关于这个主题的所有SO线程,但仍然没有弄清楚如何加载我的数据并通过此错误:
Error Code: 1290. The MySQL server is running with the --secure-file-priv
option so it cannot execute this statement
Run Code Online (Sandbox Code Playgroud)
我有1)检查设置以更改它们以便能够从我保存数据集的目录中加载,2)以管理员身份打开MySQL并检查命令行并确认安全文件确实指向我的目录,3)并在init文件中确认它指向包含我的文件的正确目录.我尝试更改数据集的位置,使其位于新文件夹中,并确认已使用上述方法将其移动到那里,但仍然无效.
欢迎任何和所有的帮助,谢谢.
wch*_*ito 11
我无法重现这个问题.
mysql> SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 5.7.13 |
+-----------+
1 row in set (0,00 sec)
mysql> SELECT @@GLOBAL.secure_file_priv;
+---------------------------+
| @@GLOBAL.secure_file_priv |
+---------------------------+
| NULL |
+---------------------------+
1 row in set (0,00 sec)
-- USE ...
mysql> LOAD DATA INFILE '/var/lib/mysql-files/myfile.csv'
-> INTO TABLE `test_files`
-> COLUMNS TERMINATED BY ',' ENCLOSED BY '\"'
-> LINES TERMINATED BY '\n';
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv
option so it cannot execute this statement
Run Code Online (Sandbox Code Playgroud)
更改文件: /etc/mysql/my.cnf
[mysqld]
.
.
.
secure_file_priv=/var/lib/mysql-files/
.
.
.
Run Code Online (Sandbox Code Playgroud)
重启MySQL.
mysql> SELECT @@GLOBAL.secure_file_priv;
+---------------------------+
| @@GLOBAL.secure_file_priv |
+---------------------------+
| /var/lib/mysql-files/ |
+---------------------------+
1 row in set (0,00 sec)
mysql> LOAD DATA INFILE '/var/lib/mysql-files/myfile.csv'
-> INTO TABLE `test_files`
-> COLUMNS TERMINATED BY ',' ENCLOSED BY '\"'
-> LINES TERMINATED BY '\n';
Query OK, 3 rows affected (0,00 sec)
Records: 3 Deleted: 0 Skipped: 0 Warnings: 0
Run Code Online (Sandbox Code Playgroud)
请参见6.1.4服务器系统变量:: secure_file_priv
这适用于 MacOs Sierra 10.12.6:
使用命令
mysql --help | more
Run Code Online (Sandbox Code Playgroud)
并寻找一行写着:
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf
~/.my.cnf
Run Code Online (Sandbox Code Playgroud)
就我而言,我尝试在主目录中创建一个 my.cnf,但没有成功。我找到的唯一解决方案是在文件夹等中创建文件
sudo vim /etc/my.cnf
Run Code Online (Sandbox Code Playgroud)
并放入其中
[mysqld_safe]
[mysqld]
secure-file-priv = ""
Run Code Online (Sandbox Code Playgroud)
然后你可以检查一切是否正常
select @@GLOBAL.secure_file_priv;
Run Code Online (Sandbox Code Playgroud)
在 mysql 中并检查该值是否为空且与 NULL 不同。
最后将文件保存在目录/tmp 中,然后将它们移动到您想要的目录中。或者(但可能不安全)使用
chmod 1777 dir
Run Code Online (Sandbox Code Playgroud)
其中 dir 是您写入文件的目录的名称。
小智 5
在 MACOSX 上,将 .my.cnf 添加到您的主目录,其中包含以下内容:
[mysqld_safe]
[mysqld]
secure_file_priv=""
Run Code Online (Sandbox Code Playgroud)
https://github.com/Homebrew/homebrew-versions/issues/1552
归档时间: |
|
查看次数: |
67318 次 |
最近记录: |