В 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. Затем вы можете исправить ошибку.