mysql - Ubuntu 20.04 设置mysql phpmyadmin root密码

标签 mysql phpmyadmin passwords root ubuntu-20.04

我在 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';
ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行 处的 '('YOURNEWPASSWORD') WHERE user='root'' 附近使用正确的语法。

我的 mysql 版本:

mysql Ver 8.0.19-0ubuntu5 for Linux on x86_64 ((Ubuntu))

最佳答案

这个谜题有几个部分

更改密码

从 CLI 以 root 身份登录:

sudo mysql -u root -p

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

真正让事情运转起来

From phpmyadmin.net

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

关于mysql - Ubuntu 20.04 设置mysql phpmyadmin root密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61430362/

相关文章:

php - 如何检查 PHP 中的 MySQL 数据库中是否存在值?

mysql - phpMyAdmin 在登录远程时出现错误。#2002 无法登录 MySQL 服务器

javascript - 在 Node/Express 中散列、加盐并保存密码

mysql - 通过循环另一个表来创建新表

ruby-on-rails - 尝试验证密码时出现 "BCrypt::Errors::InvalidHash: invalid hash"

google-chrome - Google Chrome 扩展程序中密码的存储

mysql - 错误 #1215 - 无法添加外键约束

FK上的Mysql多条件查询

php - php同时查询两个数据库

mysql - phpMyAdmin:无法设置特定的外键,即使类型相同