phpMyAdmin 无法登录 Centos 7 上的 MySQL 服务器

Posted

技术标签:

【中文标题】phpMyAdmin 无法登录 Centos 7 上的 MySQL 服务器【英文标题】:phpMyAdmin Cannot log in to the MySQL server on Centos 7 【发布时间】:2019-05-30 12:20:51 【问题描述】:

我在带有 nginx 的 Centos 7 上安装了 mysql-community-server-8.0.13-1.el7.x86_64,并添加了 phpMyAdmin 来管理数据库,但我不断收到来自 phpMyAdmin 的错误 Cannot log in to the MySQL server。我已经尝试了以下方法,并且已经苦苦挣扎了几天:

更改了位于 /etc/phpMyAdmin/config.inc.php 上的一些参数(建议在 *** 上),如下所示,但没有运气:

$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['connect_type'] = 'socket';
$cfg['Servers'][$i]['socket'] = '/var/lib/mysql/mysql.sock';
$cfg['Servers'][$i]['user'] = 'root';          
$cfg['Servers'][$i]['password'] = 'password'; 

我试过mysql shell,我可以用root和其他用户登录。但是,我不知道为什么它在 phpMyAdmin 上失败。请帮忙,谢谢!

【问题讨论】:

Can not login to phpmyadmin with root user的可能重复 @Stony 感谢您的帮助,但没有成功。 /var/run/mysqld/mysqlx.sock 是否存在? @Light.G 是的,它就在那里。我想我的选择是卸载并重新安装 MySQL 当您从命令行客户端登录时,请运行STATUS; 命令查看连接类型(某些主机“通过 TCP/IP”或“通过 UNIX 套接字的本地主机”)。如果提供的话,还要注意 UNIX 套接字的路径。您是如何安装 phpMyAdmin 的 - 通过包管理器或自己下载和解压缩? 【参考方案1】:

我能够通过执行以下操作来解决此问题: (我应该提到这个解决方案适用于 MySQL 8.0.13 和 phpMyAdmin 4.8.4 - 两者都是今天的最新版本)

1- 我使用这些服务器参数(仅)编辑了config.inc.php

/*** This is needed for cookie based authentication to encrypt password in 
cookie. Needs to be 32 chars long. */
$cfg['blowfish_secret'] = 'generate_your_blowfish_secret_32_chars'; 

/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';

/* Server parameters */
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;

2- 在 MySQL 终端上

//Create a new user:
mysql> CREATE USER 'user'@'localhost' IDENTIFIED BY 'your_password';

//Grant all privileges:
mysql> GRANT ALL PRIVILEGES ON *.* To 'user'@'localhost' WITH GRANT OPTION;

//Flush all privileges:
mysql> FLUSH PRIVILEGES;

//Change authentication_string with password:
mysql> ALTER USER user IDENTIFIED WITH mysql_native_password BY 
'your_password';

//Login with the new user and password!

这应该允许您登录到 phpMyAdmin。希望对您有所帮助!

【讨论】:

【参考方案2】:

这对我有用:

sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourNewPassword';

【讨论】:

【参考方案3】:

在 CentOS 7 上,我必须:

    取消注释 /etc/my.cnf 中的“default-authentication-plugin=mysql_native_password”行 (然后 systemctl restart mysqld)

    ALTER USER 'user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your-password';

对上面 Jacman 接受的答案稍作调整。我已经尝试了其他所有方法,但缺少“WITH mysql_native_password”子句

【讨论】:

以上是关于phpMyAdmin 无法登录 Centos 7 上的 MySQL 服务器的主要内容,如果未能解决你的问题,请参考以下文章

无法通过 shell 在 CentOS 7 上安装 phpMyAdmin

无法通过shell在CentOS 7上安装phpMyAdmin

无法登录到 phpmyadmin

PHP 会话无法在 CentOS 上使用 phpMyAdmin

phpMyAdmin 使用 PHP 7.0.0 RC7 “无法登录到 MySQL 服务器”

收到此错误后如何登录phpMyAdmin... #2003 无法登录MySQL服务器