ИЛИ

ИЛИ

Я apt install mysql-serverустанавливал MySQL на Ubuntu 16.04, но во время установки он не запрашивал пароль root.

После установки я получил, ERROR 1045когда я попытался войти как rootи mysql_secure_installationвыдал ту же ошибку. Я purged и autoremoved, затем переустановил, но это не работает.

Как это исправить? Могу ли я установить пароль root, если я не установил его во время установки?

Вот мой журнал установки:

Будут установлены следующие дополнительные пакеты:
  libaio1 mysql-клиент-5.7 mysql-клиент-core-5.7 mysql-сервер-5.7
  mysql-сервер-core-5.7
Предлагаемые пакеты:
  mailx tinyca
Будут установлены следующие НОВЫЕ пакеты:
  libaio1 mysql-клиент-5.7 mysql-клиент-core-5.7 mysql-сервер mysql-сервер-5.7
  mysql-сервер-core-5.7
0 обновлено, 6 новых установлено, 0 для удаления и 0 не обновлено.
Необходимо получить 0 Б/17,9 МБ архивов.
После этой операции будет использовано 160 МБ дополнительного дискового пространства.
Хотите продолжить? [Т/И] д
Предварительная настройка пакетов...
Выбор ранее не выбранного пакета libaio1:amd64.
(Чтение базы данных... В настоящее время установлено 227144 файлов и каталогов.)
Подготовка к распаковке .../libaio1_0.3.110-2_amd64.deb ...
Распаковка libaio1:amd64 (0.3.110-2) ...
Выбор ранее не выбранного пакета mysql-client-core-5.7.
Подготовка к распаковке .../mysql-client-core-5.7_5.7.12-0ubuntu1_amd64.deb ...
Распаковка mysql-client-core-5.7 (5.7.12-0ubuntu1) ...
Выбор ранее не выбранного пакета mysql-client-5.7.
Подготовка к распаковке .../mysql-client-5.7_5.7.12-0ubuntu1_amd64.deb ...
Распаковка mysql-client-5.7 (5.7.12-0ubuntu1) ...
Выбор ранее не выбранного пакета mysql-server-core-5.7.
Подготовка к распаковке .../mysql-server-core-5.7_5.7.12-0ubuntu1_amd64.deb ...
Распаковка mysql-server-core-5.7 (5.7.12-0ubuntu1) ...
Выбор ранее не выбранного пакета mysql-server-5.7.
Подготовка к распаковке .../mysql-server-5.7_5.7.12-0ubuntu1_amd64.deb ...
Распаковка mysql-server-5.7 (5.7.12-0ubuntu1) ...
Выбор ранее не выбранного пакета mysql-server.
Подготовка к распаковке .../mysql-server_5.7.12-0ubuntu1_all.deb ...
Распаковка mysql-server (5.7.12-0ubuntu1) ...
Обработка триггеров для libc-bin (2.23-0ubuntu3) ...
Обработка триггеров для man-db (2.7.5-1) ...
Обработка триггеров для systemd (229-4ubuntu4) ...
Обработка триггеров для ureadahead (0.100.0-19) ...
Настройка libaio1:amd64 (0.3.110-2) ...
Настройка mysql-client-core-5.7 (5.7.12-0ubuntu1) ...
Настройка mysql-client-5.7 (5.7.12-0ubuntu1) ...
Настройка mysql-server-core-5.7 (5.7.12-0ubuntu1) ...
Настройка mysql-server-5.7 (5.7.12-0ubuntu1) ...
update-alternatives: использование /etc/mysql/mysql.cnf для предоставления /etc/mysql/my.cnf (my.cnf) в автоматическом режиме
Проверка необходимости обновления.
Эта установка MySQL уже обновлена ​​до версии 5.7.12, используйте --force, если вам все еще нужно запустить mysql_upgrade
Настройка mysql-сервера (5.7.12-0ubuntu1) ...
Обработка триггеров для libc-bin (2.23-0ubuntu3) ...

решение1

Вы можете восстановить или установить пароль root, не зная текущего, запустив MySQL без загрузки таблиц привилегий.

Обратите внимание на$в командах. Это указывает на приглашение терминала, которое вы видите при вводе команды. Это показывает, что это строка текста, но и фактическая введенная команда терминала. "mysql>" префикс также является приглашением. Это приглашение, которое вы получаете при запускеmysqlинтерактивно.

