Ubuntu 20.04 设置 mysql phpmyadmin root 密码
Ubuntu 20.04 set mysql phpmyadmin root password
我在 Ubuntu 20.04 上安装了 LAMP。
(德语)
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 服务器版本对应的手册,了解在第 1[=15= 行的 '('YOURNEWPASSWORD') WHERE user='root'' 附近使用的正确语法]
我的 mysql 版本:
mysql Ver 8.0.19-0ubuntu5 Linux on x86_64 ((Ubuntu))
这个谜题有几个部分
更改密码
从 CLI 以 root 身份登录:
sudo mysql -u root -p
然后
ALTER USER 'root'@'localhost' IDENTIFIED BY '<New-Password-Here>';
真正让事情运转起来
Due to changes in the MySQL authentication method, PHP versions prior to 7.4 are unable to authenticate to a MySQL 8.0 blah blah blah blah
https://bugs.php.net/bug.php?id=76243.
There is a workaround, that is to set your user account to use the current-style password hash method, mysql_native_password. This unfortunate lack of coordination has caused the incompatibility to affect all PHP applications, not just 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
我在 Ubuntu 20.04 上安装了 LAMP。
(德语) 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 服务器版本对应的手册,了解在第 1[=15= 行的 '('YOURNEWPASSWORD') WHERE user='root'' 附近使用的正确语法]
我的 mysql 版本:
mysql Ver 8.0.19-0ubuntu5 Linux on x86_64 ((Ubuntu))
这个谜题有几个部分
更改密码
从 CLI 以 root 身份登录:
sudo mysql -u root -p
然后
ALTER USER 'root'@'localhost' IDENTIFIED BY '<New-Password-Here>';
真正让事情运转起来
Due to changes in the MySQL authentication method, PHP versions prior to 7.4 are unable to authenticate to a MySQL 8.0 blah blah blah blah https://bugs.php.net/bug.php?id=76243.
There is a workaround, that is to set your user account to use the current-style password hash method, mysql_native_password. This unfortunate lack of coordination has caused the incompatibility to affect all PHP applications, not just 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