Как подключить БД MySql в Python скрипт?
Я имею базу данных в MySql. Мне нужно, чтобы с ней мог взаимодействовать Python 3 скрипт. Конкретнее: создавать новые элементы, редактировать элементы, удалять элементы. Как это реализовать?
Отслеживать
задан 10 дек 2021 в 12:16
Cucumber78 Cucumber78
36 8 8 бронзовых знаков
Эммм. попробовать почитать документацию — не наш метод? примеры там посмотреть.
10 дек 2021 в 12:27
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
pip install mysql-connector-python
Подключение к существующей базе данных:
try: with connect( host="localhost", user=input("Имя пользователя: "), password=getpass("Пароль: "), database="MyBase", ) as connection: print(connection) except Error as e: print(e)
Ну, а дальше уже стандартные операции взаимодействия с БД найдете в инете
Отслеживать
ответ дан 10 дек 2021 в 12:27
1,679 1 1 золотой знак 5 5 серебряных знаков 20 20 бронзовых знаков
Теперь выдаёт такую ошибку: Can’t connect to MySQL server on ‘localhost:3306’ (10061)
10 дек 2021 в 12:48
убедитесь, что СУБД запущена или попробуйте 127.0.0.1
10 дек 2021 в 13:06
Все запущено на сервере, сам сервер онлайн, а с ip тоже самое выдаёт.
10 дек 2021 в 13:49
сервер удаленно или локально расположен?
10 дек 2021 в 14:23
Тогда в поле «host» должен быть IP-адрес сервера где Ваша БД
12 дек 2021 в 3:50
- python
- mysql
- база-данных
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.10.27.43697
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Подключение Python 3 к БД MySQL и MariaDB
Небольшой скрипт на Python 3, который проверит доступность подключения к серверу баз данных MySQL и MariaDB на веб-сервере.
В первую очередь необходимо проверить наличие коннектора Python к СУБД MySQL mysql-connector-python. Если его нет, можно установить с помощью утилиты pip:
# pip install mysql-connector-python
Затем на сервере БД создадим пользователя db_user и базу данных test_db
Для этого войдёт в консоль mysql
# mysql -u root -p
и запустим такие SQL-команды:
CREATE DATABASE test_db; CREATE USER 'db_user'@'localhost' IDENTIFIED BY 'yourPassword'; GRANT ALL PRIVILEGES ON test_db.* TO 'db_user'@'localhost'; FLUSH PRIVILEGES; EXIT;
Затем в каталоге веб-сервера, где хранятся скрипты Python, создадим файл dbconnect.py (и не забываем про chmod 755 . ) со следующим содержимым:
#!/usr/bin/python3 print('Content-Type: text/html; charset=utf-8 \r\n') print('Подключение к БД MariaDB
') import mysql.connector as mariadb from mysql.connector import Error try: connection = mariadb.connect(user = 'db_user', password = 'yourPassword', database = 'test_db', host = 'localhost', port = '3306') print('Подключение к базе данных выполнено успешно
') connection.close() except Error as error: print(f'Ошибка подключения к БД: ')
Проверяем. Запускаем браузер, вводим адрес веб-сервера и путь к скриптам и дописываем после слеша dbconnect.py:
В браузере мы должны будем увидеть такую строчку:
Подключение к БД прошло успешно.
Похожие посты:
- Выполнение SQL-запросов в БД MariaDB (MySQL) и PostgreSQL на…
- Подключение PHP к БД MySQL и MariaDB
- Подключение Python 3 к БД PostgreSQL
- Выполнение SQL-запросов в БД MariaDB (MySQL) на PHP
- Работа с таблицами и данными в MySQL и MariaDB
- Дамп базы данных MariaDB и MySQL
Работа с MySQL в Python

