Назад | Перейти на главную страницу

Невозможно войти в mysql после установки неправильных привилегий mysql / хоста

В CentOS 5.x я использовал панель webmin, и я был в настройках mysql, я пытался разрешить "root" входить с моего домашнего ip в дополнение к localhost. В списке хостов у меня было «any» или «localhost», я попытался сделать его «localhost, 84.xx.xx.xx», думая, что это позволит мне войти в систему с моего локального компьютера с помощью программы администратора mysql.

После того, как я сохранил введенные данные, я ничего не могу сделать с mysql

Webmin говорит DBI connect failed : Access denied for user ''@'localhost' to database 'mysql'

В SSH mysql говорит ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'

Я предполагаю, что mysql больше не позволяет root подключаться с любого хоста, потому что я ввел неправильные хосты.

Я попытался удалить и переустановить mysql, но без изменений. Есть ли способ сбросить это? У меня нет данных из базы данных, при необходимости могу удалить все.

Спасибо.

Войдите в терминал как root и остановите демон mysql.

/etc/init.d/mysqld stop

Затем запустите демон mysql и пропустите таблицы предоставления, в которых хранятся пароли и другая информация о привилегиях.

mysqld_safe --skip-grant-tables &

Вы должны увидеть, что mysqld запускается успешно. Теперь у вас должна быть возможность подключиться к mysql без пароля.

mysql --user=root mysql

а затем обновите соответствующую информацию:

update user set Password=PASSWORD('new-password') where user='root';
flush privileges;
exit;

а затем перезапустите демон mysql, как обычно

/etc/init.d/mysqld restart

Также взгляните на Документация MySQL чтобы помочь вам, если вы застряли

Вам нужно запустить mysql с --skip-grant-tables вариант. Посмотри на эта страница. После этого вы сможете подключиться к базе данных mysql. Затем вы можете исправить ошибку.