phpMyAdmin正在抛出一个#2002无法login到mysql服务器的phpmyadmin

我已经在本地机器上安装了MySQL服务器企业版5.1,现在我想安装phpMyAdmin,但是不起作用。

我有红外phpMyAdmin到我的服务器根目录,并浏览到“localhost / phpMyAdmin / setup / index.php”,启动了一个新的服务器,我改变的唯一的设置是填写我的MySQL密码的字段“Password for config auth”

所以,现在当我尝试login时,我收到一条错误消息,说:“#2002无法login到MySQL服务器phpmyadmin”

有谁知道什么是错的? 自昨天以来,我一直有这个问题。

如果你得到#2002 Cannot log in to the MySQL serverlogin到phpmyadmin时#2002 Cannot log in to the MySQL server错误,请尝试编辑phpmyadmin/config.inc.php并更改:

$cfg['Servers'][$i]['host'] = 'localhost';

至:

$cfg['Servers'][$i]['host'] = '127.0.0.1';

Ryan的博客解决scheme

编辑(20-Mar-2015):

请注意,如果您正在全新安装,config.inc.php可能不存在。 您需要重命名/复制config.sample.inc.php,然后更改相关行

这是旧的,但因为这是谷歌的第一个结果,

请注意,当您的MySql服务closures时也会发生这种情况,

我解决这个问题,只需重新启动MySQL服务器使用:

/etc/init.d/mysql restart

在SSH(命令是用于CentOS / CPanel服务器)

背景:我正在使用Linux Mint 13.在我的情况下,当我重新启动计算机,并且我的DHCP为我的桌面分配了一个新的本地IP地址(从192.168.0.2到192.168.0.4),这个错误发生了。

 sudo gedit /etc/mysql/my.cnf 

更新

 bind-address = 192.168.0.2 

 bind-address = localhost 

这解决了这个问题。 请享用。

如果你忘记(像我一样)在完成安装脚本后将config.inc.php移动到适当的位置,也可能导致这种情况。

在做了config文件夹并执行chmod o+rw config并转到localhost/phpmyadmin/setup并按照以下步骤操作之后,需要返回到命令行并完成以下任务:

 mv config/config.inc.php . # move file to current directory chmod o-rw config.inc.php # remove world read and write permissions rm -rf config # remove not needed directory 

请参阅https://phpmyadmin.readthedocs.org/en/latest/setup.html上的完整说明;

在尝试了以上所有build议之后,修复了我的#2002错误。

将以下行添加到您的config.inc.php文件中,并将该数字更改为您的MySQL端口:

 $cfg['Servers'][$i]['port'] = '3307'; // MySQL port 

我安装了多个mysql实例,在这种情况下,我更新了my.ini以在端口3307上运行MySQL,但没有更新phpMyAdmin以反映新端口。 在我的情况下,该端口的行不存在config.inc.php文件,所以我不知道它需要更新。

你在你的机器上设置了MySQL吗? 这听起来像你使用Windows; MySQL在您的机器上作为“服务”运行(右键单击我的电脑 – >pipe理 – >服务)。

我已经通过基本上所有的这个错误的计算器,没有解决我的问题。 我能够直接从linux命令行login到mysql,但是使用相同的用户和密码无法login到phpmyadmin。

