无法访问phpmyadmin

时间:2016-05-09 00:46:14

标签: mysql phpmyadmin

每次当我尝试访问phpMyAdmin时,它会弹出一个需要用户名和密码的对话框。我尝试使用root作为用户名并将密码留空,它不起作用。但是,当我尝试使用admin作为用户名并将密码留空时,它可以正常工作。但是还有另一个问题,它表明管理员没有创建数据库的优势。

那么如何以root身份访问phpmyadmin?或者,当我以管理员身份登录时,如何提高权限?

以下是config.inc.php:

$cfg['Servers'][$i]['host']          = '127.0.0.1'; // MySQL hostname or IP address
$cfg['Servers'][$i]['port']          = '';          // MySQL port - leave blank for default port
$cfg['Servers'][$i]['socket']        = '';          // Path to the socket - leave blank for default socket
$cfg['Servers'][$i]['connect_type']  = 'tcp';       // How to connect to MySQL server ('tcp' or 'socket')
$cfg['Servers'][$i]['extension']     = 'mysql';     // The php MySQL extension to use ('mysql' or 'mysqli')
$cfg['Servers'][$i]['compress']      = FALSE;       // Use compressed protocol for the MySQL connection
                                                // (requires PHP >= 4.3.0)
$cfg['Servers'][$i]['hide_db'] = 'information_schema'; 

$cfg['Servers'][$i]['controluser']   = '';          // MySQL control user settings
                                                // (this user must have    read-only
$cfg['Servers'][$i]['controlpass']   = '';          // access to the "mysql/user"
                                                // and "mysql/db" tables).
                                                // The controluser is also
                                                // used for all relational
                                                // features (pmadb)
$cfg['Servers'][$i]['auth_type']     = 'http';    // Authentication method (config, http or cookie based)?
$cfg['Servers'][$i]['user']          = 'root';      // MySQL user
$cfg['Servers'][$i]['password']      = '';          // MySQL password (only needed
                                                // with 'config' auth_type)
$cfg['Servers'][$i]['only_db']       = '';          // If set to a db-name, only
                                                // this db is displayed in left frame
                                                // It may also be an array of db-names, where sorting order is relevant.
$cfg['Servers'][$i]['verbose']       = '';          // Verbose name for this host - leave blank to show the hostname

3 个答案:

答案 0 :(得分:0)

专业人士推荐甚至提倡使用 root 帐户作为数据库的登录信息。您应该查看数据库中的GRANT,这些内容与

类似
GRANT SELECT, INSERT ON MyDB.* to MyDBUser@'localhost' IDENTIFIED BY 'MyDBPassword';

答案 1 :(得分:0)

获取* nix系统root权限的最佳方法有关恢复MySQL root帐户的说明,请参阅here

答案 2 :(得分:0)

尝试从命令行客户端登录。您说您尝试使用空白密码,但我没有看到使用空白密码登录所需的配置指令$cfg['Servers'][$i]['AllowNoPassword'] = true;

另请注意,使用auth_type =' http',您根本不需要$cfg['Servers'][$i]['user']$cfg['Servers'][$i]['password']指令;它们仅用于auth_type =' config'。

您是否有机会提前设置密码?许多包管理器会在安装过程中要求您输入密码。确保您使用 MySQL root用户的密码,而不是系统 root用户。这可能有点令人困惑,因为它们都被称为root。

尝试从命令行客户端登录;像mysql -u root -p这样的东西应该很接近。

在MySQL中,主机字段%localhost不同,因此您通过TCP / IP网络连接到127.0.0.1,即表示您正在验证的帐户是' 127.0.0.1'或者'%'作为主持人,而不是本地主机' - 虽然你可以尝试通过套接字连接,看看是否会改变一切。将行$cfg['Servers'][$i]['connect_type'] = 'tcp';更改为$cfg['Servers'][$i]['connect_type'] = 'socket';和/或在命令行中使用mysql --protocol=socket -u root -p来尝试使用此不同的帐户;如果可行,您可以修复其他用户的密码,而无需使用暴力。

如果您仍然无法连接,则必须reset the MySQL root password

" admin"用户帐户有效,但没有任何权限是因为您启用了匿名用户,并且您以匿名/不存在的用户身份进行连接。这样的用户通常能够连接,但之后并没有真正做任何事情。你可以把'#34; kitchen"作为您的用户名和"表"作为具有类似结果的密码。