我使用cursor.execute 生成文件my_file.csv 并将其保存在/var/lib/mysql-files 中。 这是我的代码:
import mysql.connector
connection = mysql.connector.connect(host='localhost', port='3306', database='my_db', user='my_user', password='my_pass')
cursor = connection.cursor()
cursor.execute('''select my_db.my_table.my_column '''
'''from my_db.my_table '''
'''into outfile '/var/lib/mysql-files/my_file.csv' '''
'''fields optionally enclosed by '"' terminated by ',' LINES TERMINATED BY '\n' ''')
cursor.close()
connection.close()
然后我尝试直接从 /var/lib/mysql-files 目录中使用 pandas 读取此文件。
import pandas as pd
file = pd.read_csv("/var/lib/mysql-files/my_file.csv")
我收到了这个错误:
PermissionError: [Errno 13] Permission denied: '/var/lib/mysql-files/my_file.csv'
如何获得从 /var/lib/mysql-files 目录读取文件 my_file.csv 的权限?
注意:我尝试使用此命令更改权限:
chown -R mysql:mysql /var/lib/mysql-files
但我仍然遇到相同的权限错误。
ls -l
表明它属于mysql
用户和组。
为了获得读取访问权限,您必须是
mysql
组的成员(或使用 mysql
用户)。
要将当前用户添加到
mysql
组,您可以执行:usrmod -aG mysql $(whoami)
。然后注销并登录。
或者,作为快速测试,运行
newgrp mysql
并从同一控制台重新启动脚本以确认问题已解决。