所以我打了半天我的头靠在墙上,直到我意识到它甚至没有读取/ etc / phpmyadmin下的config.inc.php(唯一的位置是基于“find / -iname config.inc .php“,所以我改变了/usr/share/phpMyAdmin/libraries/config.default.php中的主机,最终运行。

我知道这可能是另一个问题,为什么它不从/ etc / phpmyadmin文件夹中读取configuration,但现在我不能打扰:P

tldr; 如果您的设置似乎没有应用,请尝试在/usr/share/phpMyAdmin/libraries/config.default.php中进行更改

我也经历了同样的事情,希望这有助于。

 cd /etc/init.d ./mysql start 

请login访问mysql和phpmyadmin

它发生在我改变我的AWS服务器的实例types时。

#2002 Cannot log in to the MySQL server也可能发生mysqld服务未启动时。

所以首先你需要执行:

 $ sudo service mysqld restart 

这会给你:

 $ sudo service mysqld restart Stopping mysqld: [ OK ] Starting mysqld: [ OK ] 

之后,错误不会来。

PS在EC2实例中,还应该将主机从localhost主机更改为127.0.0.1如顶部答案中所述。

  • 右键单击我的电脑 – >pipe理 – >服务
  • 从右侧窗格的“服务和应用程序”下select“服务”
  • 然后search“Zend Development”服务。
  • 当你find它时,双击启动该服务。

现在,你应该可以login到phpMyAdmin。

在我的系统中, config.inc.php不存在,但存在config.sample.inc.php 。 尝试将示例脚本复制到config.inc.php

有这个问题在我们的设置了很多次,所以我做了一个检查清单。

这假定你希望phpMyAdmin使用UNIX套接字(而不是TCP / IP)在本地连接到MySQL。

UNIX套接字应该稍微快一些,因为它们的开销较小,而且可以更安全,因为它们只能在本地访问。

服务

  • mysqld服务是否正在运行? service mysqld status
  • 如果没有service mysqld start
  • 服务启动后,configuration是否已更改? service mysqld restart

MySQLconfiguration (my.cnf)

  • 检查是否没有非套接字客户端协议集,例如protocol=tcp
  • 检查套接字位置是否可访问并且具有正确的权限

PHPconfiguration (php.ini)

如果可以从命令行本地连接,但不能从phpMyAdmin连接,并且套接字文件不在默认位置:

  • 将mysqli默认套接字设置为新位置: mysqli.default_socket = *location*
  • …我也设置了pdo_myql.default_socketmysql.default_socket
  • 重启你的web服务(在我的情况下是service httpd restartservice httpd restart

phpMyAdminconfiguration (config.inc.php)

  • 检查主机是否设置为localhost: $cfg['Servers'][$i]['host'] = 'localhost';
  • 套接字的位置也可以在这里设置: $cfg['Servers'][$i]['socket'] = '*location*';

NB

正如@chk指出的那样 ; 将$cfg['Servers'][$i]['host']localhost127.0.0.1只会导致连接使用TCP / IP而不是使用套接字,而不是解决scheme。

MySQLconfiguration设置bind-address=也只影响TCP / IP连接。

如果您不需要远程连接,则build议closures使用skip-networking TCP / IP侦听。

在'/etc/php5/apache2/php.ini'文件的ubuntu操作系统中,执行这个页面所说的configuration。

服务器遭到攻击后,使用DDoS(实际上是渗透testing工具)也有同样的问题。

我已经去了/etc/var/mysql/error.log首先看到InnoDB有一个文件locking。

这个问题立即通过重新启动服务器来解决,但是这不是面向未来的。

对于那些在Windows机器上使用WAMP / XAMP时出现这个错误的人。

这可能会帮助你。

你的解决办法是

  • 净停止mysql
  • 擦除二进制日志(和二进制日志索引文件)
  • 如果您不知道它们在哪里,请在您的PC上findmy.ini
  • 在记事本中打开my.ini查找选项log-bin或log_bin
  • 寻找选项datadir
  • 如果log-bin只有一个文件名,查看datadir指定的文件夹
  • 如果log-bin包含path和文件名,请查看由log-bin指定的文件夹内部
  • 在Windows资源pipe理器中打开所需文件夹
  • 删除二进制日志应该有一个文件的扩展名是.index。 删除这个以及net start mysql

如果有二进制日志问题,请不要删除ib_logfile0或ib_logfile1。

答案是在dba.stackexchange上

CAUTION: This method completely removes MySQL data!

我有同样的问题在Ubuntu 12.10,MySQL 5.5

我已经testing了很多与我的问题有关的答案,但没有任何主题工作

最后我不得不重新安装完全删除我的MySQL服务器,然后再次安装Mysql服务器

但你应该知道你应该删除所有与Mysql有关的目录我用这个链接彻底删除mysql

 sudo apt-get remove --purge mysql-server mysql-client mysql-common sudo apt-get autoremove sudo apt-get autoclean sudo deluser mysql sudo rm -rf /var/lib/mysql sudo rm -rf /etc/mysql sudo rm -rf /var/lib/mysql sudo rm -rf /var/run/mysqld 

然后再通过tasksel安装LAMP

完全删除MySQL 5.5

https://serverfault.com/questions/254629/unable-to-install-mysql-server-in-ubuntu/296928#296928

经过多次尝试修复此问题之后,发现问题出在Mysql用户不被允许login

 netstat -na | grep -i 3306 

如果它正在所有接口上进行监听,则可以将任何接口分配给此接口

 $cfg['Servers'][$i]['host'] = 'ANY INTERFACE'; 

尝试使用上面的IP使用命令行login

 mysql -u bla -p -h <Above_IP_address> 

如果这工作,那么你的phpmyadmin也将工作,如果不修复mysql.user表,以便上述命令的作品,并允许您login到MySQL。

用鼠标右键单击我的电脑 – >pipe理 – >服务从右侧窗格的“服务和应用程序”下select“服务”然后search“mysql”服务。 当你find它时,双击启动该服务。

现在你应该可以运行并login到PhpMyAdmin

检查你的服务器是否正在运行。

这是因为你的系统有两个“mysql”包安装。 一个安装是通过xampp / lampp完成的,另一个安装是通过mysql-debain包进行的。 要解决这个问题,只需要去“突触pipe理器”,并删除MySQL,然后你就可以从xampp服务器访问MySQL。

注意:从突触pipe理器中删除mysql不会影响通过xampp / lampp服务器安装的mysql。 所以不要担心!

以防万一谁有麻烦,这是一个非常确定的修复。

检查你的etc / hosts文件,确保每个主机都有一个root用户。

 127.0.0.1 home.dev localhost home.dev 

因此,我将有2个或更多的用户为MySQL的根:

 root@localhost root@home.dev 

这是我如何解决我的问题。

对于我来说,问题是通过删除一个以我的电脑命名的.pid文件来解决的:

 sudo rm /var/mysql/computername.pid 

这在你的php.ini文件中的以下行

 mysql.default_socket = "MySQL" 

 mysql.default_socket = /var/run/mysqld/mysqld.sock 

如果您的计算机上已经安装了MySQL,或者您已经更改了MySql服务的3306(默认)的post号,则会发生此问题 为了解决这个问题,你必须告诉phpMyAdmin去查找另一个端口而不是3306.为此,请到C:\ xampp \ phpMyAdmin(默认位置)并打开Config.inc并添加这一行$cfg['Servers'][$i]['port'] = '3307'; $cfg['Servers'][$i]['AllowNoPassword'] = true; 重新启动服务,现在它应该工作。

我在Windows 7registry中的MySQL服务path有问题,这个问题没有随新安装的XAMPP或更新的easyPHP版本而改变。

因此,如果任何人有同样的问题(#2002错误,phpMyAdmin无法启动),你可以search到“my.ini”的win regedit,并交换path到新的包。

例如,我在几个地方交换了旧的path:

C:\ EASYPH〜1.1VC \ binaries \ mysql \ bin \ eds-mysqld.exe –defaults-file = C:\ EASYPH〜1.1VC \ binaries \ mysql \ my.ini MySQL

与较新的一个:

c:\ xampp \ mysql \ bin \ mysqld.exe –defaults-file = c:\ xampp \ mysql \ bin \ my.ini mysql

奇怪的是,没有人在networking上描述过这个问题!