2003 будет вне поддержки до 2008. По этой причине один (а также много других) необходимо перейти к 2008.
Прочитайте и выполните главу об изменении пароля root в MySQL Reference Manual.
Эта процедура запускает mysql демона без авторизации, разрешающей Вам соединяться, не предоставляя учетные данные. В этом режиме можно обычно соединяться и изменять пароли и предоставления. Впоследствии не забывайте запускать mysql снова с соответствующих полномочий на месте.
Если это - поле Debian/Ubuntu, существует специальная корневая эквивалентная учетная запись, названная debian-sys-maint. Можно считать пароль в/etc/mysql/debian.cnf
Используя тот пароль можно войти в mysql как debian-sys-maint использование:
mysql --defaults-file=/etc/mysql/debian.cnf mysql
После того как Вы зарегистрированы, сделайте следующее:
update user set password=password('<new password>') where user='root';
flush privileges;
quit;
корень должен теперь быть доступным использованием Вашего нового пароля:
mysql -uroot -p
Мой пользователь root не существует. На
CREATE USER root@localhost;
я получил
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
Решение было:
mysqld_safe --skip-grant-tables &
mysql
INSERT INTO user (Host,User,Password) VALUES ('localhost', 'root', 'changethispassword');
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES;
После этого я добавил все привилегии одну за другой с небольшой помощью из этого:
mysql mysql -e "SELECT * FROM user WHERE User='root'\G"|grep N
(и этот можно и нужно автоматизировать больше)
Примечание : поиск правильного количества Y в INSERT
- это PITA.