为什么在phpmyadmin连接到mysql时出错?

彼得·格罗莫沃(Petro Gromovo):

在本地ubuntu上运行phpmyadmin 18我遇到错误

#1698 - Access denied for user 'root'@'localhost'

但是在文件/etc/phpmyadmin/config.inc.php中,我更改了连接参数以使默认用户转义为:

$dbuser='MYUSER';
$dbpass='MYPASSWORD';
$basepath='';
$dbname='phpmyadmin';
$dbserver='localhost';
$dbport='3306';
$dbtype='mysql';

在MYUSER / MYPASSWORD下,我从php应用程序连接到sql。在information_schema中,我运行

GRANT ALL PRIVILEGES ON * . * TO 'lardev'@'localhost'

输出:

Query executed OK, 0 rows affected.

为什么root用户对错误消息不满意?如何解决该错误?

谢谢!

艾萨克·本内特(Isaac Bennetch):

config.inc.php输入的变量不是phpMyAdmin的正确变量。您可以参考样本配置文件所有配置指令的文档或下载config.sample.inc.php中应包含的文件(或可以在Github上查看),以获取正确语法的详细信息。

官方默认设置是使用一种称为cookie的身份验证类型,在尝试登录时会提示您输入用户名和密码(您可以在演示服务器上看到此信息)。您的描述听起来好像没有提示您输入用户名,这意味着有人已更改为“ config”身份验证类型,并使用了诸如这样$cfg['Servers'][$i]['auth_type'] = 'config';指令。相关的区别(除了安全性和登录方式)是使用auth_type config ,还需要在配置文件中设置用户名和密码。对于auth_type cookie或http,不使用这些值。

话虽如此,这是config.inc.php使用列出的配置和phpMyAdmin变量名称的更正版本

<?php

$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'MYUSER';
$cfg['Servers'][$i]['password'] = 'MYPASSWORD';

默认主机名是“ localhost”,它强制连接使用套接字而不是TCP / IP网络,因此将忽略该端口。要使用TCP / IP连接,请设置$cfg['Servers'][$i]['host'] = '127.0.0.1';

其他变量$ basepath,$ dbname和$ dbtype没有直接等同于phpMyAdmin的变量。

另外,请注意,在任何情况下,如果您的Web服务器将phpMyAdmin服务到不是来自本地主机的连接(出于安全措施,否则具有URL的任何人都可以直接访问您的数据库),我建议您使用auth_type cookie而不是config。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章