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

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

mysql -u корень -p

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

sudo mysql -u корень -p

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


person David NIWEWE    schedule 01.05.2018    source источник
comment
Stack Overflow — это сайт для вопросов по программированию и разработке. Этот вопрос кажется не по теме, потому что он не о программировании или разработке. См. раздел О каких темах я могу задать здесь в Справочном центре. Возможно, обмен стеками Unix и Linux или обмен стеками администраторов баз данных было бы лучше спросить.   -  person jww    schedule 01.05.2018
comment
@jww Я ценю вашу заботу и советы, однако проверка ссылки, которой вы поделились, чтобы задать вопрос, попадет в эту категорию программных инструментов, обычно используемых программистами;   -  person David NIWEWE    schedule 11.09.2018


Ответы (4)


Это должен быть только пользователь "-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.

person MarCPlusPlus    schedule 01.05.2018

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

  1. Подключиться к MySQL: sudo mysql -u root
  2. Проверить наличие пользователей mysql в БД: 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.

person Swapnil Bhavsar    schedule 01.05.2018
comment
Спасибо за помощь, хотя на третьем шаге это не сработало, однако первый ответ у меня сработал. - person David NIWEWE; 01.05.2018

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

  1. Подключиться к MySQL: sudo mysql -u root
  2. Проверить наличие пользователей mysql в БД: 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;
person Taimoor Tariq    schedule 03.03.2019

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

2. СБРОС ПРИВИЛЕГИЙ;

person Heba abd El monaem    schedule 21.03.2021