Ubuntu 20.04 set mysql phpmyadmin root пароль - PullRequest
1 голос
/ 25 апреля 2020

Я установил ЛАМПУ на Ubuntu 20.04.

(немецкий) https://wiki.ubuntuusers.de/MySQL/Werkzeuge/

Всегда трудно получить пароль root для входа в localhost / phpmyadmin. В Ubuntu 18.04 было хорошее руководство (несколько):

SERVER BEENDEN:
  sudo service mysql stop
  sudo mkdir -p /var/run/mysqld
  sudo chown mysql:mysql /var/run/mysqld
  sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
PRÜFEN MIT:
  jobs
STARTEN von MYSQL:
  mysql -u root
    mysql> FLUSH PRIVILEGES;
    mysql> USE mysql; 
    mysql> UPDATE user SET authentication_string=PASSWORD("NEWPASSWORD") WHERE user='root';
    mysql> UPDATE user SET plugin="mysql_native_password" WHERE User='root';
    mysql> quit
  sudo pkill mysqld
  sudo service mysql start

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

mysql> UPDATE user SET authentication_string=password('YOURNEWPASSWORD') WHERE user='root';

ОШИБКА 1064 (42000): в синтаксисе SQL возникла ошибка; проверьте руководство, соответствующее вашей MySQL версии сервера, чтобы найти правильный синтаксис для использования рядом с '(' YOURNEWPASSWORD '), ГДЕ пользователь =' root '' в строке 1

My mysql версия:

mysql Версия 8.0.19-0ubuntu5 для Linux на x86_64 ((Ubuntu))

1 Ответ

1 голос
/ 30 апреля 2020

Эта головоломка состоит из нескольких частей

Чтобы изменить пароль

Войдите в систему на root из CLI:

sudo mysql -u root -p

Тогда

ALTER USER 'root'@'localhost' IDENTIFIED BY '<New-Password-Here>';

Чтобы действительно заставить вещи работать

От phpmyadmin. net

Из-за изменений в MySQL метод аутентификации, PHP версии до 7.4 не могут аутентифицироваться для MySQL 8.0 бла бла-бла-бла https://bugs.php.net/bug.php?id=76243.

Существует обходной путь, который заключается в том, чтобы настроить учетную запись пользователя на использование пароля текущего стиля, используя метод sh mysql_native_password. Это прискорбное отсутствие координации привело к тому, что несовместимость повлияла на все PHP приложения, а не только на phpMyAdmin.

Итак

UPDATE user SET plugin="mysql_native_password" WHERE user='root';

Чтобы действительно получить действительно Все работает ... Действительно

MySQL Изменили свою модель безопасности, а для root теперь требуется sudo . Это нормально для CLI, но это означает, что PhpMyAdmin и ВСЕ другие клиенты не смогут использовать root учетные данные

Лучшее решение - создать нового пользователя для PhpMyAdmin ( или используйте существующий, если он был создан во время установки), и предоставьте ему необходимые привилегии.

CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY '<New-Password-Here>';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Используйте этого пользователя везде, где вы хотите "root" доступ.


Также убедитесь, что вы используете последнюю версию PHP. Вот мой полный скрипт установки

PHP

sudo apt install -y php7.4
sudo apt install php7.4-curl php7.4-gd php7.4-json php7.4-mbstring php7.4-xml

APACHE

sudo apt install apache2 libapache2-mod-php7.4

MYSQL

sudo apt install mysql-server php7.4-mysql
sudo mysql_secure_installation

PHPMYADMIN

sudo apt install phpmyadmin
...