LINUX.ORG.RU

Не могу забороть mysql

 


0

1

В кратце, есть код на питоне

cur.execute("CREATE DATABASE `{0}` CHARACTER SET utf8 COLLATE "
                        "utf8_general_ci".format(db_name))
            cur.execute("CREATE USER '{0}'@'%' IDENTIFIED BY '{1}'".format(username, password))
            cur.execute("GRANT ALL PRIVILEGES ON {0}.* TO '{1}'@'%' WITH GRANT"
                        " OPTION".format(db_name, username))
            cur.execute("GRANT ALL PRIVILEGES ON {0}.* TO '{1}'@'localhost' WITH GRANT"
                        " OPTION".format(db_name, username))
            cur.execute("FLUSH PRIVILEGES;")
Который теоретически должен позволить username заходить через password с любого хоста, но раз за разом я получаю ошибки такого вида:
Access denied for user 'P3X7KA4YXI4F18B9'@'localhost' (using password: YES)

Что я делаю не так? Разве '%' не должен просто работать?

Ответ на: комментарий от amomymous

+1. Долго не мог понять, почему вручную команды проходят, а через перловый DBI интерфейс - нет. Оказалось, что нужно было выполнить commit - защита от дурака в DBI

router ★★★★★ ()
Ответ на: комментарий от amomymous
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| demo               |
| mysql              |
| performance_schema |
| test               |
+--------------------+
mysql> select user, host from mysql.user;
+------------------+--------------------------------+
| user             | host                           |
+------------------+--------------------------------+
| P3X7KA4YXI4F18B9 | %                              |
| root             | 127.0.0.1                      |
| root             | ::1                            |
|                  | Ubuntu-1204-precise-64-minimal |
| root             | Ubuntu-1204-precise-64-minimal |
|                  | localhost                      |
| P3X7KA4YXI4F18B9 | localhost                      |
| debian-sys-maint | localhost                      |
| root             | localhost                      |
+------------------+--------------------------------+
>>> db = MySQLdb.connect(
...     host="127.0.0.1",
...     port=3306,
...     user="P3X7KA4YXI4F18B9",
...     passwd="SLLAP8AYFS8YDI7T"
... )
Traceback (most recent call last):
  File "<stdin>", line 5, in <module>
  File "/usr/lib/python2.7/dist-packages/MySQLdb/__init__.py", line 81, in Connect
    return Connection(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 187, in __init__
    super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (1045, "Access denied for user 'P3X7KA4YXI4F18B9'@'localhost' (using password: YES)")

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

Spectator ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.