从 /var/lib/mysql-files 读取文件时权限被拒绝

问题描述 投票:0回答:1

我使用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

但我仍然遇到相同的权限错误。

mysql permissions mysql-python mysql-connector
1个回答
0
投票
相关目录上的

ls -l
表明它属于
mysql
用户和组。

为了获得读取访问权限,您必须是

mysql
组的成员(或使用
mysql
用户)。

要将当前用户添加到

mysql
组,您可以执行:
usrmod -aG mysql $(whoami)
。然后注销并登录。

或者,作为快速测试,运行

newgrp mysql
并从同一控制台重新启动脚本以确认问题已解决。

© www.soinside.com 2019 - 2024. All rights reserved.