Я использовал apt install mysql-server
для установки MySQL на Ubuntu 16.04, но во время установки он не запрашивал пароль root.
После установки я получил ERROR 1045
, когда попытался войти как root
и mysql_secure_installation
выдал ту же ошибку. I purge
d и autoremove
d затем переустанавливаются, но это не работает.
Как я могу это исправить? Могу ли я установить пароль root, если я не установил его во время установки?
Это мой журнал установки:
The following additional packages will be installed: libaio1 mysql-client-5.7 mysql-client-core-5.7 mysql-server-5.7 mysql-server-core-5.7 Suggested packages: mailx tinyca The following NEW packages will be installed: libaio1 mysql-client-5.7 mysql-client-core-5.7 mysql-server mysql-server-5.7 mysql-server-core-5.7 0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded. Need to get 0 B/17,9 MB of archives. After this operation, 160 MB of additional disk space will be used. Do you want to continue? [Y/n] y Preconfiguring packages ... Selecting previously unselected package libaio1:amd64. (Reading database ... 227144 files and directories currently installed.) Preparing to unpack .../libaio1_0.3.110-2_amd64.deb ... Unpacking libaio1:amd64 (0.3.110-2) ... Selecting previously unselected package mysql-client-core-5.7. Preparing to unpack .../mysql-client-core-5.7_5.7.12-0ubuntu1_amd64.deb ... Unpacking mysql-client-core-5.7 (5.7.12-0ubuntu1) ... Selecting previously unselected package mysql-client-5.7. Preparing to unpack .../mysql-client-5.7_5.7.12-0ubuntu1_amd64.deb ... Unpacking mysql-client-5.7 (5.7.12-0ubuntu1) ... Selecting previously unselected package mysql-server-core-5.7. Preparing to unpack .../mysql-server-core-5.7_5.7.12-0ubuntu1_amd64.deb ... Unpacking mysql-server-core-5.7 (5.7.12-0ubuntu1) ... Selecting previously unselected package mysql-server-5.7. Preparing to unpack .../mysql-server-5.7_5.7.12-0ubuntu1_amd64.deb ... Unpacking mysql-server-5.7 (5.7.12-0ubuntu1) ... Selecting previously unselected package mysql-server. Preparing to unpack .../mysql-server_5.7.12-0ubuntu1_all.deb ... Unpacking mysql-server (5.7.12-0ubuntu1) ... Processing triggers for libc-bin (2.23-0ubuntu3) ... Processing triggers for man-db (2.7.5-1) ... Processing triggers for systemd (229-4ubuntu4) ... Processing triggers for ureadahead (0.100.0-19) ... Setting up libaio1:amd64 (0.3.110-2) ... Setting up mysql-client-core-5.7 (5.7.12-0ubuntu1) ... Setting up mysql-client-5.7 (5.7.12-0ubuntu1) ... Setting up mysql-server-core-5.7 (5.7.12-0ubuntu1) ... Setting up mysql-server-5.7 (5.7.12-0ubuntu1) ... update-alternatives: using /etc/mysql/mysql.cnf to provide /etc/mysql/my.cnf (my.cnf) in auto mode Checking if update is needed. This installation of MySQL is already upgraded to 5.7.12, use --force if you still need to run mysql_upgrade Setting up mysql-server (5.7.12-0ubuntu1) ... Processing triggers for libc-bin (2.23-0ubuntu3) ...
Вы можете восстановить или установить пароль root, не зная текущего, запустив mysql без загрузки таблиц предоставления.
Обратите внимание на $
в команды. Это указывает подсказку терминала, которую вы видите при вводе команды. Он показывает строку текста, но и фактическую набранную команду терминала. Префикс « mysql>
» также является подсказкой. Это приглашение, которое вы получаете при интерактивном запуске mysql .
Это cli (командная строка), чтобы сделать это:
(Убедитесь, что остановил текущий сервер перед выполнением шагов. Одновременно может работать только один сервер.)
$ 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
Он не будет запрашивать пароль при установке mysql
в Ubuntu 16.04, но вы можете установить его после успешной установки следующим образом:
После завершения установки mysql запустите команду:
sudo mysql_secure_installation
Она покажет:
ПРИМЕЧАНИЕ: ЗАПУСК ВСЕХ ЧАСТЕЙ ЭТОГО СКРИПТА РЕКОМЕНДУЕТСЯ ДЛЯ ВСЕХ MariaDB СЕРВЕРЫ В ПРОИЗВОДСТВЕННОМ ИСПОЛЬЗОВАНИИ! ПОЖАЛУЙСТА, ВНИМАТЕЛЬНО ПРОЧИТАЙТЕ КАЖДЫЙ ШАГ!
Чтобы войти в MariaDB и защитить его, нам понадобится текущий пароль для пользователя root. Если вы только что установили MariaDB, и вы еще не установили пароль root, пароль будет пустым, поэтому вы следует просто нажать здесь.
Введите текущий пароль для root (введите, если нет):
(здесь нажмите Enter)
ОК, пароль успешно использован, продолжаем ...
Установка пароля root гарантирует, что никто не сможет войти в MariaDB. пользователь root без надлежащей авторизации.
Установить пароль root? [Y / n] y (нажмите 'y', чтобы установить новый пароль) Новый пароль: Повторно введите новый пароль:
Пароль успешно обновлен! Перезагрузка таблиц привилегий .. ... Успех!
Для Ubuntu 18.04 ИЛИ mysql-server
версии 5.7.22 ЭТОТ СПОСОБ НЕ РАБОТАЕТ
Чтобы установить пароль root в Ubuntu 18.04, сначала выполните первые три команды или первые два шага LD Ответ Джеймса , затем запустите,
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>';
Очевидно, установка mysql-server на 16.04 (или любая установка 5.7?) Разрешает root-доступ не через пароль, а через плагин auth_socket . Запуск sudo mysql -u root
(nb w / oa password) даст вам консоль mysql, тогда как выполнение команды без полномочий root предложит вам пароль.
Казалось бы, изменение пароля не требует ' Это не имеет большого значения, поскольку бэкэнд аутентификации даже не проверяет пароль. Существует очень подробная статья о том, как изменить плагин и переключиться на аутентификацию по паролю .
Добавление к основному ответу, если вы застряли на
" mysqld_safe Запуск демона mysqld с базами данных из / var / lib / mysql "
1 вещь чтобы помнить, что вам нужно использовать другое окно терминала для ввода следующей команды.
$ sudo mysql --user=root mysql
Если вы попытаетесь сделать это в том же окне, процесс mysqld safemode завершится.
После установки просто:
1.
sudo mysql
(да, нет пользователя, нет прохода)
2. Вы сейчас в консоль mysql:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'my_new_pass';
3.
ПРИВИЛЕГИИ ПРОМЫВКИ;
Вот и все. Теперь вы можете войти в консоль в следующий раз, как обычно:
mysql -u root -p my_new_pass
есть учетная запись пользователя по умолчанию.
$ vim /etc/mysql/debian.cnf
вы получите от него эту учетную запись следующим образом:
user = debian-sys-maint
пароль = nUZTARYslBsASzpw
вы входите в систему с этой учетной записью
$ mysql -u debian-sys-maint -p
отредактируйте пароль root
mysql> покажите базы данных ;
mysql> используйте mysql;
mysql> обновить набор пользователей authentication_string = PASSWORD ("new_password"), где user = 'root';
mysql> обновить пользовательский набор plugin = "mysql_native_password";
mysql> очистить привилегии;
mysql> выйти;
перезапустить mysql
$ /etc/init.d/mysql restart;
, тогда вы можете mysql -u root -p
с предыдущими настройками.
Вот как настроить mysql-server
с запросом пароля терминала в Ubuntu 18.10.
cd
в свой каталог, куда вы загрузили, и запустите dpkg -i mysql-apt-config_0.8.13-1_all.deb
(проверьте номер вашей версии) В меню подсказки выберите последний вариант «ok», а затем снова «ok».
Обновите и установите mysql-server и mysql-client:
sudo apt update sudo apt install mysql-server mysql-client
«Использовать устаревший метод аутентификации»
, если ваши работающие фреймворки / приложения (например, laravel) еще не поддерживают новое «Надежное шифрование паролей»
, в противном случае, если ваша структура / приложение поддерживает «Надежное шифрование паролей»
, выберите его.