Ubuntu 20.04设置MySQL phpmyadmin超级用户密码

我在Ubuntu 20.04上安装了一盏灯。

(德语) https://wiki.ubuntuusers.de/MySQL/Werkzeuge/

获取超级用户密码以登录到本地主机/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版本中,密码命令似乎是未知的。我收到以下错误。

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

错误1064(42000):您的SQL语法中有一个错误;请查看与您的MYSQL服务器版本对应的手册,了解正确的语法使用NEAR‘(’YOURNEWPASSWORD‘)where USER=’ROOT‘’在第1行

我的MySQL版本:

MySQL 8.0.19-0ubuntu5 for Linux on x86_64((Ubuntu))


解决方案

此谜题有几个部分

更改密码

从CLI以超级用户身份登录:

sudo mysql -u root -p

然后

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

要真正让事情正常工作

From phpmyadmin.net

由于MySQL身份验证方法的更改,7.4之前的PHP版本无法向MySQL 8.0 blahblah blah进行身份验证 https://bugs.php.net/bug.php?id=76243。

有一个解决方法,即设置您的用户帐户使用当前样式的密码散列方法MySQL_Native_Password。这种不幸的缺乏协调已导致不兼容影响所有PHP应用程序,而不仅仅是phpMyAdmin。

所以

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

要真正让事情运转起来...真的

MySQL已更改其安全模式,超级用户登录现在需要sudo。这对于CLI是可以的,但这意味着PhpMyAdmin和所有其他客户端将无法使用超级用户凭据

最佳解决方案是为PhpMyAdmin创建新用户(或使用现有用户,如果该用户是在安装过程中创建的),并授予其所需的权限。

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

在您希望"超级用户"访问的任何位置使用此用户。


还要确保您使用的是最新版本的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

阿帕奇

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

相关文章