“1045”;“拒绝访问”;使用两个python文件,一个工作,另一个;访问被拒绝;?

“1045”;“拒绝访问”;使用两个python文件,一个工作,另一个;访问被拒绝;?,python,mysql,Python,Mysql,在两个文件中使用相同的mdb.connect行。使用debian 7,我的问题是现在要给你们提供更多的细节,因为我在问题中使用了很多代码,但我没有更多要告诉你们的。 文件1工作正常 #!/usr/bin/python # -*- coding: utf-8 -*- import MySQLdb as mdb con = mdb.connect('localhost', 'user', 'passw', 'pizzadb2', charset='utf8') with con: cur =

在两个文件中使用相同的mdb.connect行。使用debian 7,我的问题是现在要给你们提供更多的细节,因为我在问题中使用了很多代码,但我没有更多要告诉你们的。 文件1工作正常

#!/usr/bin/python
# -*- coding: utf-8 -*-

import MySQLdb as mdb

con = mdb.connect('localhost', 'user', 'passw', 'pizzadb2', charset='utf8')

with con:

cur = con.cursor()
cur.execute("DROP TABLE IF EXISTS pizzeria_table3")
cur.execute("CREATE TABLE pizzeria_table3(pizzeria_Id INT PRIMARY KEY AUTO_INCREMENT, \
            laden_name VARCHAR(50), vorwahl VARCHAR(15), telenr1 VARCHAR(20), \
            telenr2 VARCHAR(20), fax VARCHAR(20), strasse VARCHAR(40), hausnr VARCHAR(20), \
            plz VARCHAR(20), ort VARCHAR(40), oeffz1 VARCHAR(40), oeffz2 VARCHAR(40), \
            oeffz3 VARCHAR(40), oeffz4 VARCHAR(40), bestellwert1 VARCHAR(60), \
            bestellwert2 VARCHAR(60),bestellwert3 VARCHAR(60),rumpf_daten VARCHAR(60), \
            html_name VARCHAR(40), kartenname VARCHAR(30), linkname1 VARCHAR(40),\
            linkname2 VARCHAR(40), linkname3 VARCHAR(40), ordner VARCHAR(100), \
            spaltenanzahl INTEGER, logo_ordner VARCHAR(60), logo_name VARCHAR(60), \
            forum_link VARCHAR(100), link2 VARCHAR(40), link3 VARCHAR(40), banner VARCHAR(100), \
            UNIQUE(vorwahl, telenr1)) \
            default character set 'UTF8' COLLATE utf8_general_ci")
文件2“datenimport4.py”出错:

#!/usr/bin/python
#-*- coding: utf-8 -*-

import MySQLdb as mdb

con = mdb.connect('localhost', 'user', 'passw', 'pizzadb2', charset='utf8')


with con:

    cur = con.cursor()
    cur.execute("LOAD DATA INFILE 'Adressliste_forum1_v4.csv'\
            INTO TABLE pizzeria_table3 \
            FIELDS TERMINATED BY ',' \
            ENCLOSED BY '\"' \
            LINES TERMINATED BY '\\n'  \
            IGNORE 1 LINES \
            (laden_name, vorwahl, telenr1, strasse, hausnr, \
            ort, linkname1, linkname2, linkname3, forum_link, \
            link2, link3, banner) \
            ")
下面是错误:

gutschy@kiste:~/pizza/pizza_daten$ python datenimport4.py
Traceback (most recent call last):
File "datenimport4.py", line 21, in <module>")
File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute
self.errorhandler(self, exc, value)
File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in
defaulterrorhandler
raise errorclass, errorvalue
mysql_exceptions.OperationalError: (1045, "Access denied for user
'user'@'localhost' (using password: YES)")
gutschy@kiste:~/pizza/pizza\u daten$python datenimport4.py
回溯(最近一次呼叫最后一次):
文件“datenimport4.py”,第21行,in)
文件“/usr/lib/python2.7/dist packages/MySQLdb/cursors.py”,执行中的第174行
errorhandler(self、exc、value)
文件“/usr/lib/python2.7/dist packages/MySQLdb/connections.py”,第36行,在
defaulterrorhandler
提高errorclass,errorvalue
mysql_exceptions.OperationalError:(1045,“拒绝用户访问
'user'@'localhost'(使用密码:YES)“)
我也查过了

pizzadb2
*上的所有权限授予“用户”@“本地主机”


论坛问了我更多的代码,但不知道我如何解释我的问题更多spezifik

检查地址Liste_forum1_v5.csv及其目录的访问权限。运行MySQL服务器的用户(不是在MySQL配置中授予权限的用户,而是运行MySQL进程的UNIX用户-您可以使用
ps aux | grep MySQL
检查这一点)


该文件必须至少具有用户的读取权限,并且其父目录必须具有执行权限。

问题是您使用的用户没有足够的权限。正在从MySQL服务器的数据目录读取CSV文件,您正在使用用户“gutschy”执行脚本,但MySQL服务器正在运行(可能)使用系统用户“mysql”运行

但是,您可能希望以不同的方式加载数据。您希望使用
加载数据本地内嵌
(注意“本地”键盘)。这意味着文件将上载到MySQL服务器,然后导入

以下是对代码的相关更改:

con = mdb.connect('localhost', 'user', 'passw', 'pizzadb2', charset='utf8'
                  local_infile=1)

..
with con:
    ..
    cur.execute("LOAD DATA LOCAL INFILE 'Adressliste_forum1_v4.csv'\
    ..
但是,要使其正常工作,您需要更改MySQL服务器配置。在Debian上,我想添加一个额外的选项文件
/etc/MySQL/conf.d/server.cnf

[mysqld]
local-infile=1

重新启动MySQL服务器,并使用
加载数据本地内嵌
尝试您的脚本。权限应该可以。

以防万一:运行MySQL服务器的用户是否可以访问
地址列表\u forum1\u v4.csv
?是的,它都是可读的,位于同一文件夹中,并且来自同一用户。您是否尝试从两个文件夹访问数据库我的主要问题是,在几个月前,一切都很好。但我的电脑是新的。但仍然使用相同的debian。你可以让文件变得可读(
chmod a+r addressliste\u forum1\u v4.csv
)我不太明白你的意思:gutschy 6817 0.0 0.0 40280 3000 pts/0 S+01:25 0:00 mysql-u root-p gutschy 6967 0.0 0.0 9900 912 pts/1 S+02:03 0:00 grep mysql。这是我的普通用户,可以从他那里调用mysql root。非常感谢,已经完成了。:)我不是舒尔,但是否有可能将MySQLdb添加到用户组?您可以将执行脚本的用户添加到mysql系统组,但不应该这样做。您的脚本应连接到mysql服务器,并正确使用mysql特权系统和配置。