Полное доменное имя в синтаксисе mysqldb

#python #mysql #raspberry-pi #mysql-python

#python #mysql #raspberry-pi #mysql-python

Вопрос:

Пытаюсь подключиться к размещенному экземпляру mysql с помощью скрипта python и получаю сообщение об ошибке. Из того, что я прочитал, похоже, что это связано с тем, что в качестве имени хоста не используется localhost или ip-адрес.

Есть ли у кого-нибудь какие-либо рекомендации относительно того, что могло бы это исправить, или мне нужно посмотреть на повторное размещение моей базы данных, потому что хосты не будут предоставлять IP … код и ошибку, приведенные ниже в приложении.

Спасибо, Том

 db = MySQLdb.connect(host='dbname.db.1and1.com',
                 user='user',
                 passwd='password',
                 db='db')
  

Ошибка:

_mysql_exceptions.OperationalError: (2005, «Неизвестный хост сервера MySQL ‘dbname.db.1and1.com ‘ (2)»)

Ответ №1:

Попробуйте nslookup dbname.db.1and1.com проверить, можете ли вы разрешить этот домен. Если нет, то вам следует рассмотреть проблему с сетью, но не с программированием.Если это так, попробуйте использовать IP вместо domain на случай, если с вашим DNS-сервером что-то не так.

Комментарии:

1. Спасибо за ваш ответ — я выполнил nslookup, и это не разрешилось… тогда оно будет работать только с IP-адресами? Я нахожу это удивительным, потому что вероятность того, что служба хостинга изменит IP, связанный с DNS, вероятно, довольно высока.

2. Я считаю, что это будет работать правильно с IP. Но прежде всего, вы должны выполнить пинг через IP-адрес назначения. С течением времени домен будет меняться с большей вероятностью, чем IP.

3. Хм, я не согласен, домен с гораздо меньшей вероятностью изменится, чем IP-адрес — в любом случае, я не могу выполнить ping / nslookup поддомена, он не преобразуется в IP…

4. Таким образом, вы имеете в виду, что хотите подключиться к базе данных MySQL, которая основана на недоступном хосте. Как я уже сказал в ответе, сначала вам следует устранить проблему с сетью.