Как подключиться к базе данных pythonanywhere?
через pythonanywhere работает но локально нет
conn = mysql.connector.connect(user='hayk1',password='HvU7B@P9w73Nf4H',host='hayk1.mysql.pythonanywhere-services.com',database='hayk1$my_hl',)
cursor=conn.cursor()
cursor.execute("SELECT * FROM abc")
rows=cursor.fetchall()
for i in rows:
print(i)
conn.commit()
Traceback (most recent call last):
File "C:\Users\Hayk\AppData\Local\Programs\Python\Python37\lib\site-packages\mysql\connector\connection_cext.py", line 200, in _open_connection
self._cmysql.connect(**cnx_kwargs)
_mysql_connector.MySQLInterfaceError: Can't connect to MySQL server on 'hayk1.mysql.pythonanywhere-services.com' (10060)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:/Users/Hayk/Desktop/Pycharm/pycharm/baza_danni/baza danni_pythonaniwhere.py", line 3, in <module>
conn = mysql.connector.connect(user='hayk1',password='HvU7B@P9w73Nf4H',host='hayk1.mysql.pythonanywhere-services.com',database='hayk1$my_hl',)
File "C:\Users\Hayk\AppData\Local\Programs\Python\Python37\lib\site-packages\mysql\connector\__init__.py", line 176, in connect
return CMySQLConnection(*args, **kwargs)
File "C:\Users\Hayk\AppData\Local\Programs\Python\Python37\lib\site-packages\mysql\connector\connection_cext.py", line 80, in __init__
self.connect(**kwargs)
File "C:\Users\Hayk\AppData\Local\Programs\Python\Python37\lib\site-packages\mysql\connector\abstracts.py", line 781, in connect
self._open_connection()
File "C:\Users\Hayk\AppData\Local\Programs\Python\Python37\lib\site-packages\mysql\connector\connection_cext.py", line 203, in _open_connection
sqlstate=exc.sqlstate)
mysql.connector.errors.DatabaseError: 2003 (HY000): Can't connect to MySQL server on 'hayk1.mysql.pythonanywhere-services.com' (10060)
Process finished with exit code 1
Ответы (1 шт):
Ошибка MySQL 10060 обычно говорит о том, что удаленное соединение не сработало.
Если в качестве имени хоста указать localhost, 127.0.0.1 или ничего не указывать, то на UNIX системах соединение будет строиться через UNIX socket file. Если же указать любое другое имя host'а, то для соединения будет использоваться TCP/IP протокол.
Причин возникновения ошибки 10060 на стороне MySQL сервера может быть несколько:
- по указанном порту (по умолчанию это порт 3306) никто не слушает. Например сервис MySQL привязан только к
localhost/127.0.0.1. В этом случае надо правильно сконфигурировать параметр MySQL сервисаbind-addressи рестартовать сервис. - IP interface указанный в параметре
--host- не поднят или не работает правильно.
Чтобы проверить слушает ли какой-либо MySQL сервис на порту 3306 (порт используемый MySQL по умолчанию) и привязанный к указанному в параметре --host IP, можно воспользоваться командой telnet:
telnet mysql_hostname_or_ip_address 3306
если данная команда отработала без ошибок, значит указанные выше причины проблемы можно исключить.