Ubuntu 18.04 запускает mysql без привилегий root

Я только что установил ubuntu 18.04 и установил на него LAMP, однако у меня возникли проблемы с использованием mysql без привилегий root. когда я пишу:

mysql -u root -p

и введите пароль, который я настроил, он выкидывает доступ запрещен. если только я напишу

sudo mysql -u root -p

и введите пароль, к которому я могу подключиться. Но я не хочу, чтобы sudo мешал подключению workbench к mysql, то же самое относится и к phpmyadmin. Есть подсказки, как это исправить?

Stack Overflow - это сайт для вопросов по программированию и разработке. Этот вопрос кажется не по теме, потому что он не о программировании или разработке. См. О каких темах я могу спросить здесь в Справочном центре. Возможно, лучше спросить Обмен стеков Unix и Linux или Администраторы баз данных Stack Exchange.

jww 01.05.2018 13:15

@jww Я ценю вашу заботу и совет, однако проверка ссылки, которой вы поделились, чтобы задать вопрос по этому вопросу, попадает в категорию «программные инструменты, обычно используемые программистами»;

David NIWEWE 11.09.2018 14:13
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
3
2
9 849
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Я вчера тоже столкнулся с этой проблемой. Чтобы решить эту проблему, выполните следующие действия:

  1. Подключиться к MySQL: sudo mysql -u root
  2. Проверьте пользователей mysql в db: SELECT User,Host FROM mysql.user;
  3. Отбросьте учетную запись пользователя root: DROP USER 'root'@'localhost';
  4. Восстановить пользователя root: CREATE USER 'root'@'%' IDENTIFIED BY ''
  5. Предоставьте все права пользователю root: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
  6. Установите пароль для пользователя root: ALTER USER 'root'@'%' IDENTIFIED BY 'yourpassword';

Это оно! Теперь у вас должна быть возможность подключить MySQL.

Спасибо за помощь, хотя на третьем шаге это не сработало, но первый ответ у меня сработал.

David NIWEWE 01.05.2018 11:04
Ответ принят как подходящий

Это должен быть только пользователь "-u root", которому требуется sudo. В любом случае рекомендуется не использовать root для большей части доступа, поэтому просто войдите в систему как root с помощью sudo и создайте нового пользователя:

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON database_name.* TO 'newuser'@'localhost';

Тогда вы сможете получить доступ к mysql -u newuser без sudo.

Я использую Ubuntu 18.04 с mysql версии 5.7 в рабочей среде, но решил это, выполнив следующие 10 шагов.

  1. Подключиться к MySQL: sudo mysql -u root
  2. Проверьте пользователей mysql в db: SELECT User,Host FROM mysql.user;
  3. Отбросьте учетную запись пользователя root: DROP USER 'root'@'localhost';
  4. SET GLOBAL validate_password_length = 5;
  5. SET GLOBAL validate_password_number_count = 0;
  6. SET GLOBAL validate_password_mixed_case_count = 0;
  7. SET GLOBAL validate_password_special_char_count = 0;
  8. SET GLOBAL validate_password_policy = LOW;
  9. Восстановить пользователя root: CREATE USER 'root'@'%' IDENTIFIED BY 'admin'
  10. Предоставьте все права пользователю root: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

введите описание изображения здесь 1. ОБНОВЛЕНИЕ mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'unix_socket';

2. ПРИВИЛЕГИИ ФЛУША;

Другие вопросы по теме