TheProgrammer256
@TheProgrammer256
Программирование - хобби, обучаюсь постепенно.

Python + MySQL: почему происходит ошибка?

Пытаюсь работать с базой данных, используя следующий код:
import MySQLdb

conn = MySQLdb.connect(host='localhost', db='main_database', charset='utf8')
cursor = conn.cursor()
for i in range(1, 401):
    cursor.execute(f"INSERT INTO lessons (id, title, text1, image1, text2, image2) VALUES ({i}, '', '', '', '');")
conn.close()

При этом вызывается ошибка:
File "C:/Users/Дгиф/PycharmProjects/LubaProject/script_table.py", line 3, in <module>
    conn = MySQLdb.connect(db='main_database', charset='utf8')
  File "C:\Users\Дгиф\AppData\Local\Programs\Python\Python36-32\lib\site-packages\MySQLdb\__init__.py", line 86, in Connect
    return Connection(*args, **kwargs)
  File "C:\Users\Дгиф\AppData\Local\Programs\Python\Python36-32\lib\site-packages\MySQLdb\connections.py", line 204, in __init__
    super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (1044, "Access denied for user ''@'localhost' to database 'main_database'")

А сли запустить такой код:
import MySQLdb

conn = MySQLdb.connect('localhost', 'main_database')
cursor = conn.cursor()
for i in range(1, 401):
    cursor.execute(f"INSERT INTO lessons (id, title, text1, image1, text2, image2) VALUES ({i}, '', '', '', '');")
conn.close()

То получаем
Traceback (most recent call last):
  File "C:/Users/Дгиф/PycharmProjects/LubaProject/script_table.py", line 6, in <module>
    cursor.execute(f"INSERT INTO lessons (id, title, text1, image1, text2, image2) VALUES ({i}, '', '', '', '');")
  File "C:\Users\Дгиф\AppData\Local\Programs\Python\Python36-32\lib\site-packages\MySQLdb\cursors.py", line 250, in execute
    self.errorhandler(self, exc, value)
  File "C:\Users\Дгиф\AppData\Local\Programs\Python\Python36-32\lib\site-packages\MySQLdb\connections.py", line 50, in defaulterrorhandler
    raise errorvalue
  File "C:\Users\Дгиф\AppData\Local\Programs\Python\Python36-32\lib\site-packages\MySQLdb\cursors.py", line 247, in execute
    res = self._query(query)
  File "C:\Users\Дгиф\AppData\Local\Programs\Python\Python36-32\lib\site-packages\MySQLdb\cursors.py", line 411, in _query
    rowcount = self._do_query(q)
  File "C:\Users\Дгиф\AppData\Local\Programs\Python\Python36-32\lib\site-packages\MySQLdb\cursors.py", line 374, in _do_query
    db.query(q)
  File "C:\Users\Дгиф\AppData\Local\Programs\Python\Python36-32\lib\site-packages\MySQLdb\connections.py", line 277, in query
    _mysql.connection.query(self, query)
_mysql_exceptions.OperationalError: (1046, 'No database selected')

Пожалуйста, помогите понять в чём проблема, и, по-возможности, исправить её.
ВНИМАНИЕ! Я регистрировался как АНОНИМ и не знаю как указать свой логин и пароль. Подскажите пожалуйста!
  • Вопрос задан
  • 988 просмотров
Решения вопроса 1
Вам необходимо указать имя пользователя в соединении
conn = MySQLdb.connect(host='localhost', db='main_database', charset='utf8', user='joebob')

user - имя пользователя, db - имя базы данных.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@Stqs
senior software developer
я бы начал с документации
http://mysql-python.sourceforge.net/MySQLdb.html#f...
передайте все аргументы хост, логин, пароль, и имя базы явно
что получится?
Ответ написан
Комментировать
TheProgrammer256
@TheProgrammer256 Автор вопроса
Программирование - хобби, обучаюсь постепенно.
Пожалуйста, уточните, как мне указать логин и пароль, учитывая, что я аноним.
Ответ написан
Комментировать
@Ramzi_bullet
Друзья, у меня задача на работе парсить данные из бд с удалённого сервака, вход на него через VPN, ввожу логин\пароль для авторизации в базе, но валится 2003 ошибка ""Can't connect to MySQL server on --server--". Подскажите, если кто знает в чём проблема.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы