Я пытался предоставить удаленный доступ к MySQL, поскольку MySQL только работал локально.
Я следовал этому руководству http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html
Я использовал команду как это из учебного руководства:
mysql> update user set Host='202.54.10.20' where user='root';
Я думаю, что это испортило локальный mysql.
Теперь я не могу войти в систему с:
$ mysql -u root -p
я получаю эту ошибку:
Доступ запрещен для пользователя 'базируется' 'localhost' (использование пароля: Да)
Теперь я знаю, что пароль является правильным, поскольку он раньше работал прежде. но я случайно заблокировал меня..
Я не знаю, что больше делать.
OS, используемой сервером, является Ubuntu.
Можно попробовать обычную процедуру восстановления:
Выполнение сервисное использование:
sudo mysqld_safe --skip-grant-tables &
Подключение (пароль не будет требоваться):
mysql -uroot
Возвращаются Ваши изменения (быть осторожным на этот раз и свериться select
, что является текущим состоянием, хост должен быть 202.54.10.20
):
use mysql;
update user set Host='localhost' where user='root';
flush privileges;
MySQL Restart регулярный путь
Попробуйте эту команду:
SHOW GRANTS FOR 'root'@'localhost';
Это может также произойти, если у Вас нет надлежащих полномочий. таким образом, можно даже ввести следующую команду:
GRANT ALL PRIVILEGES ON `%`.* TO '[user]'@'[hostname]' IDENTIFIED BY '[password]' WITH GRANT OPTION;
Я имел ту же проблему (обновленный неправильно пользовательский хост от virtualmin) и зафиксировал его с шагами так же к ответу от @techraf, но выполнения подобных шагов этого сайта для предотвращения can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
ошибка в человечности 16.04:
https://coderwall.com/p/j9btlg/reset-the-mysql-5-7-root-password-in-ubuntu-16-04-lts
Я изменил шаги для обновления хоста вместо пароля:
# Stop MySQL
sudo service mysql stop
# Make MySQL service directory.
sudo mkdir /var/run/mysqld
# Give MySQL user permission to write to the service directory.
sudo chown mysql: /var/run/mysqld
# Start MySQL manually, without permission checks or networking.
sudo mysqld_safe --skip-grant-tables --skip-networking &
# Log in without a password.
mysql -uroot mysql
затем в mysql:
select user, host from mysql.user; --just to check
UPDATE mysql.user SET host='localhost' WHERE User='root' AND Host='202.54.10.20'; --CHANGE the host to the one you see in the query
select user, host from mysql.user; --check again
commit;
exit;
И затем в консоли:
# Turn off MySQL.
sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown
# Start the MySQL service normally.
sudo service mysql start
Если вы получаете эту ошибку в Workbench, выполните следующие действия.
Сначала просто войдите под своим текущим паролем:
sudo mysql -u root -p
Затем измените свой пароль, потому что ненадежный пароль иногда вызывает ошибку.
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new-strong-password';
FLUSH PRIVILEGES;
Затем просто выйдите и снова войдите под своим новым паролем:
quit
sudo mysql -u root -p
После успешного входа в систему введите команду:
use mysql;
Должно появиться сообщение типа «База данных изменена», затем введите:
UPDATE user SET plugin='mysql_native_password' WHERE User='root';
После этого введите:
UPDATE mysql.user set authentication_string=PASSWORD('new-strong-password') where user='root';
Затем введите:
FLUSH PRIVILEGES;
Затем просто выйдите:
quit
Теперь попробуйте войти с новым паролем в WORKBENCH. Надеюсь, это сработает. Спасибо.