Как подключиться к mariadb из pymysql?
При попытке запустить скрипт почему-то возникает ошибка (1045, "Access denied for user 'bot'@'my_local_ip' (using password: YES)"), хотя логин пароль верные. настройки на сервере тоже вроде все правильные, помогите разобраться...
Вот скрипт:
from config import host, db_user, password, db_name
import pymysql
def database():
try:
connection = pymysql.connect(
host=host,
port=3306,
user= bot,
password=password,
database= test_db,
cursorclass=pymysql.cursors.DictCursor
)
print('successfully connected to coinsniper DB!')
try:
with connection.cursor() as cursor:
select_all_rows = "SELECT * FROM users"
cursor.execute(select_all_rows)
rows = cursor.fetchall()
for row in rows:
print(row)
finally:
connection.close()
except Exception as ex:
print('Connection refused...')
print(ex)
database()
Конфигурация базы mariadb и удаленного пользователя:
DB - 'test_db'
username 'bot':
GRANT USAGE ON *.* TO `bot`@`%` IDENTIFIED BY PASSWORD '*A2D561F8621B6'
GRANT ALL PRIVILEGES ON `test_db `.* TO `bot`@`%` WITH GRANT OPTION
ip в параметре bind-address файла /etc/mysql/mariadb.conf.d/50-server.cnf исправлен на = 0.0.0.0
Версии ПО:
10.5.11-MariaDB-1
Debian GNU/Linux 11 (bullseye)
Дополнительно:
Ответы:
А помимо грантов, в таблице users, все правильно прописано?
- а что там еще может быть не правильно? на что обратить внимание?
забыл уточнить, это все перестало работать после переноса базы (дампа)...
при том, он же не ругается на таблицу, он вообще зайти не дает "Access denied for use".
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для подключения к MariaDB из Python с использованием библиотеки PyMySQL, вам необходимо выполнить следующие шаги:
1. Установите PyMySQL, если у вас его еще нет. Вы можете сделать это с помощью pip:
pip install pymysqlpip install pymysql
2. Импортируйте библиотеку PyMySQL в свой скрипт:
import pymysqlimport pymysql
3. Создайте подключение к базе данных MariaDB, указав параметры подключения, такие как хост, пользователя, пароль и название базы данных:
connection = pymysql.connect( host='localhost', user='username', password='password', database='dbname' )
4. Создайте курсор для выполнения SQL-запросов:
cursor = connection.cursor()
5. Теперь вы можете выполнять SQL-запросы, например, с помощью метода `execute()`:
cursor.execute("SELECT * FROM table")
6. Не забудьте закрыть курсор и соединение после завершения работы с ними:
cursor.close() connection.close()
Таким образом, вы сможете успешно подключиться к базе данных MariaDB из Python с использованием библиотеки PyMySQL.