Python - Подключить MySQL через localhost не работает, но 127.0.0.1 работает? - PullRequest
2 голосов
/ 12 июля 2020

Я просто установил VPS с базой данных Mysql на нем. Я могу войти в базу данных на терминале S SH с помощью mysql -uroot -p, однако файл python, показанный ниже, не может установить соединение и ошибки с Access denied for root@localhost (using password: YES). Я не понимаю, почему это происходит. Я на 100% уверен, что мой пароль правильный. Я использую mysql .connector

Python file:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="root",
  password="pwd",
  database="db"
)

mycursor = mydb.cursor()

sql = "INSERT INTO test (tests) VALUES (%s)"
val = ("testing")

mycursor.execute(sql, val)

mydb.commit()

Я немного новичок в этой БД и VPS, поэтому, пожалуйста, потерпите меня, если я не буду Не понял по первому go.

Спасибо!

1 Ответ

0 голосов
/ 12 июля 2020

В дополнение к ответу @don

Я предполагаю, что это как-то связано с тем, что DNS неправильно разрешает localhost. Я испытал это раньше, но помимо простого сопоставления localhost с 127.0.01 в файле хоста,

Это также можно исправить, изменив значение в вашем файле /etc/mysql/my.cnf.

Вероятно, ваша строка bind-address

bind-address = localhost 

Вы можете попробовать изменить ее на

bind-address = 127.0.0.1

Вы также можете установить ее на 0.0.0.0, но это откроет подключение к внешний мир (в c. publi c IP), поэтому это настоятельно не рекомендуется, но решит проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...