Найти - Пользователи
Полная версия: Зависает connect к базе. Вчера работал.
Начало » Базы данных » Зависает connect к базе. Вчера работал.
1
ajk-pro
Зависает connect к базе. Вчера работал.
Я уже свел весь скрипт к 10 строкам.
Если эти строки ввести в консоли, то всё работает.
Скрипт на php тоже работает

 #!/home/virtwww/0a5b8524/local/bin/python
# -*- coding: utf-8 -*-
#
import pymysql
print ("Content-Type: text/html\n")
print ('test<br>\n')
print ("Python {}.{}.".format(sys.version_info.major, sys.version_info.minor))
with con:
	con = pymysql.connect(host = 'mysql00.1gb.ru',user = 'user',password = 'password',db = 'gb')
print ('<br>con:')
print (con)

Спасибо!
Александр.
FishHook
 with con:
	con = pymysql.connect(host = 'mysql00.1gb.ru',user = 'user',password = 'password',db = 'gb')
Это гениально, а считаю
py.user.next
ajk-pro , последние две строки занеси в блок with. Отступы удалились.
ajk-pro
Ожидаемо ничего не изменилось.
В вопросе важные слова - “работало” и “свел скрипт к”.

Сейчас убрал вообще with, т.е. сделал плоско.
Строчка с connect прошла, но результат не дает. “name ‘con’ is not defined”
Т.е. нужно смотреть ошибку.

Я подозреваю, что-то изменилось на сервере 1gb, но они не сознаются.
Работало же…

Или там что-то по поводу…
/home/virtwww/…/local/lib/python3.8/site-packages/pymysql/_auth.py:80: UserWarning: old password (for MySQL <4.1) is used. Upgrade your password with newer auth method.
old password support will be removed in future PyMySQL version
warnings.warn(“old password (for MySQL <4.1) is used. Upgrade your password with newer auth method.\\n”

Но там же в консоли всё это работает.

Спасибо!
Александр.
FishHook
ajk-pro
Строчка с connect прошла, но результат не дает. “name ‘con’ is not defined”

Вот твой код

  #!/home/virtwww/w_matica-info_0a8b5524/local/bin/python
# -*- coding: utf-8 -*-
#
import pymysql
print ("Content-Type: text/html\n")
print ('test<br>\n')
print ("Python {}.{}.".format(sys.version_info.major, sys.version_info.minor))
with con:
	con = pymysql.connect(host = 'mysql00.1gb.ru',user = 'user',password = 'password',db = 'gb')
print ('<br>con:')
print (con)

ну и откуда взялась перменная con? Её же надо каким-то образом объявить в этой области видимости. Это же бред написан. При чем тут какие-то пароли и базы данных?

ajk-pro
Т.е. нужно смотреть ошибку.
Да ладно!!!! Вы хотите сказать, что информация об ошибке имеет смысл??
ajk-pro
Ну, ладно, там я в коде для вопроса напутал.

Вот, я еще раз понажимал:
 	
import pymysql
print ("Content-Type: text/html\n")
try:
	con = pymysql.connect(host = 'host.ru',user = 'user',password = 'pass',db = 'gb')
except Exception as e:
	print (e)
else:
	print('Error1?<br>')
print ('con:')
print (con, '<br>')
sql = "SELECT * FROM `base` "
print ('SQL<br>')
try:
	with con:
		cur = con.cursor()
		cur.execute(sql)
		rows = cur.fetchall()
except Exception as e:
	print (e)
else:
	print('Error2?<br>')

Вывод:
test
Python 3.8
Error1?
con:
Database version: 5.0.70-log SQL
Error2?

В логах ошибок нет. Что значит выход на “print('Error” ?
Если в конекте внести реальную ошибку, то будет реальный ответ через Exeption

Спасибо!
Александр
ajk-pro
Само заработало. Что-то они там испортили, потом вернули.

Спасибо!
Александр
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB