让非root用户访问login到phpMyAdmin

我试图给一个非根MySQL用户访问login到phpMyAdmin,只看到他们有权访问的数据库。

我已经看了下面的文章,并尝试了他们的build议: 为多个用户configurationphpmyadmin

我已经授予MySQL用户访问密码到他们的数据库,并select在MySQL数据库中的项目(如其中之一所述)。 我已经configurationphpmyadmin使用cookie auth_type,我有一个pma控制用户,我已经授予用户不仅从'%',但从本地主机和IP等。

当用户login时,他们得到#1045无法login到MySQL服务器

我的root用户可以很好地login到phpmyadmin。 需要访问phpmyadmin的用户可以很好地从命令行login。

phpmyadmin目录上有chmod -R 777,除了configuration文件,这不是世界上可写的。

mysql日志文件中适用的行是:

130507 14:40:00 [Warning] 'user' entry 'someusername@mydomain' ignored in --skip-name-resolve mode.ve mode. 130507 14:40:00 [Warning] 'db' entry 'somedbname someusername@mydomain' ignored in --skip-name-resolve mode. 130507 14:40:00 [Warning] 'tables_priv' entry 'db someusername@mydomain' ignored in --skip-name-resolve mode. 130507 14:40:00 [Warning] 'tables_priv' entry 'host someusername@mydomain' ignored in --skip-name-resolve mode. 130507 14:40:00 [Warning] 'tables_priv' entry 'tables_priv someusername@mydomain' ignored in --skip-name-resolve mode. 130507 14:40:00 [Warning] 'tables_priv' entry 'user someusername@mydomain' ignored in --skip-name-resolve mode. 

就像一个注释,实际的someusername @ mydomain所做的是授予密码privs。

我的phpmyadminconfiguration如下所示:

 $cfg['blowfish_secret'] = '*******************'; $i = 0; $i++; $cfg['Servers'][$i]['auth_type'] = 'cookie'; $cfg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['compress'] = false; $cfg['Servers'][$i]['extension'] = 'mysqli'; $cfg['Servers'][$i]['AllowNoPassword'] = false; $cfg['Servers'][$i]['controluser'] = 'pma'; $cfg['Servers'][$i]['controlpass'] = '**********'; $cfg['Servers'][$i]['hide_db'] = 'information_schema'; $cfg['UploadDir'] = ''; $cfg['SaveDir'] = ''; $cfg['MaxRows'] = 500; $cfg['AllowUserDropDatabase'] = true; 

任何想法如何解决这个问题?

谢谢。

您使用skip-name-resolve选项启动了MySQL,无论是在命令行还是在/etc/my.cnf ,但是您都有MySQL用户,其名称包含主机名而不是IP地址。 由于MySQL不会将IP地址parsing为主机名,因此无法对这些用户进行身份validation。

要解决该问题,请执行以下一项或两项操作:

  1. 删除skip-name-resolve选项。
  2. 使用IP地址而不是主机名创buildMySQL用户。