После новой установки Ubuntu 18.04 LTS Бионический Бобр и установка стека LAMP, а также установка PHPMyadmin я не могу войти в PHPMyadmin как пароль, который я имею, дают, в то время как обеспечение mysql с mysql_secure_installation не корректно, таким образом, кажется. Я ищу Интернет решения, но все предоставленные решения не имеют никакого положительного результата в моем случае.
Будет цениться рабочее решение.
У меня была та же проблема. MySQL Apparently был настроен по умолчанию для использования основанной на сокете аутентификации, которая использует системное имя пользователя и не пароль. Для решения проблемы я использовал следующие команды:
MySQL Access как пользователь root:
sudo mysql # or sudo mysql -u root
Установите пароль для пользователя root MySQL:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';
Замена 'тестирует' выше с фактическим паролем, который Вы хотите использовать
Я должен был войти в систему с
mysql -u root -p
Решение состоит в том, чтобы переключить метод аутентификации MySQL от аутентификации сокета (т.е. auth_socket
) к аутентификации по паролю (т.е. mysql_native_password
плагин).
MySQL 5.7 и более поздние версии используют аутентификацию сокета по умолчанию. Это означает, что Вы могли запустить MySQL sudo mysql
в терминале без пароля. Даже если Вы создаете новое использование пароля root mysql_secure_installation
, Вы не смогли бы получить доступ к внешнему программному обеспечению как phpmyadmin, который использует аутентификацию по паролю. Следующее является решением:
sudo apt install mysql-server
sudo mysql_secure_installation
После ввода mysql_secure_installation
создайте пароль для корня и нажмите кнопку Да для остальной части вопросов. [Можно заметить, что все еще MySQL запускается без любого пароля, потому что метод аутентификации по умолчанию не был изменен до настоящего времени!]
Теперь, введите MySQL
sudo mysql
SELECT user,authentication_string,plugin,host FROM mysql.user;
Теперь Вы видите в следующем выводе, тот корень имеет плагин какauth_socket
вместо mysql_native_password
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | | auth_socket | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *832A85D6EC83FA4A19ACFD461F672B95E4540611 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
Теперь мы должны изменить плагин на mysql_native_password
. Замените 'пароль' в следующей команде с сильным паролем
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;
Теперь можно проверить подлинные методы на каждого пользователя, с помощью того же выше команды
SELECT user,authentication_string,plugin,host FROM mysql.user;
Вывод:
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | *C035F91799F4415B005D146ECEB5ADD4D991031F | mysql_native_password | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *832A85D6EC83FA4A19ACFD461F672B95E4540611 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
Если Ваш вывод похож на вышеупомянутое с плагином для корня как mysql_native_password
, Вы хороши для движения :) Теперь можно просто получить доступ к phpmyadmin с корнем и его паролем.Надеюсь, это поможет.