«Неизвестный сервер MySQL» при использовании Flask в Python

0

Я пытаюсь запустить веб-приложение с Flask. У меня есть сервер MySQL на моем устройстве и изменил его bind address на 192.168.0.102.

Теперь, в Python, я пытаюсь подключиться к MySQLdb:

    conn = MySQLdb.connect("user='myuser', password='mypassword', host='192.168.0.102', database='usersdb'")

... с приложением Flask, работающим на 192.168.0.102

app.run(debug=True, host='192.168.0.102')

Теперь я получаю эту ошибку:

OperationalError: (2005, "Unknown MySQL server host 'user='myuser', password='mypassword', host='192.168.0.102', database='usersdb'' (0)")

Я не знаю, связано ли это с тем, что MySQL не работает на 192.168.0.102 или если это проблема с Flask.

В чем может быть проблема?

Теги:
flask

2 ответа

0
Лучший ответ

К сожалению, вы пытаетесь поместить string которая является недопустимым host для MySQLdb.connection, это не правильные параметры, которые ожидают функция! вы должны прочитать больше документации или попытаться использовать функцию помощи, чтобы глубоко понять эту функцию. и какие его параметры требуются, и какой тип параметра он ожидал.

import MySQLdb
help(MySQLdb.connection)

вы увидите некоторые документы, как показано ниже:

class connection(__builtin__.object)
 |  Returns a MYSQL connection object. Exclusive use of
 |  keyword parameters strongly recommended. Consult the
 |  MySQL C API documentation for more details.
 |  
 |  host
 |    string, host to connect
 |  
 |  user
 |    string, user to connect as
 |  
 |  passwd
 |    string, password to use
 |  
 |  db
 |    string, database to use
 |  
 |  port
 |    integer, TCP/IP port to connect to

проверьте ваш сервер mysql, запущенный на компьютере, который ip 192.168.0.102 а затем попытайтесь подключить ваш сервер mysql при помощи командной строки python:

import MySQLdb
conn = MySQLdb.connect(user='myuser', password='mypassword', host='192.168.0.102', database='usersdb')

он должен работать!

BTW, ваш должен запустить вашу флягу на весь адрес, который есть у вашей машины! лайк:

   app.run(host='0.0.0.0', debug=True)
  • 0
    да, я не заметил этого, я поставил все параметры в виде строки. Теперь это работает, ты.
0

Попробуй это:

Введите IP-адрес, на котором находится сервер MySQL, в MySQLdb.connect:

conn = MySQLdb.connect(host="localhost",    # MySQL host, usually localhost
                       user="myuser",
                       passwd="mypassword",
                       db="usersdb")

И используйте адрес 192.168.0.102 для:

app.run(debug=True, host='192.168.0.102')

Ещё вопросы

Сообщество Overcoder
Наверх
Меню