代码之家  ›  专栏  ›  技术社区  ›  Mark Baker

在Windows-7上的MySQL(64位)在0.0.0.0:3306上,而不是127.0.0.1:3306上

  •  1
  • Mark Baker  · 技术社区  · 15 年前

    我刚刚在我的Windows7设备上安装了最新的MySQL(64位)产品版本。它是一个普通的安装,使用所有默认值;但是phpmyadmin根本看不到它。 MySQL被配置为一个自动启动的服务,我知道它正在运行,因为MySQL GUI工具工作正常。

    我从phpmyadmin得到的实际错误消息是:

    Cannot load mysql extension. Please check your PHP configuration. - Documentation
    

    phpinfo()显示:

    > mysqlnd enabled 
    > Version   mysqlnd 5.0.7-dev - 091210 - $Revision: 294543 $
    > Compression supported
    > Command buffer size  4096 
    > Read buffer size   32768 
    > Read timeout   31536000
    > Collecting statistics  Yes
    > Collecting memory statistics  No
    

    做一个netstat-a,我明白了。

    TCP    0.0.0.0:3306           Marks-Netbook:0        LISTENING
    

    当我希望看到

    TCP    127.0.0.1:3306         Marks-Netbook:0        LISTENING
    

    我不知道这是否是phpmyadmin无法连接的原因,但怀疑可能是这种情况。 有人能确认这是否是可能的原因,和/或建议我如何解决?

    3 回复  |  直到 14 年前
        1
  •  1
  •   Charles    15 年前

    无法加载MySQL扩展。

    从PHP连接mysql的方式不少于三种:

    1. “mysql”扩展
    2. “mysqli”扩展名
    3. PDO

    phpmyadmin似乎想使用“mysql”扩展名。检查php.ini,确保启用了“mysql”扩展。这条线可能看起来像 extension=php_mysql.dll

    “mysqlnd”是mysql的本机驱动程序,扩展和pdo使用它来实际连接。

        2
  •  1
  •   ZZ Coder    15 年前

    监听0.0.0.0意味着它监听所有接口,包括127.0.0.1的环回。所以这不应该是个问题。

    请发布phpmyadmin配置。

        3
  •  1
  •   Allan Leake    14 年前

    我花了最后几天的时间让phpmyadmin工作。我的操作系统是Windows7 64位。Apache服务器是2.2版(下载的安装程序httpd-2.2.17-win32-x86-openssl-0.9.8o.msi)。php版本是php 5.3.6(cli)(构建时间:2011年3月17日10:37:07)。MySQL版本为5.5(下载的安装程序mysql-5.5.12-winx64.msi)。

    一切似乎都安装和运行正常。Apache和MySQL作为服务运行。PHP似乎正常。但是,在成功完成phpmyadmin的配置之后,当我尝试启动它时,我得到了__cannot load mysql extension_错误。

    我梳理了许多文档和论坛。感谢大家发表你的经历。以下是我所尝试的,以及我最终如何让它发挥作用。

    请记住,在Win7/64位中没有__windows_和__winnt_157;目录。Apache应该在__Program Files(x86)__中,MySQL应该在__Program Files_157;中,我将php放在文件夹__C:\php_157;中。

    一个人建议将php目录放在路径的开头。我想为什么不呢 所以我打开了一个命令窗口并编辑了路径,所以前四个条目是:

    c:\php\;c:\php\ext;c:\program files\mysql\mysql server 5.5\bin;c:\program files\mysql\mysql server 5.5\lib;

    另一个人建议,在apache httpd.conf文件中,将php部分设置为如下所示:

    LoadFile "C:/php/php5ts.dll"
    LoadModule php5_module "C:/php/php5apache2_2.dll"
    
    <IfModule php5_module>
         PHPIniDir "C:/PHP"
    
        <Location />
            AddType text/html .php .phps
            AddHandler application/x-httpd-php .php
            AddHandler application/x-httpd-php-source .phps
        </Location>
    
    </IfModule>
    

    确保dll文件确实存在于指定的目录中,并在必要时对其进行调整。

    但是,最后一块拼图在php.ini文件中。您需要对Postgres扩展进行如下注释:

    ;[PHP_PGSQL]
    ;extension=php_pgsql.dll
    

    (感谢线程中的homesimpson@gmail.com http://www.apachelounge.com/viewtopic.php?t=3180 )最后一点信息。

    如果您正在使用64位Win7,并且遇到问题,请尝试一下。