我有一个基于Wordpress的日志,托管在Dreamhost上。我在Snow Leopard上,我想安装本地站点,它将连接到我的远程数据库。但是,这不起作用,我收到此错误:
mysqlnd cannot connect to MySQL 4.1+ using old authentication
我没有尝试在Leopard中这样做,所以我不是SL中的新东西,也不是Leopard中的错误。
如何解决/解决此问题?
答案 0 :(得分:2)
我已经解决了这个问题。 问题确实是由于Snow Leopard默认使用mysqlnd作为它附带的PHP 5.3的模块,而不是Dreamhost。该模块断然拒绝使用OLD_PASSWORD哈希与服务器连接。
唯一的解决方案(因为我无法更改共享主机上的MySQL设置)是重新编译自己的PHP,不会使用mysqlnd而是使用mysql / mysqli。花了3个小时才找出正确的./configure让它起作用(我在这方面很不流利,所以它很受欢迎)。通过网络搜索,各种选项适用于不同的人。 不知道这项工作或其他工作,它确实对我有用:
获取libpng并编译,安装到/ usr / local / libpng
根据hivelogic.com说明编译最新的MySQL
设置为使用64位
export MACOSX_DEPLOYMENT_TARGET=10.6 \
CFLAGS="-arch x86_64" \
CXXFLAGS="-arch x86_64"
用于配置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
同样,我是所有这一切的新手,需要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数据库备份每周备份博客数据库并通过电子邮件发送备份。