我从这个站点获得了以下代码,通过python连接到一个mysql数据库(顺便说一句,这是非常受欢迎的)。我已经使用它一次连接到服务器上的数据库,但是在另一个文件中。但是,我知道想要连接到同一服务器上的另一个数据库,但我不断收到与数据库名称有关的错误消息。 我使用与以前完全相同的代码进行连接,但是我只将数据库名称更改为我要连接的另一个。我可以通过puTTY查看数据库,看看它被称为正确的名称,并且所有数据都在那里,但似乎无法通过Python正确连接。
提前感谢您的帮助!
#!/usr/bin/python
import MySQLdb
db = MySQLdb.connect(host="127.0.0.1", # your host, usually localhost
user="root", # your username
passwd="........", # your password
db="opt_out") # name of the data base
# you must create a Cursor object. It will let
# you execute all the query you need
cur = db.cursor()
# Use all the SQL you like
cur.execute("SELECT * FROM opted_in")
# print all the first cell of all the rows
for row in cur.fetchall() :
print row[0]
当我尝试通过puTTY执行python文件时,这是我得到的错误代码:
Traceback (most recent call last):
File "/var/www/html/vra/ConnectAdiDB.py", line 7, in <module>
db="opt_out") # name of the data base
File "/usr/lib64/python2.6/site-packages/MySQLdb/__init__.py", line 81, in Connect
return Connection(*args, **kwargs)
File "/usr/lib64/python2.6/site-packages/MySQLdb/connections.py", line 187, in __init__
super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: YES)")
答案 0 :(得分:0)
密码一定是错误的(我认为是这样)
所以尝试重置密码,以便: 首先关闭mysql服务,就像这样
Ubuntu / Debian:
sudo service mysql stop
这样做之后:
sudo service mysql start
当像这样完成mysql时:
sudo mysql
执行:
UPDATE mysql.user SET Password=PASSWORD('NEW-PASSWORD') WHERE User='root';
FLUSH PRIVILEGES;