Задать вопрос
@r1dddy4sv

Почему постоянно работает сервер mysql?

Для подключения mysql к python я использую библиотеку mysql-connector-python.

Как я заметил, для ее работы я должен заранее включить сервер mysql, но я собираюсь заливать мой скрипт на хостинг (heroku), поэтому хочу уточнить, как мне сделать так, чтобы сервер работал постоянно или может другие рабочие решения.

Мой код:
import mysql.connector
from mysql.connector import Error
def create_connection_mysql_db(db_host, user_name, user_password, db_name = None):
    connection_db = None
    try:
        connection_db = mysql.connector.connect(
            host = db_host,
            user = user_name,
            passwd = user_password,
            database = db_name
        )
        print("Подключение к MySQL успешно выполнено")
    except Error as db_connection_error:
        print("Возникла ошибка: ", db_connection_error)
    return connection_db
try:
    conn = create_connection_mysql_db('localhost', 
                                    'root', 
                                    'pass')
    cursor = conn.cursor()
    create_db_sql_query = 'CREATE DATABASE IF NOT EXISTS {}'.format('raffle')
    cursor.execute(create_db_sql_query)
    cursor.close()
    conn.close()

    conn = create_connection_mysql_db('localhost', 
                                    'root', 
                                    'pass',
                                    "raffle")
    cursor = conn.cursor()
    create_table_query = '''
    CREATE TABLE IF NOT EXISTS links (
    id INT AUTO_INCREMENT, 
    link TEXT NOT NULL, 
    PRIMARY KEY (id)
    ) ENGINE = InnoDB'''
    cursor.execute(create_table_query)
    conn.commit()
except Error as error:
    print(error)
finally:
    cursor.close()
    conn.close() 
def start:
    #code
        #code
           #code
            try:
                conn = create_connection_mysql_db('localhost', 
                                                'root', 
                                                'pass',
                                                "raffle")
                cursor = conn.cursor()
                delete_Usa_users_query = '''
                DELETE FROM users;
                '''
                cursor.execute(delete_Usa_users_query)
                conn.commit()
                ll=links.split(', ')
                for lean in ll:
                    insert_users_table_query = f'''
                    INSERT INTO
                    `users` (`link')
                    VALUES
                    ('{lean}');'''
                    cursor.execute(insert_users_table_query)
                    conn.commit()
            except Error as error:
                print(error)
            finally:
                cursor.close()
                conn.close()
  • Вопрос задан
  • 150 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
2ord
@2ord
create_connection_mysql_db('localhost',
а почему localhost?
В Heroku нужно использовать сторонние addons для подключений к СУБД (mysql, postgresql и пр.). Они предоставляют connection string, который нужно использовать вместо localhost.
Кроме того, как только в аккаунте для приложения будет добавлен addon mysql, то последний сам стартует, вне зависимости от того, есть ди к нему соединения или нет.

На ваш код больно смотреть.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Wispik
@Wispik
cleardb
Как вариант, подключи этот аддон.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы