Я использую py mysql для подключения к базе данных MySQL. Моя база данных (с именем dm c) находится на сервере WAMP, где я использую phpMyAdmin, и у меня есть Python 3.8.2.
Если я попытаюсь подключиться к базе данных с помощью root пользователь, я получаю сообщение об ошибке, говорящее, что база данных не существует.
import pymysql
myDB = pymysql.connect(host='localhost',user='root',password='',db='dmc')
Traceback (most recent call last):
File "C:\Users\Admin\Documents\CraftyStuff\dmc_gui\connect_database.py", line 4, in <module>
myDB = pymysql.connect(host='localhost',user='root',password='',db='dmc')
File "C:\Python38\lib\site-packages\pymysql\__init__.py", line 94, in Connect
return Connection(*args, **kwargs)
File "C:\Python38\lib\site-packages\pymysql\connections.py", line 325, in __init__
self.connect()
File "C:\Python38\lib\site-packages\pymysql\connections.py", line 599, in connect
self._request_authentication()
File "C:\Python38\lib\site-packages\pymysql\connections.py", line 861, in _request_authentication
auth_packet = self._read_packet()
File "C:\Python38\lib\site-packages\pymysql\connections.py", line 684, in _read_packet
packet.check_error()
File "C:\Python38\lib\site-packages\pymysql\protocol.py", line 220, in check_error
err.raise_mysql_exception(self._data)
File "C:\Python38\lib\site-packages\pymysql\err.py", line 109, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.InternalError: (1049, "Unknown database 'dmc'")
Если я попытаюсь подключиться с другой учетной записью пользователя, которой я дал полные привилегии, он сообщает мне, что @localhost не делает ' У меня есть разрешение на доступ к этой базе данных.
import pymysql
myDB = pymysql.connect(host='localhost',user='sara',password='',db='dmc')
Traceback (most recent call last):
File "C:\Users\Admin\Documents\CraftyStuff\dmc_gui\connect_database.py", line 4, in <module>
myDB = pymysql.connect(host='localhost',user='sara',password='',db='dmc')
File "C:\Python38\lib\site-packages\pymysql\__init__.py", line 94, in Connect
return Connection(*args, **kwargs)
File "C:\Python38\lib\site-packages\pymysql\connections.py", line 325, in __init__
self.connect()
File "C:\Python38\lib\site-packages\pymysql\connections.py", line 599, in connect
self._request_authentication()
File "C:\Python38\lib\site-packages\pymysql\connections.py", line 861, in _request_authentication
auth_packet = self._read_packet()
File "C:\Python38\lib\site-packages\pymysql\connections.py", line 684, in _read_packet
packet.check_error()
File "C:\Python38\lib\site-packages\pymysql\protocol.py", line 220, in check_error
err.raise_mysql_exception(self._data)
File "C:\Python38\lib\site-packages\pymysql\err.py", line 109, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.OperationalError: (1044, "Access denied for user ''@'localhost' to database 'dmc'")
Я знаю, что база данных существует, потому что она находится в списке баз данных. Вот скриншот со списком баз данных Почему пользователь root не может найти его, если другие пользователи могут, и почему другие мои пользователи не имеют разрешения на доступ с localhost?