Snow Leopard: Uzaktan db yerel wordpress bağlanmak

4 Cevap php

Ben Dreamhost üzerinde barındırılan bir Wordpress tabanlı bir log var. Ben Snow Leopard üzerinde yaşıyorum ve benim uzak veritabanına bağlanacak yerel site, yüklemek istedim. Ancak, bu işe yaramazsa ve bu hatayı alıyorum:

mysqlnd cannot connect to MySQL 4.1+ using old authentication

Leopard bunu deneyin vermedi, bu yüzden SL yeni bir şey ya da Leopard bir hata olduğunu sanmıyorum.

Nasıl / geçici çözüm bu çözmek için?

4 Cevap

I have resolved this. The issue indeed was due to Snow Leopard's default of using mysqlnd as the module for PHP 5.3 it ships with, not with Dreamhost. That module flatly refuses to connect with servers using OLD_PASSWORD hash.

The only solution to this (as I can't change MySQL settings on shared hosting) is to recompile your own PHP, that will not use mysqlnd but mysql/mysqli. Took me 3h to figure out the correct ./configure for it to work (I'm far from fluent in this area, so it was hit and miss). Searching through the net, various options worked for various people. No idea will this work or others, it did worked for me like this:

  1. Libjpeg alın ve derlemek, / usr / local / libjpeg içine yükleyin
  2. Libpng'ye alın ve derlemek, / usr / local / libpng'nin içine yükleyin

  3. Hivelogic.com talimatlara göre, son MySQL derlemek

  4. 64bit kullanmak için ayarlayın

    export MACOSX_DEPLOYMENT_TARGET=10.6 \
    CFLAGS="-arch x86_64" \
    CXXFLAGS="-arch x86_64"
    
  5. Configure PHP için bunu kullanın (ben 5.2.11 kullanılan, gerçekten sürece 5.x olduğu gibi benim için önemli değil)

    ./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
    

Yine, ben, tüm bu çaylak değilim sadece yerel wordpress çalıştırmak için PHP gerekir, bu yüzden kendi sorumluluğunuzdadır kullanın.

Bu Dreamhost ile bile mümkün olduğundan emin için biliyor musunuz? Hosting firmalarının bir sürü sadece yerel uygulamalar barındırılan mysql bağlanmak için izin verir. Sen deneyebilirsiniz

telnet thehost 3306

Eğer Connection refused olsun ve bakın. Bunu yaparsanız, o zaman ssh erişimi ve bir tünel veya VPN çözümü diğer bazı tür gerekir.

DigitalRoss o internet üzerinden bu şekilde bir veritabanı ortaya çıkarmak için büyük bir güvenlik riski olarak Dreamhost uzak bağlantılara izin vermeyeceğini çok olasıdır dediği gibi.

Ben veri almaya ve gerçekten bunu yapmak gerekiyorsa yerel ana komut aramak için Dreamhost alanı komut bir tür koymak yerine tavsiye ederim.

Two ways of doing that is either through SOAP or a httprequest. I find SOAP to be the better solution though if possible, as remote data transports are one of the things webservices was ment for.

Ben senin sorunu gerçekten kar leopar ama Dreamhost ile yapmak zorunda olmadığını kabul ediyorsunuz. Onlar size niyetinde ne yapalım eğer ben çok çok sürpriz olacak. Eğer yerel sunucu üzerinde şeyleri test için çalışıyorsanız ne yapabilirim kurulum wordpress yükleme bir destektir. Ben haftalık bloglar tarafından yedek veritabanını WordPress Veritabanı Yedekleme ve bana yedek e-posta.