Этокли(командная строка) для этого:
(Будь увереностановить текущий сервер(Перед выполнением шагов. Одновременно может работать только один сервер.)

$ sudo mkdir /var/run/mysqld; sudo chown mysql /var/run/mysqld
$ sudo mysqld_safe --skip-grant-tables&

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

$ sudo mysql --user=root mysql

Это установка пароля root, которую вы выполните внутри mysql, если у вас MySQL 5.6 или ниже:

mysql> update user set Password=PASSWORD('new-password') where user='root';
flush privileges;

В MySQL 5.7 или выше

mysql> update user set authentication_string=PASSWORD('new-password') where user='root';
flush privileges;

После этого закройте (уничтожьте работающий msqld) mysql и запустите его как обычно.

Примечания по запуску и остановке службы mysql:

Остановить mysql:

$ sudo service mysql stop

Запустите mysql (обычный режим):

$ sudo service mysql start

Завершите временный сеанс безопасного режима MySQL:

$ sudo mysqladmin shutdown

решение2

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

После завершения установки MySQL выполните команду:

sudo mysql_secure_installation

Он покажет:

ПРИМЕЧАНИЕ: РЕКОМЕНДУЕТСЯ ЗАПУСК ВСЕХ ЧАСТЕЙ ЭТОГО СКРИПТА ДЛЯ ВСЕХ СЕРВЕРОВ MariaDB В ПРОИЗВОДСТВЕННОЙ ЭКСПЛУАТАЦИИ! ВНИМАТЕЛЬНО ПРОЧИТАЙТЕ КАЖДЫЙ ШАГ!

Чтобы войти в MariaDB и обеспечить ее безопасность, нам понадобится текущий пароль пользователя root. Если вы только что установили MariaDB и еще не установили пароль root, пароль будет пустым, поэтому вам просто нужно нажать Enter здесь.

Enter current password for root (enter for none): (здесь нажмите Enter)

Хорошо, пароль успешно использован, двигаемся дальше...

Установка пароля root гарантирует, что никто не сможет войти в систему MariaDB под учетной записью root без соответствующей авторизации.

Set root password? [Y/n] y   (press 'y' to set new password)
New password: 
Re-enter new password:

Пароль успешно обновлен! Перезагрузка таблиц привилегий.. ... Успех!


Для Ubuntu 18.04 ИЛИ mysql-serverверсии 5.7.22 ЭТОТ МЕТОД НЕ БУДЕТ РАБОТАТЬ.

Чтобы установить пароль root в Ubuntu 18.04, сначала выполните первые три команды или первые два шагаОтвет Л.Д. Джеймсазатем беги,

mysql> alter user 'root'@'localhost' identified by '<password>';

Пароль для пользователя root установлен!

ИЛИ

Чтобы установить пароль root в версии 18.04, выполните следующие действия:

Так как пароль для пользователя root не установлен, просто войдите в систему с помощьюпустой пароль

sudo mysql -u root -p
Enter password: (press enter as no password is set)

после этого можно легко запустить запрос

ALTER USER 'root'@'localhost' IDENTIFIED BY '<password>';

решение3

После установки просто:

  1. sudo mysql (да, нет пользователя, нет пропуска)

  2. Теперь вы находитесь в консоли mysql. Выполните:

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

  3. FLUSH PRIVILEGES;

Вот и все. Теперь вы можете войти в консоль в следующий раз как обычно:

mysql -u root -pmy_new_pass

решение4

  1. существует учетная запись пользователя по умолчанию.

    $ vim /etc/mysql/debian.cnf 
    

    Вы получите этот аккаунт следующим образом:

    user     = debian-sys-maint
    password = nUZTARYslBsASzpw
    
  2. вы входите в систему с этой учетной записью

    $ mysql -u debian-sys-maint -p
    
  3. изменить свой пароль root

    mysql> show databases;
    
    mysql> use mysql;
    
    mysql> update user set authentication_string=PASSWORD("new_password") where user='root';
    
    mysql> update user set plugin="mysql_native_password";
    
    mysql> flush privileges;
    
    mysql> quit;
    
  4. перезапустить mysql

    $ /etc/init.d/mysql restart;
    

то вы можете mysql -u root -pиспользовать свои предыдущие настройки.

Связанный контент