2016-04-16 2 views
0

Итак, я написал этот сценарий установки для всех своих приложений/настроек на Ubuntu, который я использовал недавно после обновления до 16.04. Одна из вещей, которые она делает, - установить mysql. Я сделал это особым образом, чтобы убить эти пользовательские подсказки, потому что я не хочу, чтобы мой скрипт останавливался для ввода пользователем. Ниже приведен код:Linux MySQL - не могу войти в root

sudo DEBIAN_FRONTEND=noninteractive apt-get install -qq -y mysql-server 

Теперь я пытаюсь войти в mysql с терминала, но не могу. Он установлен и запущен, но я продолжаю получать доступ для пользователя root.

mysqladmin -u root -p password 
Enter password: 
mysqladmin: connect to server at 'localhost' failed 
error: 'Access denied for user 'root'@'localhost'' 

Я не вхожу ни в один пароль, потому что я ни разу не установил пароль.

У кого-нибудь есть идеи, как это исправить? Благодарю.

+0

Если вы не установили пароль, то почему вы используете '- p password' в вашем исполнении 'mysqladmin'? –

+2

Вы пытались запустить 'mysql -u root'? Если пароль пользователя root не работает. – bitfiddler

ответ

0

Да, сейчас я чувствую себя глупо. Проблема была на самом деле разрешениями Linux, а не mysql. Я установил его с помощью sudo, мне нужно было войти в систему, используя sudo. Не требуется пароль, просто sudo mysql -u root -p -h локальный хост. Просто нажмите enter в подсказке пароля и альта, я нахожусь.

Спасибо за помощь.

1

Если вы хотите установить пароль для root'а:

Для более новых версий MySQL (для MariaDB < 10.2 использовать запрос в нижней части, как он не поддерживает альтер пользователя, но до сих пор использует auth_socket)

Если вы установите 5.7 и не предоставляете пароль пользователю root, он будет использовать плагин auth_socket. Этот плагин не заботится и не нуждается в пароле. Он просто проверяет, подключен ли пользователь , используя сокет UNIX, а затем сравнивает имя пользователя.

Взятые из Change User Password in MySQL 5.7 With "plugin: auth_socket" и https://askubuntu.com/a/801950/395418

Так что для того, чтобы изменить plugin назад к mysql_native_password:

  1. Вход с Sudo:

    sudo mysql -u root 
    
  2. Произведите замену plugin и установить пароль ч одна команда:

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test'; 
    

Конечно, вы можете также использовать команду выше, чтобы установить пустой пароль.

Просто для записи, есть еще один способ изменить только plugin без ввода пароля (оставляя его пустым):

update mysql.user set plugin = 'mysql_native_password' where User='root'; 
    FLUSH PRIVILEGES; 
Смежные вопросы