MySQL Доступ запрещен для пользователя 'root' @ 'localhost'

12

На моем сервере каждый раз, когда я пытаюсь получить доступ к MySQL, я получаю сообщение об ошибке:

  

Доступ запрещен для пользователя 'root' @ 'localhost' (с использованием пароля: НЕТ)

, когда я пытаюсь выполнить mysqladmin -u root -p password , я получаю

  

Доступ запрещен для пользователя 'root' @ 'localhost' (с использованием пароля: YES)

Как я могу получить доступ к MySQL на моем сервере Ubuntu 12.04?

    
задан user253867 02.03.2014 в 08:02
источник

6 ответов

8

Если вы используете n localhost, просто введите команду ниже в терминале:

mysql -u root -p

Если вы используете внешний сервер, введите IP-адрес хоста (xxx.xxx.xxx.xxx):

mysql -hxxx.xxx.xxx.xxx -uroot -p

Вам будет предложено ввести пароль, ввести его, и вы сможете получить доступ к приглашению MySQL.

Вы также можете просмотреть этот ответ о том, как сбросить пароль MySQL.

    
ответ дан Parto 02.03.2014 в 08:34
4

Задайте пароль для mysql

sudo dpkg-reconfigure mysql-server-5.x

Теперь откройте терминал и введите

mysql -uroot -p

введите пароль и нажмите enter

    
ответ дан Conor 14.07.2015 в 02:08
4

У меня возникают те же симптомы, когда я обновляюсь, но для меня исправление (после убийства mysql и перезапуска с помощью -skip-grant-tables для входа) заключается в выполнении

update mysql.user set plugin = '';

Процесс обновления любит устанавливать этот столбец в "unix_socket". Я не знаю, что это должно сделать, но для меня это все ломает.

    
ответ дан dogtato 28.04.2016 в 22:44
3

Я решил свою проблему следующим образом:

sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt install mysql-server
    
ответ дан Poprygun 18.08.2015 в 01:43
2

То же, что и Ульрих Метцгер, после обновления моей машины до Ubuntu 16.04 и Mysql-server-5.7, я не смог войти в систему с помощью root из-за того, что столбец plugin изменен в базе данных mysql.

Команда sudo dpkg-reconfigure mysql-server-5.7 и удаление, очистка и очистка не помогли решить мою проблему.

Мне пришлось остановить службу mysql

# sudo service mysql stop

Запустите демон mysql без опции --no-grant-tables

# sudo mysql_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';

Наконец, запустите команду mysql_safe , перезапустите службу mysql и подключитесь к mysql normaly

# sudo service mysql start
# mysql
    
ответ дан Kuuak 14.12.2016 в 12:03
1

После обновления с ubuntu 14.4LTS до 16.4LTS пользователь root mysql не смог больше войти в систему из-за неправильной записи в столбце плагина пользовательской таблицы mysql. Обновление устанавливает значение плагина для пользователя root @ localhost на auth_socket , но правильная запись должна быть mysql_native_password , если раньше использовалось шифрование собственного пароля mysql.

    
ответ дан Ulrich Metzger 11.09.2016 в 22:18