2010-09-12 164 views
40

我已经在本地机器上安装了MySQL服务器企业5.1,现在我想安装phpMyAdmin,但它不起作用。phpMyAdmin抛出#2002无法登录到MySQL服务器phpmyadmin

我有我的服务器根目录的红外phpMyAdmin,浏览到“本地主机/ phpMyAdmin/setup/index.php”,启动了一个新的服务器,我改变的唯一设置是填写我的MySQL密码“ config认证”

所以,现在当我试图登录我得到一个错误信息说:‘2002年#无法登录到MySQL服务器的phpmyadmin’

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

+1

您是否使用Cookie身份验证?这是你在配置文件中没有数据库证书的地方(我认为主机除外),并且您在Web应用程序中提供了用户名和密码。我相信,或者你可以在配置文件中提供凭证,并跳过登录过程(显然只适用于非互联网服务器)。您可以使用您用于登录到phpMyAdmin的凭据从mysql控制台(/path/to/mysql.exe -u用户名-h本地主机-p)登录吗? – halfer 2012-08-03 13:55:14

+0

什么都不会工作,我也发生同样的错误,我尝试了很多事情,但没有运气。我建议你将你的mysql数据文件夹保存到一些安全的地方并重新安装phpmyadmin。它会正常工作,不要尝试下次输入密码 – 2013-03-11 17:21:29

+1

@Reddox答案解决了我的问题。也许这应该标记为已解决。 – apis17 2013-07-26 00:20:34

回答

3

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

+0

是的,这是正确的。我正在使用Windows,MySQL作为一项称为MySQL的服务运行,并且正在运行。我也使用IIS作为服务器,而不是Apache – narancha 2010-09-12 11:10:06

1
  • 右击我的电脑 - >管理 - >服务
  • 选择“服务”下的“服务和应用程序”,从右边的窗格中
  • 然后搜索“Zend的发展”的服务。
  • 当您找到它时,双击以启动该服务。

现在,您应该可以登录到phpMyAdmin。

+1

这家伙只是解压缩包。是什么让你觉得它被安装? – RichardTheKiwi 2012-10-05 22:00:03

0

在'/etc/php5/apache2/php.ini'文件中的ubuntu操作系统中,执行this页所述的配置。

+0

页面未加载 – 2015-07-14 06:31:36

117

如果您收到的#2002 Cannot log in to the MySQL server错误而到phpMyAdmin登录,请尝试编辑phpmyadmin/config.inc.php和变化:

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

到:

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

解决方案从Ryan's blog

编辑(2015年3月20日):

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

+1

最近更改了服务器以在Windows 8上侦听(绑定):: 1。在config中更改为localhost是有效的。 – apis17 2013-07-26 00:19:29

+7

我试图解决#2002错误。没有雪茄。 – willdanceforfun 2013-12-06 12:15:29

+0

它的工作!谢谢 – zavr 2014-07-16 06:42:35

4

如果您在完成安装脚本后忘记(如我那样)将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

+0

谢谢!这对我来说很有用。 – 2014-09-23 07:19:26

+0

这工作,但它仍然有点莫名其妙。该设置告诉你将config.inc.php文件移动到config /目录。即使在新的phpMyAdmin,所以它看起来好像这是该文件所属的地方,但我想不是。 – superuserdo 2015-06-09 14:18:41

9
完整说明

背景: 我正在使用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 

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

+1

将我的'bind-address'从默认的'127.0.0.1'改为'localhost'解决了我在Ubuntu服务器上遇到的问题。 – 2014-11-19 19:43:31

+0

谢谢,它的工作原理。在我的情况下,我将我的服务器移动到另一个具有以前备份的IP,因此绑定地址仍然使用旧IP。 – fxbayuanggara 2017-03-20 13:51:24

0

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

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

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

0

CAUTION: This method completely removes MySQL data!

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

我已经测试了许多与我的问题的答案,但没有主题的工作

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

,但你应该知道,你应该删除其与MySQL有关的 我使用这个链接删除mysq所有目录升完全

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安装

Removing MySQL 5.5 Completely

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

0

对于那些WAMP/XAMP在Windows机器上工作时,谁得到这个错误。

这可能对你有帮助。

你的解决方案是

  • 净停止MySQL的
  • 擦除二进制日志(和二进制日志索引文件)
  • 如果你不知道他们在哪里,找到的my.ini您的PC上
  • 在记事本中查找选项日志斌或log_bin开放的my.ini
  • 查找DATADIR
  • 如果日志斌只有一个文件名的选项,看看通过DATADIR
  • 如果日志斌包括路径和文件名中指定的文件夹内,看看通过日志斌
  • 打开Windows资源管理器中指定所需的文件夹中的文件夹内
  • 删除二进制日志应该有一个其文件扩展名为.index的文件的文件名为 。删除这个以及网络启动mysql

当您有二进制日志问题请不要删除ib_logfile0或ib_logfile1。

Answer is on dba.stackexchange

0

在得到这个固定的多次尝试后,我们发现,这个问题是与MySQL的用户没有被允许登录

netstat -na | grep -i 3306 

