sql >> データベース >  >> RDS >> Mysql

SnowLeopardでのMacportsmysql5のセットアップ

    自分でmysql5をインストールしたばかりですが、これは常に苦痛なので、私が従ったプロセスに気づきました。これはLeopardで行われましたが、プロセスはSnowLeopardとLionでも同じだと思います。元の質問すべてに答えるわけではありませんが、少なくともガイドのようなものです。

    Mysqlのインストール

    まず、次のコマンドでmysql5サーバーをインストールします。

    sudo port install mysql5-server
    

    mysql5をインストールするだけ サーバーをインストールしません。

    コンソール出力に注意してください。macportsのセットアップ手順が含まれています。コピーしてテキストファイルに貼り付けることをお勧めします。以下はそれに基づいています。

    mysql5-serverの代わりに 、mysql55-serverなどのポートを使用できます 、mysql56-servermariadb-server またはpercona-server mysqlのより新しいバージョンまたはフォークを取得します。その場合、以下の手順はmysql5-serverに基づいているため、コンソール出力に注意してください。 正しい実行可能ファイルとパスを使用するように調整する必要があります。

    これが新規インストールの場合は、データベースをセットアップします。

    sudo -u _mysql mysql_install_db5
    

    それはいくつかの一般的な命令を出力しますが、これはmacportsには完全には適切ではないと思います。私の意見では、mysql5をデーモンとしてロードする最良の方法は、macportの方法を使用することです。

    sudo port load mysql5-server
    

    mysql5を起動するだけでなく、これは永続的にロードします-起動時に実行されます。後でこれを停止するには:

    sudo port unload mysql5-server
    

    デーモンとして実行したくない場合は、コマンドラインで実行できます:

    sudo /opt/local/lib/mysql5/bin/mysqld_safe
    

    コマンドラインでログインして、実行されていることを確認します。

    mysql5 -u root -p
    

    デフォルトでは、パスワードは空なので、プロンプトが表示されたらEnterキーを押すだけです。ルートパスワードを設定するには:

    /opt/local/lib/mysql5/bin/mysqladmin -u root password 'correct horse battery staple'
    

    macportsphpとネイティブphpインストールの両方をセットアップする手順は次のとおりです。

    MacportsPHPのセットアップ

    すでにmacportsphpがインストールされ、実行されていると仮定します。 php5-mysqlをインストールする必要があります (またはphp54-mysqlのようなもの 使用しているphpのバージョンによって異なります):

    sudo port install php5-mysql
    

    これにより、mysql、mysqli、およびpdoドライバーがインストールされます。

    次に、/opt/local/etc/php5を調べます。 php.iniをまだ持っていない場合はディレクトリ 構成ファイルは、php.ini-developmentのいずれかをコピーします またはphp.ini-production php.iniへ 。次に、php.iniを編集します 追加する適切な行を検索します:

    pdo_mysql.default_socket=/opt/local/var/run/mysql5/mysqld.sock
    

    および:

    mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock
    

    および:

    mysqli.default_socket = /opt/local/var/run/mysql5/mysqld.sock
    

    これらを構成したくない場合は、接続時にphpスクリプトで明示的に設定できます。

    接続に問題がある場合は、近くにある他の設定を確認して、php.ini-developmentと比較することをお勧めします。 およびphp.ini-production 何が変更されたかを確認します。

    次に、以下のスクリプト、またはphpで接続できるテストに似たものを使用します。

    セットアップシステムPHP

    OS Xのphpにはmysqlとmysqliのサポートが組み込まれています(pdoは含まれていません)。そのため、必要なのはmacportunixソケットを設定することだけです。デフォルトの場所は/opt/local/var/run/mysql5/mysqld.sockです。 。 /etc/php.iniで正しい場所を見つけます (まだお持ちでない場合は、/etc/php.ini.defaultからコピーしてください。 )追加する:

    mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock
    

    および:

    mysqli.default_socket = /opt/local/var/run/mysql5/mysqld.sock
    

    これらを構成したくない場合は、接続時にphpスクリプトで明示的に設定できます。

    テストスクリプト

    接続できることを確認するためのphpスクリプトを次に示します。明らかに、通常はphpスクリプトでrootアカウントを使用しないため、接続をテストするために最初に別のmysqlアカウントを作成することをお勧めします。 PDOドライバーがないため、ネイティブphpではPDO接続は機能しません。

    <?php
    
    $username = 'root';
    $password = 'correct horse battery staple';
    
    /* Try mysql: */
    
    $connection = mysql_connect('localhost', $username, $password);
    if ($connection === FALSE) {
        echo "Error connecting using mysql.\n\n";
        echo "Error ".mysql_errno().": ".mysql_error()."\n\n";
    
    }
    else {
        echo "Connected using mysql.\n\n";
        mysql_close($connection);
    }
    
    /* Try mysqli: */
    
    $connection = mysqli_connect('localhost', $username, $password);
    if ($connection->connect_error) {
        echo "Error connecting using mysqli:\n\n";
        echo "Error ".$connection->connect_errno.": ".$connection->connect_error."\n\n";
    }
    else {
        echo "Connected using mysqli.\n\n";
        $connection->close();
    }
    
    /* Try pdo:
     * Won't work for the version of php supplied with OS X. */
    
    try {
        $pdo = new PDO('mysql:host=localhost', $username, $password);
        echo "Connected using PDO.\n\n";
        $pdo = null;
    }
    catch(PDOException $e) {
        echo "Error connecting using PDO:\n\n";
        echo "Error ".$e->getCode().": ".$e->getMessage()."\n\n";
    }
    


    1. PostgreSQLで利用可能な照合のリストを返す方法

    2. 私のMacでのpythonmysqldberr:ライブラリがロードされていません:@ rpath / libmysqlclient.21.dylib

    3. PHP MySQL-エラー:データベースが選択されていません

    4. --where句を指定したmysqldumpが機能していません