Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 需要但不能对数据库进行更改_Php_Mysql_Xampp - Fatal编程技术网

Php 需要但不能对数据库进行更改

Php 需要但不能对数据库进行更改,php,mysql,xampp,Php,Mysql,Xampp,我必须修改网站的数据库表,但当我运行 “phpMyAdmin”(顺便说一句,我在我的WindowsVista开发笔记本电脑上使用Xampp)我得到 错误MySQL说:#2002-服务器没有响应(或者本地MySQL服务器的套接字配置不正确) 配置中定义的controluser连接失败 因此,在阅读本文时,我更改了文件c:\xampp\phpMyAdmin\config_inc.php,即代码行 $cfg['Servers'][$i]['host'] = 'localhost'; $cfg

我必须修改网站的数据库表,但当我运行 “phpMyAdmin”(顺便说一句,我在我的WindowsVista开发笔记本电脑上使用Xampp)我得到

错误MySQL说:#2002-服务器没有响应(或者本地MySQL服务器的套接字配置不正确) 配置中定义的controluser连接失败

因此,在阅读本文时,我更改了文件
c:\xampp\phpMyAdmin\config_inc.php
,即代码行

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

  $cfg['Servers'][$i]['host'] = '127.0.0.1';
我需要让我的套接字连接为数据库工作,我读到
这意味着我只使用tcp/ip,不使用套接字,但我的站点以前使用套接字运行良好

因此,我关闭了我的“Norton Security Suite”,试图阻止防火墙保护问题导致此问题,并使用“localhost”重新启动,但得到相同的错误


我该怎么做才能恢复使用“localhost”?

您的主机值没有问题,但是phpMyAdmin使用的
['controluser']
无法访问您的数据库。看


您还可以通过使用
authtype='config'

来完全消除对controluser的需要。我必须说,这里发生了一件最令人不安的事情——人们普遍担心的事件“我没有改变任何东西,它刚刚开始工作。”

为了子孙后代,让我概述一下我是如何“修复”这个问题的。但在我这样做之前,让我描述一下我的怀疑方向和最初的问题:

问题->在浏览器中键入localhost/myphpadmin时无法解决,但127.0.0.1/phpmyadmin工作正常。我需要使用phpMyAdmin来处理我网站的一个数据库。当我在Xampp控制面板上单击Apache开始/停止按钮旁边的“Admin”时,“Xampp for Windows”在浏览器中显示得很好,但在该页面上单击“工具”下的“phpMyAdmin”会导致上面提到的错误消息。但是,如果我在任何浏览器窗口中键入127.0.0.1/phpmyadmin,phpmyadmin将正常启动

由于MySQL在端口3306上“侦听”(对于Xampp用户,您可以在按下Xampp控制面板上MySQL旁边的“开始”按钮时看到),并且由于使用“localhost/phpMyAdmin”名称应该解析该端口上的连接,我想知道我的“localhost”名称解析是否是问题所在,因为正如我在Xampp控制面板应用程序中看到的那样,MySQL在该端口上成功启动。从localhost启动phpMyAdmin应该已经成功——MySQL正在运行。 因此,这似乎不是一个问题,比如说,另一个程序在MySQL之前“窃取”了3306端口——将“phpmyadmin”添加到“localhost”并不是问题,因为MySQL已经成功启动

为了调查将“localhost”解析到连接的位置,我按照给出的建议检查了位于c:\windows\system32\drivers\etc的主机文件,并在主机文件中找到了上面我的注释中的条目(“127.0.0.1 localhost”::1 localhost“)。这里没有什么可看的,主机文件实际上是存在的,看起来很好

然后我修改了文件c:\xampp\phpMyAdmin\config.inc.php,以更改代码行

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

和那个创可贴允许我运行PHPMyAdmin,但没有解释为什么LoalHoal/PHpMyAdmin不能成功解决,我渴望将这个配置文件.c.PHP改回“LoalHoal'”而不是“127.0.0.1”。(今天早上我就这么做了)

我还通过点击PhpMyAdmin窗口右下角的“官方主页”导航到PhpMyAdmin主页站点,查看是否存在“已知问题”,但未发现任何内容

一个建议是(“可能是防火墙阻止mysql端口”) 在

所以我暂时停止了我的防火墙(诺顿安全套件)——没有变化

在上述过程中,每当我更改某些内容时,我都会重新启动计算机。 所以在午夜左右,我放弃了,去睡觉了

现在,就像变魔术一样,今天早上我可以从Xampp控制面板启动MySQL服务,然后单击Apache开始/停止旁边的“Admin”,然后在Xampp For Windows屏幕上选择“myPhpAdmin”链接,突然就可以正常工作了。正如您在上面的描述中所看到的,我没有做任何永久性的更改—我只停止了防火墙几分钟,并临时更改了\xampp\phpMyAdmin\config.inc.php中的“主机”条目—今天早上,防火墙恢复,对“主机”的临时更改在config.inc.php中恢复为“本地主机”,一切都很好。非常令人不安。虽然你可以掸掉电气连接的灰尘并修理东西,但我上面所做的“掸灰尘”并没有改变我所意识到的任何事情。我现在可以在Firefox和IE中键入localhost/myphpadmin,phpmyadmin成功启动,这样我就可以在我的站点数据库上工作了


如果有人有任何想法,我想知道上面实现了什么样的“清理”,我不喜欢像这样“修复”的虚假问题。

“localhost”和“127.0.0.1”的意思完全相同,所以更改它们不会有任何区别。“你是连接到“localhost”还是“127.0.0.1”?我注意到当你连接到“localhost”时使用套接字连接器,但当您连接到“127.0.0.1”时,将使用TCP/IP连接器。如果插座连接器未启用/工作,您可以尝试使用“127.0.0.1”。“这是另一个答案所说的(单击我问题中的“此处”查看该问题)--它可能解析为同一个本地主机,但如果我的套接字层被套住了,我需要修复它。@qqwy:我不确定它是Windows版本的东西,还是PHP版本的东西,还是Windows/PHP组合的东西,但肯定有一条“暗线”,其中“localhost”是“绑定”到IPv6 IP地址的,而不是127.0.0.1《为什么127.0.0.1有效,而localhost无效》一书。不过,我不确定套接字的评论。@Narcissus:我对