自分でmysql5をインストールしたばかりですが、これは常に苦痛なので、私が従ったプロセスに気づきました。これはLeopardで行われましたが、プロセスはSnowLeopardとLionでも同じだと思います。元の質問すべてに答えるわけではありませんが、少なくともガイドのようなものです。
Mysqlのインストール
まず、次のコマンドでmysql5サーバーをインストールします。
sudo port install mysql5-server
mysql5
をインストールするだけ サーバーをインストールしません。
コンソール出力に注意してください。macportsのセットアップ手順が含まれています。コピーしてテキストファイルに貼り付けることをお勧めします。以下はそれに基づいています。
mysql5-server
の代わりに 、mysql55-server
などのポートを使用できます 、mysql56-server
、mariadb-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";
}