На моем сервере каждый раз, когда я пытаюсь получить доступ к MySQL, я получаю сообщение об ошибке:
Доступ запрещен для пользователя 'root' @ 'localhost' (используется пароль: НЕТ)
при попытке mysqladmin -u root -p password
я получаю
Доступ запрещен для пользователя 'root' @ 'localhost' (используется пароль: YES)
Как получить доступ MySQL на моем сервере Ubuntu 12.04?
Если вы используете n localhost, просто введите следующую команду в терминале:
mysql -u root -p
Если вы используете внешний сервер, также введите IP-адрес хоста (xxx.xxx.xxx.xxx):
mysql -hxxx.xxx.xxx.xxx -uroot -p
You вам будет предложено ввести пароль, введите его, и вы сможете получить доступ к приглашению MySQL.
Вы также можете посмотреть этот ответ о том, как сбросить пароль MySQL.
Установите пароль для mysql
sudo dpkg-reconfigure mysql-server-5.x
Теперь откройте терминал и введите
mysql -uroot -p
введите пароль и нажмите ввод
exec fish
наверху моего сценария запуска Bash, который будет работать на любой терминал, но это shouldn' t быть необходимым; I' m пытающийся выяснить, как сделать это надлежащий путь.
– ohspite
19 August 2015 в 10:51
Я решил свою проблему следующим образом:
sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt install mysql-server
Будьте предельно ответственны. С помощью этого решения вы удаляете сервер MySql и все его данные.
fish
, но некоторые приложения могут использовать bash
ecxplicitely, необходимо измениться вручную для тех.. также обратите внимание, что существуют различия между входом в систему, и невход в систему окружает anad файлы, которые они читают при запуске.. Ваш вопрос не кажется правильно направленным теперь.. Вы могли разработать где/в, какие приложения у Вас есть проблема с fish
?
– heemayl
19 August 2015 в 10:56
Я получаю те же симптомы при обновлении, но для меня исправление (после убийства mysql и перезапуска с --skip-grant- таблицы, в которые нужно попасть) - выполнить
update mysql.user set plugin = '';
Процесс обновления любит устанавливать этот столбец в "unix_socket". Я не знаю, чего это должно достичь, но для меня это все ломает.
После обновления ubuntu 14.4LTS до 16.4LTS пользователь root mysql больше не мог входить в систему из-за неправильной записи в столбце плагина таблицы пользователей mysql. Обновление устанавливает значение подключаемого модуля для пользователя root @ localhost на auth_socket , но правильная запись должна быть mysql_native_password , если вы ранее использовали шифрование паролей mysql.
То же, что и Ульрих Мецгер, после обновления моей машины до Ubuntu 16.04 и Mysql-server-5.7 я не мог войти в систему с правами root, поскольку столбец плагин
изменился.
Моя проблема не была решена с помощью sudo dpkg-reconfigure mysql-server-5.7
+ удаления + очистки + очистки.
Мне пришлось остановить службу mysql:
# sudo service mysql stop
Затем перезапустите демон mysql с параметром - no-grant-tables
:
# sudo mysqld_safe --no-grant-tables &
Затем в другом терминале введите mysql консоль (которая теперь не требует аутентификации) с помощью команды mysql
и обновите столбцы пароля и плагина с помощью SQL UPDATE:
UPDATE mysql.user
SET authentication_string=PASSWORD(''),
plugin='mysql_native_password'
WHERE User='root' AND Host='localhost';
Наконец, завершите команду mysqld_safe
, перезапустите mysql и подключитесь к mysql в обычном режиме:
# sudo service mysql start
# mysql
man urxvt
говорит по умолчанию SHELL
, переменная среды будет использоваться. Возможно, более узким вопросом является " почему SHELL не набор к значению в/etc/passwd после входа in" но that' s не мой истинный вопрос, таким образом, я старался избегать проблемы XY.
– ohspite
19 August 2015 в 11:54
После полной переустановки mysql (думая, что я использовал неверный пароль) я столкнулся с той же проблемой, но в конце концов нашел комментарий Ивана Блэка выше , который помог:
sudo mysql -u root -p
Я не понимаю, почему мне нужны повышенные привилегии для входа в систему с пользователем root.