我正在尝试将数据从MySQL表输出到文件,但出现权限错误:
$ pwd
/home/dotancohen
$ mkdir in
$ chmod 777 in/
$ mysql -ugs -p
mysql> USE someDatabase;
mysql> SELECT * FROM data INTO OUTFILE '/home/dotancohen/in/data.csv';
ERROR 1045 (28000): Access denied for user 'gs'@'localhost' (using password: YES)
mysql>
如果有问题的目录更改为777,那么MySQL用户为什么不能写该文件?有趣的是,我也无法写到/ tmp /。
编辑: 看起来数据库用户具有适当的MySQL权限:
mysql> show grants;
+----------------------------------------------------------------------------------+
| Grants for gs@localhost |
+----------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'gs'@'localhost' IDENTIFIED BY PASSWORD 'somePassword' |
| GRANT ALL PRIVILEGES ON `gs\_%`.* TO 'gs'@'localhost' |
+----------------------------------------------------------------------------------+
2 rows in set (0.01 sec)
SELECT
权限。我经常以该用户身份浏览数据库。
in
如果MySQL无法访问,授予权利是没有意义的dotanchoen
。换句话说,可以将银行保险库中的安全邮政信箱保持打开状态,但是如果银行保险库门已锁定,则您不会进入保险柜中。您的gs
用户还必须具有mysqlFILE
特权才能实际执行该查询。