30 Март 2019 , Python, 84616 просмотров, Getting Started with MySQL in Python
Ранее я уже писал статью про работу с PostgreSQL из Python. Сегодняшний пост будет посвящен другой популярной базе данных MySQL. Мой путь в веб-программирование был классическим: PHP, MySQL и Apache. Среди php-разработчиков MySQL пользуется большей популярностью чем PostgreSQL, хотя последняя предоставляет функционал намного богаче. MySQL до сих пор остаётся лидером среди реляционных open source баз данных, поэтому давайте узнаем как с ней работать через Python.
Установка
В статье речь пойдёт про пакет PyMySQL, это реализация mysql-клиента на чистом Python, поэтому никакие дополнительный Си-библиотеки ставить не придётся. Пакет поддерживает работу с Python 2.7 и Python >= 3.5.
Для установки библиотеки выполняем стандартную команду:
pip install PyMySQL
Начало работы
Соединиться с базой можно вот так:
import pymysql from pymysql.cursors import DictCursor connection = pymysql.connect( host='localhost', user='user', password='password', db='iata', charset='utf8mb4', cursorclass=DictCursor ) . connection.close()
Обратите внимание, что я импортировал класс DictCursor и передал его в вызов функции connect , это нужно для того, чтобы получить результат в виде словаря, где ключами будут названия колонок. Если вам удобно работать с tuple, то ничего не передавайте в cursorclass
Рекомендуется всегда явно закрывать открытое с базой MySQL соединение, путём вызова метода close у объекта connection . Чаще всего разработчики прибегают к конструкции try/finally, но я использую closing из contextlib. Вот как это выглядит:
from contextlib import closing import pymysql from pymysql.cursors import DictCursor with closing(pymysql.connect(. )) as connection: .
В этом случае при выходе из контекстного блока автоматически будет вызван метод close . Чтобы начать взаимодействие с MySQL, необходимо создать курсор:
with closing(pymysql.connect(. )) as connection: with connection.cursor() as cursor: query = «»» SELECT airport_code FROM airports ORDER BY airport_code DESC LIMIT 5 «»» cursor.execute(query) for row in cursor: print(row)
Пишем в базу
А вот как выглядит INSERT в простенькую таблицу с одной колонкой. Описание схемы таблицы следующее:
CREATE TABLE IF NOT EXISTS tweets ( tweet VARCHAR(254) ) ENGINE=INNODB;
А вот код вставки и чтения результата операции
with closing(pymysql.connect(. )) as conn: with conn.cursor() as cursor: tweets = [ 'Hello world!', 'I love Python & MySQL', 'Let\'s start programming ASAP', 'Python is the coolest programming language' ] query = 'INSERT INTO tweets (tweet) VALUES (%s)' cursor.executemany(query, tweets) # необходимо, т.к. по-умолчанию commit происходит только после выхода # из контекстного менеджера иначе мы бы не увидели твиттов conn.commit() with conn.cursor() as cursor: query = 'SELECT tweet FROM tweets' cursor.execute(query) for row in cursor: print(row['tweet'])
В выполнения кода получим следующий результат
Hello world! I love Python & MySQL Let's start programming ASAP Python is the coolest programming language
Интересные записи:
- Почему Python?
- Что нового появилось в Django Channels?
- FastAPI, asyncio и multiprocessing
- Обзор Python 3.9
- Django Channels: работа с WebSocket и не только
- Введение в logging на Python
- Celery: начинаем правильно
- Pyenv: удобный менеджер версий python
- Руководство по работе с HTTP в Python. Библиотека requests
- Работа с PostgreSQL в Python
- Python-RQ: очередь задач на базе Redis
- Разворачиваем Django приложение в production на примере Telegram бота
- Как написать Telegram бота: практическое руководство
- Авторизация через Telegram в Django и Python
- Введение в pandas: анализ данных на Python
- Django, RQ и FakeRedis
- Интеграция Trix editor в Django
- Обзор Python 3.8
- Итоги первой встречи Python программистов в Алматы
- Участие в подкасте TalkPython
- Строим Data Pipeline на Python и Luigi
- Авторизация через Telegram в Django приложении
- Видео презентации ETL на Python
Подключение к базе данных MySQL на Python
В этом разделе руководства мы обсудим действия по подключению приложения Python к базе данных MySQL.
Чтобы подключить приложение Python к нашей базе данных, нужно выполните следующие шаги:
- Импортируйте модуль mysql.connector.
- Создайте объект подключения.
- Создайте объект cursor.
- Выполните запрос.
Создание соединения
Для создания соединения между базой данных MySQL и приложением Python используется метод connect() модуля mysql.connector.
Передайте данные базы данных, такие как HostName, имя пользователя и пароль базы данных, в вызове метода. Метод возвращает объект подключения.
Синтаксис использования connect() приведен ниже.
Connection-Object= mysql.connector.connect(host = , user = , passwd = )
Рассмотрим следующий пример:
import mysql.connector #Create the connection object myconn = mysql.connector.connect(host = "localhost", user = "root",passwd = "google") #printing the connection object print(myconn)
Здесь мы должны заметить, что можно указать имя базы данных в методе connect(), если мы хотим подключиться к определенной базе данных.
import mysql.connector #Create the connection object myconn = mysql.connector.connect(host = "localhost", user = "root",passwd = "google", database = "mydb") #printing the connection object print(myconn)
Объект cursor
Объект cursor можно определить как обусловленную абстракцию в Python DB-API 2.0. Это позволяет нам иметь несколько отдельных рабочих сред через одно и то же соединение с базой данных. Мы можем создать объект cursor, вызвав функцию-курсор для объекта соединения. Объект cursor – важный аспект выполнения запросов к базам данных.
Синтаксис для создания данного объекта приведен ниже:
= conn.cursor()
import mysql.connector #Create the connection object myconn = mysql.connector.connect(host = "localhost", user = "root",passwd = "google", database = "mydb") #printing the connection object print(myconn) #creating the cursor object cur = myconn.cursor() print(cur)
MySQLCursor:(Nothing executed yet)