py mysql не могу найти свою базу данных, которая определенно существует - PullRequest
0 голосов
/ 30 мая 2020

Я использую 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?

...