无法使 Python3 - MySQLdb 连接器在 16.04 中工作
Can't get the Python3 - MySQLdb connector to work in 16.04
我无法让 python3-mysql 连接器在 Ubuntu 16.04 中正常工作。
import MySQLdb as mdb
db_host = 'localhost'
db_user = 'sec_user'
db_pass = 'zygf'
db_name = 'securities_master'
con = mdb.connect(host=db_host,user=db_user, passwd=db_pass, db=db_name)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/tom/SAT/env/lib/python3.5/site-packages/MySQLdb/__init__.py", line 86, in Connect
return Connection(*args, **kwargs)
File "/home/tom/SAT/env/lib/python3.5/site-packages/MySQLdb/connections.py", line 204, in __init__
super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (1045, "Access denied for user 'sec_user'@'localhost' (using password: YES)")
这里的小伙子(他显然在遵循与我相同的教程)有类似的问题。通过确保他的用户可以访问正确的数据库,他能够解决他的问题。
设置我使用的用户:
mysql> CREATE DATABASE securities_master;
mysql> USE securities_master;
mysql> CREATE USER ’sec_user’@’localhost’ IDENTIFIED BY ’password’;
mysql> GRANT ALL PRIVILEGES ON securities_master.* TO ’sec_user’@’localhost’;
mysql> FLUSH PRIVILEGES;
我认为这是正确的,但我仍然遇到同样的错误?
兄弟,你正确地创建了用户,问题是你在代码中给 sec_user 一个密码:
db_pass = 'zygf'
并且当您创建用户时,您正在为 sec_user 设置不同的密码:
mysql> CREATE USER ’sec_user’@’localhost’ IDENTIFIED BY ’password’;
这样它就永远不会建立连接。您需要两者(db_pass 和 sql 具有相同的密码)。所以我会修复它,将 sql 的密码更改为您在 python 代码 (zygf) 上的密码。
第一:删除sec_user。使用这个:
DROP USER 'sec_user'@'localhost';
第二步:再次创建 sec_user(固定密码):
mysql> CREATE USER ’sec_user’@’localhost’ IDENTIFIED BY ’zygf’;
mysql> GRANT ALL PRIVILEGES ON securities_master.* TO ’sec_user’@’localhost’;
mysql> FLUSH PRIVILEGES;
我无法让 python3-mysql 连接器在 Ubuntu 16.04 中正常工作。
import MySQLdb as mdb
db_host = 'localhost'
db_user = 'sec_user'
db_pass = 'zygf'
db_name = 'securities_master'
con = mdb.connect(host=db_host,user=db_user, passwd=db_pass, db=db_name)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/tom/SAT/env/lib/python3.5/site-packages/MySQLdb/__init__.py", line 86, in Connect
return Connection(*args, **kwargs)
File "/home/tom/SAT/env/lib/python3.5/site-packages/MySQLdb/connections.py", line 204, in __init__
super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (1045, "Access denied for user 'sec_user'@'localhost' (using password: YES)")
这里的小伙子(他显然在遵循与我相同的教程)有类似的问题。通过确保他的用户可以访问正确的数据库,他能够解决他的问题。
设置我使用的用户:
mysql> CREATE DATABASE securities_master;
mysql> USE securities_master;
mysql> CREATE USER ’sec_user’@’localhost’ IDENTIFIED BY ’password’;
mysql> GRANT ALL PRIVILEGES ON securities_master.* TO ’sec_user’@’localhost’;
mysql> FLUSH PRIVILEGES;
我认为这是正确的,但我仍然遇到同样的错误?
兄弟,你正确地创建了用户,问题是你在代码中给 sec_user 一个密码:
db_pass = 'zygf'
并且当您创建用户时,您正在为 sec_user 设置不同的密码:
mysql> CREATE USER ’sec_user’@’localhost’ IDENTIFIED BY ’password’;
这样它就永远不会建立连接。您需要两者(db_pass 和 sql 具有相同的密码)。所以我会修复它,将 sql 的密码更改为您在 python 代码 (zygf) 上的密码。
第一:删除sec_user。使用这个:
DROP USER 'sec_user'@'localhost';
第二步:再次创建 sec_user(固定密码):
mysql> CREATE USER ’sec_user’@’localhost’ IDENTIFIED BY ’zygf’;
mysql> GRANT ALL PRIVILEGES ON securities_master.* TO ’sec_user’@’localhost’;
mysql> FLUSH PRIVILEGES;