Перейти к содержимому

Как подключиться к базе данных mysql python

  • автор:

Как подключить БД 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 к нашей базе данных, нужно выполните следующие шаги:

  1. Импортируйте модуль mysql.connector.
  2. Создайте объект подключения.
  3. Создайте объект cursor.
  4. Выполните запрос.

Создание соединения

Для создания соединения между базой данных 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)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *