
Я apt install mysql-server
устанавливал MySQL на Ubuntu 16.04, но во время установки он не запрашивал пароль root.
После установки я получил, ERROR 1045
когда я попытался войти как root
и mysql_secure_installation
выдал ту же ошибку. Я purge
d и autoremove
d, затем переустановил, но это не работает.
Как это исправить? Могу ли я установить пароль 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
После установки просто:
sudo mysql
(да, нет пользователя, нет пропуска)Теперь вы находитесь в консоли mysql. Выполните:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'my_new_pass';
FLUSH PRIVILEGES;
Вот и все. Теперь вы можете войти в консоль в следующий раз как обычно:
mysql -u root -pmy_new_pass
решение4
существует учетная запись пользователя по умолчанию.
$ vim /etc/mysql/debian.cnf
Вы получите этот аккаунт следующим образом:
user = debian-sys-maint password = nUZTARYslBsASzpw
вы входите в систему с этой учетной записью
$ mysql -u debian-sys-maint -p
изменить свой пароль 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;
перезапустить mysql
$ /etc/init.d/mysql restart;
то вы можете mysql -u root -p
использовать свои предыдущие настройки.