URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 800
[ Назад ]

Исходное сообщение
"mysql auth failed"

Отправлено W.M. , 08-Окт-02 21:15 
Поможите люди добрые!!! Сложилась следующая ситуация(привожу полную историю, поскипано несущественное):

>======

Last login: Tue Oct  8 15:04:54 2002 from :0
[root@oic root]# mysql -u root mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 64 to server version: 3.23.49

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> update user set password='passwdw' where user='root';

Query OK, 2 rows affected (0.00 sec)
Rows matched: 2  Changed: 2  Warnings: 0

mysql> FLUSH privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> quit;

Bye
[root@oic root]# mysql -p -u root mysql
Enter password:
ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)

>======

Было там в users два узера root, оба были без пароля, обоим поставился пароль,
я посмотрел базы, действительно пароль в user.MYD стоит такой как я вводил, но
ни из Shell, ни из mysqladmin, ни из скриптов на РHР с указанными
логином-паролем более не пускает в базы. Что делать? Помогите!!!


Содержание

Сообщения в этом обсуждении
"RE: mysql auth failed"
Отправлено uldus , 09-Окт-02 09:43 
>mysql> update user set password='passwdw' where user='root';
>mysql> FLUSH privileges;
>[root@oic root]# mysql -p -u root mysql

А для базы mysql доступ для root открыт (таблица db) ?
Прописанный в user и db таблицах хост (поле Host) совпадает с тем с которого пытаешься зайти в базу ?

Через mysql_setpermission не пробовал выставлять пароль и права доступа ?


"RE: mysql auth failed"
Отправлено W.M. , 09-Окт-02 13:20 
>>mysql> update user set password='passwdw' where user='root';
                        ошибка тут ^^^^ а надо было PASSWORD('passwdw')
>>mysql> FLUSH privileges;
>>[root@oic root]# mysql -p -u root mysql
>
>А для базы mysql доступ для root открыт (таблица db) ?
>Прописанный в user и db таблицах хост (поле Host) совпадает с тем
>с которого пытаешься зайти в базу ?
>
>Через mysql_setpermission не пробовал выставлять пароль и права доступа ?

Все оказалось проще - в той доке, по которой я делал не было написано, что пароли mysql передаются в шифрованном виде, то есть хеши, и я неправильно написал запрос.

Я выгрузил mysqld (killall mysqld, killall safe_mysqld), запустил safe_mysqld --skip-grant-tables &, затем из myphpadmin(можно и из командной строки) создал юзера, пароль зашифровал функцией password, снова убил и перезапустил mysqld, но уже с grant tables, и все заработало.

Источники тут:
http://www.devshed.com/Server_Side/MySQL/Grant_Tables/commen...
http://www.devshed.com/Server_Side/MySQL/Grant_Tables/commen...
и тут:
https://www.opennet.ru/docs/RUS/mysqlrus/admin.html#About