如果所有接口上听,然后你可以将您的任何界面来此

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

请尝试使用的COMAND行上述IP来登录

mysql -u bla -p -h <Above_IP_address> 

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

4

在尝试所有上述建议后,修复了我的#2002错误。

以下行添加到你的config.inc.php文件,更改了号码给你的MySQL端口:

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

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

0

右键单击我的电脑 - >管理 - >服务 从右侧窗格的“服务和应用程序”下选择“服务” 然后搜索“mysql”服务。 当您找到它时,双击以启动该服务。现在

,你应该能够运行并登录到phpMyAdmin

0

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

0

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

检查您的etc/hosts文件确保您拥有每个主机的root用户。

127.0.0.1 home.dev 

localhost home.dev 

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

[email protected] 
[email protected] 

这是我的固定我的问题。

0

我在Windows 7注册表 中的MySQL服务路径中遇到了问题,该问题未随新安装的XAMPP或更新的easyPHP 版本发生变化。

因此,如果任何人有同样的问题(#2002错误,phpMyAdmin的不能 启动),你可以搜索到胜利注册表编辑器为“我的。ini'并将 路径交换到新软件包。

比如我在几个地方更换旧的路径:

C:\ EASYPH〜1.1VC \二进制文件\ MySQL的\ BIN \ EDS-mysqld.exe --defaults文件= C: \ EASYPH〜1.1VC \二进制\ MySQL的\的my.ini的MySQL

与较新的一个:

C:\ XAMPP \ MySQL的\ BIN \ mysqld.exe --defaults文件= C :\ xampp \ mysql \ bin \ my.ini mysql

很奇怪,没有人在网络上描述过这个问题!

3

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

所以我在墙上打了半天头,直到我意识到它甚至没有读取/ etc/phpmyadmin下的config.inc.php(它是唯一一个位于btw基于“find/iname config.inc.php“。因此,我更改了/usr/share/phpMyAdmin/libraries/config.default.php中的主机,它终于起作用了。

我知道可能还有另一个问题,从/ etc/phpmyadmin文件夹配置,但我现在不能打扰:P

tldr;如果您的设置似乎并没有应用尝试在/ usr/share/phpMyAdmin/libraries/config.default.php

+0

哇...感谢这...我试图连接phpmyadmin到另一个局域网主机,并遇到这个问题..这是唯一的解决方案,为我工作。 – 2016-07-03 09:28:05

23

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

请注意,这也发生在你的mysql服务已关闭,

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

/etc/init.d/mysql restart

在SSH(命令为CentOS的/的cPanel服务器)

+0

谢谢阿拉,为我完美工作 – 2016-03-05 07:42:21

+0

非常好!为我工作! – 2016-05-08 16:24:26

0

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

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

2

我也经历过同样的事情,希望这会有所帮助。

cd /etc/init.d 
./mysql start 

请登录访问MySQL和phpMyAdmin的

+0

谢谢,伙计!这非常奏效。大约2小时后寻找答案,这做到了。干杯。 – Felipe 2016-05-02 19:48:07

0

对我来说,问题是由解决删除一个。我的电脑命名的pid文件:

sudo rm /var/mysql/computername.pid 
2

它发生与我,当我改变了我的AWS服务器的实例类型。

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

所以首先你需要执行:

$ sudo service mysqld restart 

这会给你:

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

后,该错误会不会来。

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

1

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

0

这下面一行在php.ini文件

mysql.default_socket = "MySQL" 

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

有这个问题了一些关于我们的准备时间,所以我我做了一个检查清单。

这里假设您希望phpMyAdmin使用UNIX套接字而非TCP/IP在本地连接到MySQL。

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

服务

  • 是mysqld服务运行? service mysqld status
  • ..如果不是service mysqld start
  • 自服务启动以来,配置是否已更改? service mysqld restart

MySQL的配置(my.cnf中)

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

PHP配置(PHP。INI)

如果你可以在本地通过命令行从phpMyAdmin的连接,而不是和套接字文件不在默认位置:

  • 设置的mysqli默认插座到新的位置:mysqli.default_socket = *location*
  • ...我还设置了pdo_myql.default_socketmysql.default_socket只是为了确保
  • 重新启动您的Web服务(在我的案件的httpd)service httpd restart

phpMyAdmin的配置(config.inc.php中)

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

NB

正如@chk指出的那样;将$cfg['Servers'][$i]['host']localhost设置为127.0.0.1只会导致连接使用TCP/IP而不是使用套接字,而不是解决方案。

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

如果您不需要远程连接,建议关闭使用skip-networking进行侦听的TCP/IP。

0

如果您已将MySQL安装在您的计算机上或中,以防万一您更改了MySql服务的3306(默认)的邮编号,则会出现此问题。为了解决这个问题,你一定要告诉phpMyAdmin的去寻找另一个端口而不是3306。要做到这一点去C:\ XAMPP的\ phpMyAdmin的(默认位置),并开放Config.inc和加入这一行$cfg['Servers'][$i]['port'] = '3307';$cfg['Servers'][$i]['AllowNoPassword'] = true;重新启动服务,现在它应该工作。