ramario
24.07.2018 13:48
0
Есть скрипт:
#!/usr/bin/python3
import pymysql.cursors

print("Content-Type: text/html\n\n")
msg = "Hello, World!"
print("""%s""" % msg)

db = pymysql.connect(host='host.mysql.tools',
user='host_user',
password='12345',
db='host_bd')
cursor = db.cursor()
cursor.execute("SELECT VERSION()")
data = cursor.fetchone()
print ("Database version : %s " % data)
db.close()

При вызове файла не выполняется код после строки print("""%s""" % msg).
В чём может быть проблема???
Roman P.
24.07.2018 22:33
0
Должно работать: https://repl.it/repls/AggravatingStarryScale (Ваш код). Нужно немного подождать перед тем, как скрипт выведет ошибку о продключении к БД.
cdn.adm.tools/forum_message/0463/97/2018-07-24_223358.png
ramario
25.07.2018 08:23
0
Я и так знаю что код рабочий. Но при вызове www.mysite.com/skript/skript.py выводится только "Hello, World!", но не выводится "Database version:" .Даже нет ошибки когда неправильно указаны параметры подключения к базе данных.
Код:
db = pymysql.connect(host='host.mysql.tools',
user='host_user',
password='12345',
db='host_bd')
cursor = db.cursor()
cursor.execute("SELECT VERSION()")
data = cursor.fetchone()
print ("Database version : %s " % data)
db.close()

на сервере, походу, вообще не выполняется!!!
karlov
25.07.2018 18:24
0
Проверил работу скрипта у себя и проблем не обнаружил, скрипт рабочий. На скриншоте сам скрипт и результат его выполнения — i.imgur.com/gPfjRdD.png
Возможно, стоит перепроверить параметры подключения к базе данных, указанные в скрипте. К примеру, если пароль указан неверно, скрипт выведет только «Hello, World!».
ramario
26.07.2018 08:50
0
Если я скрипт запускаю в PyCharm, IDLE или здесь repl.it/repls/AggravatingStarryScale - всё работает, а на сервере не хочет.
Что на сервере (возможно настройки) может мешать скрипту подключаться к БД?????
alexandrpaliy
01.08.2018 11:32
4
В Вашем случае pymysql.connect() не работала из-за того, что на сервере была установлена слишком старая версия pymysql - 0.6.2

Возникала ошибка
TypeError: __init__() got an unexpected keyword argument 'password'

потому что в версии 0.6.2 этот параметр назывался 'passwd'

Для наглядности, разница в списке параметров, которые ожидала видеть connect():
pymysql 0.6.2 - github.com/PyMySQL/PyMySQL/blob/92114cf35074abe4335c34d06a9b75bc6dcccad6/pymysql/connections.py (строка 500)
pymysql 0.8.0 - github.com/PyMySQL/PyMySQL/blob/0305541132b134047eb4ba70fc9acbc9be603d05/pymysql/connections.py (строка 569)

Перенесли аккаунт на сервер с версией pymysql 0.8.0, теперь ошибка проявляться не должна.
Тема закрита.