Программа на Python, работающая в оболочке, но не при запуске из режима ожидания

#python #mysql

#python #mysql

Вопрос:

Я написал скрипт, а затем все пошло не так, но в оболочке python я ввел тот же код в скрипт, и он сработал. Что произошло? Вот мой код:

 # -*-coding:utf-8-*-
import pymysql
try:
    conn = pymysql.connect('localhost', 'root', 'Hjd4132!', 'pytest')
    cursor = conn.cursor()
    cursor.execute('SELECT * from demo')
    data = cursor.fetchone()
    print(data[3])
except Exception as e:
    print(e)
finally:
    cursor.close()
    conn.close()
  

Вот мое сообщение об ошибке:

 (1045, u"Access denied for user 'root'@'localhost' (using password: YES)")
Traceback (most recent call last):
  File "demo.py", line 12, in <module>
    cursor.close()
NameError: name 'cursor' is not defined
  

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

1. Итак, ваша строка cursor = .. не была выполнена. В connect() методе появилось исключение.

2. Я изменил MySQL 5.7 на 5.1, и проблема была решена без изменения кода. Спасибо за ваш ответ!

Ответ №1:

это ошибка, которую вы получаете, когда пользователь или пароль неверны, возможно, вам следует проверить строку, с которой вы начинаете соединение, это причина, по которой курсор не определен.

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

1. я могу использовать пароль для входа в mysql, и в оболочке python это сработало, но когда я запустил этот скрипт, он допустил ошибку

2. Я изменил MySQL 5.7 на 5.1, и проблема была решена без изменения кода. Спасибо за ваш ответ!