0

我从这个站点获得了以下代码,通过 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)")
4

1 回答 1

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;
于 2019-06-29T12:43:08.603 回答