Проблема с подключением к MySQL из Python

Установил MySQL(MariaDB), из консоли с подключением проблем нет.

user > mysql
ERROR 1045 (28000): Access denied for user 'user'@'localhost' (using password: NO)

рут с пустым паролем:

user > mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 14
Server version: 10.0.26-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

Есть такой фрагмент кода main.py:

    import mysql.connector
    from mysql.connector import Error
    
    def create_connection(host_name, user_name, user_password):
        connection = None
        try:
            connection = mysql.connector.connect(
                host=host_name,
                user=user_name,
                passwd=user_password
            )
            print("Connection to MySQL DB successful")
        except Error as e:
            print(f"The error '{e}' occurred")
  
   connection = create_connection("localhost", "root", "")

При выполнении этой прогаммы я получаю вывод:

user > ./main.py 
The error '2003 (HY000): Can't connect to MySQL server on 'localhost' (111)' occurred

Фаервол отключен, из консоли все вроде нормально , а из питона не получается подключиться.


Ответы (1 шт):

Автор решения: AgentOrange

Все решилось добавлением дополнительного аргумента unix_sock:

    import mysql.connector
    from mysql.connector import Error
    
    def create_connection(host_name, user_name, user_password, unix_sock):
        connection = None
        try:
            connection = mysql.connector.connect(
                host=host_name,
                user=user_name,
                passwd=user_password,
                unix_socket=unix_sock
            )
            print("Connection to MySQL DB successful")
        except Error as e:
            print(f"The error '{e}' occurred")
  
   connection = create_connection("localhost", "root", "psswd", "/var/run/mysql/mysql.sock")

Теперь это работает.

→ Ссылка