phpMyAdmin正在抛出#2002无法登录到mysql服务器phpmyadmin

时间:2010-09-12 11:02:22

标签: mysql phpmyadmin

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

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

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

有谁知道什么是错的?我从昨天起就遇到过这个问题。

27 个答案:

答案 0 :(得分:118)

如果您在登录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's blog

的解决方案

编辑(2015年3月20日):

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

答案 1 :(得分:24)

这是旧的,但因为它是Google的第一个结果,

  

请注意,当MySql服务关闭时也会发生这种情况,

我通过使用以下命令重新启动MySQL服务器来修复此问题:

/etc/init.d/mysql restart

SSH中的

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

答案 2 :(得分: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

这解决了这个问题。享受。

答案 3 :(得分: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

上的完整说明

答案 4 :(得分:4)

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

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

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

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

答案 5 :(得分:3)

你在机器上安装了MySQL吗?听起来你正在使用Windows; MySQL在您的计算机上作为“服务”运行(右键单击“我的电脑” - >“管理” - >“服务”。

答案 6 :(得分:3)

我已基本完成了此错误的所有stackoverflow,并没有解决我的问题。我能够直接从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中进行更改

答案 7 :(得分:2)

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

cd /etc/init.d
./mysql start

请登录访问mysql和phpmyadmin

答案 8 :(得分:2)

当我更改AWS服务器的实例类型时,它发生在我身上。

{p> #2002 Cannot log in to the MySQL server服务未启动时也会发生{p> mysqld

首先,您需要执行:

$ sudo service mysqld restart

这会给你:

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

之后不会出现错误。

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

答案 9 :(得分: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只是为了确保
  • 重新启动您的网络服务(在我的情况下为httpd)service httpd restart

phpMyAdmin配置 (config.inc.php)

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

N.B。

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

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

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

答案 10 :(得分:1)

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

答案 11 :(得分:1)

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

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

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

答案 12 :(得分:1)

  • 右键单击“我的电脑” - &gt;管理 - &gt;服务
  • 从右侧窗格的“服务和应用程序”中选择“服务”
  • 然后搜索“Zend Development”服务。
  • 找到后,双击启动该服务。

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

答案 13 :(得分:0)

这是php.ini文件中的以下行

mysql.default_socket = "MySQL"

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

答案 14 :(得分:0)

对于Ubuntu 14.04和16.04,您可以应用以下命令

首先,检查MySQL服务是否正在运行

sudo服务mysql状态

现在您可以看到显示如下消息: mysql停止/等待

现在应用命令: sudo服务mysql restart

现在您可以看到显示如下消息:mysql start / running,进程8313。

现在转到浏览器并以root(用户名)和root(密码)登录,您将成功登录

答案 15 :(得分:0)

如果您已在计算机上安装了MySQL,则会出现此问题;如果您更改了MySql服务的帖子编号(3306(默认)),则会出现为了解决此问题,您需要告诉phpMyAdmin寻找另一个端口而不是3306.要这样做,请转到C:\ xampp \ phpMyAdmin(默认位置)和打开\n并添加此行Config.inc $cfg['Servers'][$i]['port'] = '3307';之后重新启动服务,现在应该可以正常运行。

答案 16 :(得分:0)

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

sudo rm /var/mysql/computername.pid

答案 17 :(得分:0)

我的问题已通过此步骤解决

  1. apt-get install mysql-server phpmy admin
  2. /etc/init.d/mysql重新启动
  3. 完成。

答案 18 :(得分:0)

这是因为你的系统安装了两个&#34; mysql&#34;包。一个安装是通过xampp / lampp完成的,另一个安装是通过mysql-debain软件包完成的。要解决这个问题,请转到&#34;突触管理器&#34;并删除mysql,然后您就可以从xampp服务器访问mysql。

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

答案 19 :(得分:0)

我在Windows 7注册表中遇到了MySQL服务路径的问题 新安装的XAMPP或更新的easyPHP没有改变 版本

所以如果有人有同样的问题(#2002错误,phpMyAdmin不能 你可以在'my.ini'中搜索win regedit并交换 新包装的路径。

例如,我在几个地方交换了旧路径:

  

C:\ EASYPH〜1.1VC \二进制\ 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的

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

答案 20 :(得分:0)

万一有人遇到麻烦,这是一个非常肯定的解决办法。

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

即。

127.0.0.1   home.dev

localhost   home.dev

因此我将拥有2个或更多用户作为mysql的root用户:

root@localhost
root@home.dev

这就是我解决问题的方法。

答案 21 :(得分:0)

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

答案 22 :(得分:0)

右键点击我的电脑 - &gt;管理 - &gt;服务 选择&#34;服务&#34;在&#34;服务和应用&#34;从右侧窗格 然后搜索&#34; mysql&#34;服务。 当您找到它时,双击以启动该服务。

现在您应该能够运行并登录PhpMyAdmin

答案 23 :(得分:0)

经过多次尝试修复后,发现问题出在Mysql用户不允许登录

netstat -na | grep -i 3306

如果它正在侦听所有接口,那么您可以将任何接口分配给此

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

尝试使用上述IP使用命令行

进行登录
mysql -u bla -p -h <Above_IP_address>

如果这样可行,那么你的phpmyadmin也可以工作,如果没有修复mysql.user表,那么上面的命令可以正常运行,并允许你登录mysql。

答案 24 :(得分:0)

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

这可能会对你有帮助。

您的解决方案是

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

当您遇到二进制日志问题时,请不要删除ib_logfile0或ib_logfile1。

Answer is on dba.stackexchange

答案 25 :(得分:0)

CAUTION: This method completely removes MySQL data!

我在Ubuntu 12.10,mysql 5.5

中遇到同样的问题

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

最后我不得不重新安装完全删除我的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

Removing MySQL 5.5 Completely

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

答案 26 :(得分:0)

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