Snow Leopard:从本地wordpress连接到远程数据库

时间:2009-09-18 22:31:03

标签: php mysql wordpress osx-snow-leopard

我有一个基于Wordpress的日志,托管在Dreamhost上。我在Snow Leopard上,我想安装本地站点,它将连接到我的远程数据库。但是,这不起作用,我收到此错误:

mysqlnd cannot connect to MySQL 4.1+ using old authentication

我没有尝试在Leopard中这样做,所以我不是SL中的新东西,也不是Leopard中的错误。

如何解决/解决此问题?

4 个答案:

答案 0 :(得分:2)

我已经解决了这个问题。 问题确实是由于Snow Leopard默认使用mysqlnd作为它附带的PHP 5.3的模块,而不是Dreamhost。该模块断然拒绝使用OLD_PASSWORD哈希与服务器连接。

唯一的解决方案(因为我无法更改共享主机上的MySQL设置)是重新编译自己的PHP,不会使用mysqlnd而是使用mysql / mysqli。花了3个小时才找出正确的./configure让它起作用(我在这方面很不流利,所以它很受欢迎)。通过网络搜索,各种选项适用于不同的人。 不知道这项工作或其他工作,它确实对我有用:

  1. 获取libjpeg并编译,安装到/ usr / local / libjpeg
  2. 获取libpng并编译,安装到/ usr / local / libpng

  3. 根据hivelogic.com说明编译最新的MySQL

  4. 设置为使用64位

    export MACOSX_DEPLOYMENT_TARGET=10.6 \
    CFLAGS="-arch x86_64" \
    CXXFLAGS="-arch x86_64"
    
  5. 用于配置PHP(我使用5.2.11,对我来说并不重要,只要它是5.x)

    ./configure --prefix=/usr/local/php5 \ 
    --mandir=/usr/share/man \ 
    --infodir=/usr/share/info \ 
    --sysconfdir=/private/etc \ 
    --with-apxs2=/usr/sbin/apxs \ 
    --enable-cli \ 
    --with-libxml-dir=/usr \ 
    --with-openssl=/usr \ 
    --with-kerberos=/usr \ 
    --with-zlib=/usr \ 
    --enable-bcmath \ 
    --with-bz2=/usr \ 
    --enable-calendar \ 
    --with-curl=/usr \ 
    --enable-exif \ 
    --enable-ftp \ 
    --with-gd \ 
    --with-jpeg-dir=/usr/local/libjpeg \ 
    --with-png-dir=/usr/local/libpng \ 
    --enable-gd-native-ttf \ 
    --with-ldap=/usr \ 
    --with-ldap-sasl=/usr \ 
    --enable-mbstring \ 
    --enable-mbregex \ 
    --with-pdo-mysql=/usr/local/mysql \ 
    --with-mysql=/usr/local/mysql \ 
    --with-mysqli=/usr/local/mysql/bin/mysql_config \ 
    --with-mysql-sock=/tmp/mysql.sock \ 
    --with-iodbc=/usr \ 
    --enable-shmop \ 
    --with-snmp=/usr \ 
    --enable-soap \ 
    --enable-sockets \ 
    --enable-sysvmsg \ 
    --enable-sysvsem \ 
    --enable-sysvshm \ 
    --with-xmlrpc \ 
    --without-iconv \ 
    --with-xsl=/usr
    
  6. 同样,我是所有这一切的新手,需要PHP才能运行本地wordpress,所以使用风险自负。

答案 1 :(得分:1)

您确定Dreamhost可以实现这一点吗?许多托管公司只允许本地应用程序连接到托管的mysql。你可以试试

telnet thehost 3306

并查看是否有连接已拒绝。如果您这样做,那么您将需要ssh访问权限和隧道,或其他一些VPN解决方案。

答案 2 :(得分:0)

正如DigitalRoss所说,Dreamhost很可能不允许远程连接,因为以这种方式通过互联网公开数据库是一个巨大的安全风险。

我建议您在Dreamhost空间放置某种脚本来获取数据并从本地主机调用脚本(如果您确实需要这样做)。

两种方法是通过SOAP或httprequest。 尽管如此可能,我发现SOAP是更好的解决方案,因为远程数据传输是Web服务的一部分。

答案 3 :(得分:0)

我同意你的问题与雪豹没有关系,而是与Dreamhost有关。如果他们让你做你想做的事,我会非常惊讶。如果您尝试在本地服务器上测试内容,可以执行的操作是在wordpress安装上设置备份。我使用WordPress数据库备份每周备份博客数据库并通过电子邮件发送备份。