Здравствуйте.
Так получилось, что нужно было изменить пароль рута. Пароль не известен.
Выполняю действия, результат:/home/xxxx>ps -ax | grep mysql
24624 p0 S 0:00.01 /bin/sh /usr/local/bin/mysqld_safe --skip-grant-tables
24639 p0 S 0:00.14 /usr/local/libexec/mysqld --basedir=/usr/local --datadir=/var/db/mysql --user=mysql --pid-file=/var/db/mysql/it.d
/home/xxxx>mysqladmin -u root password '123456'
mysqladmin:
You cannot use 'password' command as mysqld runs
with grant tables disabled (was started with --skip-grant-tables).
Use: "mysqladmin flush-privileges password '*'" instead/home/xxxx>mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 14 to server version: 4.1.22Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> UPDATE user SET Password=PASSWORD('123456') WHERE User='root';
Query OK, 0 rows affected, 1 warning (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 1mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)mysql> quit
Bye/home/xxxx>killall -9 mysql
/home/xxxx>/usr/local/etc/rc.d/mysql-server.sh start
/home/xxxx>ps -ax | grep mysql
24676 p0 I 0:00.02 /bin/sh /usr/local/bin/mysqld_safe --defaults-extra-file=/var/db/mysql/my.cnf --user=mysql --datadir=/var/db/mysql
24699 p0 S 0:00.80 /usr/local/libexec/mysqld -defaults-extra-file=/var/db/mysql/my.cnf --basedir=/usr/local --datadir=/var/db/mysql/home/xxxx>mysql -u root -p mysql
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)В чем проблема?
[...]
>You cannot use 'password' command as mysqld runs
> with grant tables disabled (was started with --skip-grant-tables).
>Use: "mysqladmin flush-privileges password '*'" insteadА почему не стал так делать?
>mysql> UPDATE user SET Password=PASSWORD('123456') WHERE User='root';Там есть несколько функций получения хэша пароля, не уверен что PASSWORD - правильная для твоей версии. Я бы поставил SET PASSWORD=NULL WHERE USER='root', а потом скрутил ему пароль снаружи.
>/home/xxxx>killall -9 mysqlСурово ты с ним. А почему mysqladmin shutdown или SIGTERM не используешь, как положено?
>/home/xxxx>mysql -u root -p mysql
>Enter password:
>ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)root может быть запрещено приходить с localhost (который, кстати, не 127.0.0.1, а сокет, описанный в my.cnf).
Все получилось. Выполнил следующее:
# mysql -u root;
mysql> use mysql;
mysql> UPDATE user SET PASSWORD=NULL WHERE USER='root'; //4.1.22
mysql> FLUSH PRIVILEGES;
Далее заходим и меняем пароль:
# mysql -u root;
mysql> use mysql;
mysql> UPDATE user SET Password=PASSWORD('123456') WHERE User='root';
mysql> quit;
#/usr/local/etc/rc.d/mysql-server.sh restart
>root может быть запрещено приходить с localhost (который, кстати, не 127.0.0.1, а
>сокет, описанный в my.cnf).
Подскажи еще, где посмотреть на этот запрет входа с locahost?
лучше всего сделать, как ты делал
># mysql -u root;
>mysql> use mysql;
>mysql> UPDATE user SET PASSWORD=NULL WHERE USER='root'; //4.1.22
>mysql> FLUSH PRIVILEGES;
а потом
>#mysqladmin -h 127.0.0.1 -u root password '123456'