Skip to main content

Mariadb 10.3 root不能登录phpmyadmin,HY000/1698的解决办法

Mariadb现在是网站建设中使用的主流数据库之一,当前它很多个版本:10.1、10.2、10.3、10.4。其中10.1和10.2在使用root登录phpmyadmin都没有什么问题。如果是10.3以上版本的mariadb,默认仅允许root账户通过命令行的方式登录,所以在用root登录phpmyadmin的时候,会出现HY000/1698错误:

mysqli_real_connect(): (HY000/1698): Access denied for user 'root'@'localhost'

phpmyadmin的1698错误

按照现在网上能搜出来的老办法,修改phpmyadmin的config.inc.php文件,找到其中的:

$cfg['Servers'][$i]['host'] = 'localhost';
#修改成
$cfg['Servers'][$i]['host'] = '127.0.0.1';

或者找到其中的:

// $cfg['Servers'][$i]['controluser'] = 'pma';
// $cfg['Servers'][$i]['controlpass'] = 'pmapass';
#修改成
$cfg['Servers'][$i]['controluser'] = 'root';
$cfg['Servers'][$i]['controlpass'] = '你的root密码';

然后用root账户再去登录phpmyadmin,你会发现依然不能登录,而且提示的错误会达到5、6条之多,说明以上修改是行不通的。究其原因,上面已经说过了:Mariadb 10.3、10.4不允许root通过终端命令行以外的方式登录。那我们新建立一个用户,给予root权限不就好了么?所以——

phpMyAdmin HY000/1698错误的正确解决办法

首先,在ssh上用root登录mariadb:

mysql -uroot -p

输入密码成功登录后,建立一个新的用户,并给予最大的权限:

CREATE USER '新用户'@'%' IDENTIFIED BY '新用户的密码';
GRANT ALL PRIVILEGES ON *.* TO '新用户'@'%' WITH GRANT OPTION;

好了,用你的新用户名和密码去登录phpmyadmin吧。Farewell, HY000/1698.