-2

Dreamhost でホストされている Wordpress ベースのログがあります。Snow Leopard を使用していて、リモート データベースに接続するローカル サイトをインストールしたいと考えていました。ただし、これは機能せず、次のエラーが発生します。

mysqlnd cannot connect to MySQL 4.1+ using old authentication

私はこれを Leopard でやろうとはしなかったので、SL で新しいことでも、Leopard のエラーでもありませんでした。

これを解決/回避する方法は?

4

4 に答える 4

2

私はこれを解決しました。この問題は、Dreamhost ではなく、Snow Leopard に同梱されている PHP 5.3 のモジュールとして mysqlnd を使用するというデフォルトが原因でした。そのモジュールは、OLD_PASSWORD ハッシュを使用してサーバーに接続することをきっぱりと拒否します。

これに対する唯一の解決策は (共有ホスティングで MySQL の設定を変更できないため)、mysqlnd ではなく mysql/mysqli を使用する独自の PHP を再コンパイルすることです。正しい ./configure が動作するように理解するのに 3 時間かかりました (私はこの分野に精通しているわけではないので、行き当たりばったりでした)。ネットを検索すると、さまざまなオプションがさまざまな人に機能しました。これがうまくいくかどうかはわかりませんが、私にとっては次のようにうまくいきました:

  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 \
    --with-iconv \
    --with-xsl=/usr
    

繰り返しますが、私はこれらすべての初心者であり、ローカルのワードプレスを実行するためだけに PHP が必要なので、自己責任で使用してください。

于 2009-10-28T20:17:40.373 に答える
1

これが Dreamhost でも可能であることを確実に知っていますか? 多くのホスティング会社は、ホストされた mysql へのローカル アプリケーションの接続のみを許可しています。あなたは試すかもしれません

telnet thehost 3306

接続が拒否されたかどうかを確認します。その場合、sshアクセスとトンネル、またはその他の種類の VPN ソリューションが必要になります。

于 2009-09-18T22:46:42.023 に答える
0

あなたの問題は実際にはユキヒョウではなく、Dreamhostに関係していることに同意します。彼らがあなたにあなたが意図していることをさせてくれるなら、私は非常に驚きます。ローカルサーバーでテストしようとしている場合にできることは、WordPressのインストールでバックアップを設定することです。私はWordPressデータベースバックアップを使用して、毎週ブログごとにデータベースをバックアップし、バックアップをメールで送ってくれます。

于 2009-09-19T04:05:34.050 に答える
0

DigitalRoss が言ったように、Dreamhost がリモート接続を許可しない可能性は非常に高いです。インターネット経由でデータベースを公開することは大きなセキュリティ リスクになるためです。

代わりに、Dreamhost スペースにある種のスクリプトを配置してデータを取得し、本当にこれを行う必要がある場合はローカル ホストからスクリプトを呼び出すことをお勧めします。

これを行うには、SOAP または httprequest を使用する 2 つの方法があります。リモートデータトランスポートはWebサービスが必要とするものの1つであるため、可能であればSOAPがより良いソリューションであることがわかりました。

于 2009-09-18T23:34:23.897 に答える