novaの日記: MySQL のインストールと接続設定
ちょっと DataBase が必要になったので、MySQL をインストールするコトにしました。
どーせなら最新版を入れたいので、MySQL 5.0.21 を get。
MySQLインストール完全ガイド (@IT) を参考にインストールしました。
このページで扱ってる MySQL は Ver3 系列ですが、大して変わりません。
スクリプトの名前がビミョーに違うくらいです。起動スクリプト名が "safe_mysqld" だったりとか (Ver5 系列では "mysqld_safe" です)。
インストールが終ったので、テキトーな db 作って接続テストします。
取り合えず、"dummy" って db を作ってみます。
# mysqladmin create dummy
コレで終了。確認してみます。
# mysqlshow
+--------------------+
| Databases |
+--------------------+
| information_schema |
| dummy |
| mysql |
| test |
+--------------------+
ちゃんと出来てますね。今後は windows PC からこの db を弄るので、CSE Ver1.59 から接続してみます。 ……エラーが出ました。
ERROR 1130: Host 'nova' is not allowed to connect to this MySQL server
nova は windows PC のホスト名です。接続が許可されていないのか。調べてみると、user と host を対で登録しないとダメなのね。 外には絶対出させないシステムなので、どのホストからでも接続出来るユーザを作ります。
# mysql
ってコマンドを起動すると、以下のようなメッセージが出て、SQL コマンドを受け付ける CUI が起動します。
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 17 to server version: 5.0.21-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
んで、どのホストからでも接続を許す user1 (passwd: decoy) ってアカウントを作ります。
mysql> GRANT ALL PRIVILEGES ON *.* TO user1@"%"
-> IDENTIFIED BY 'decoy' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO user1@localhost
-> IDENTIFIED BY 'decoy' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
この user1 アカウントは、権限が "ALL PRIVILEGES" の上、GRANT 実行権も持ってるので root と同等です。
当面は私しか使わないからコレで良いけど、運用する時は、SELECT, INSERT, UPDATE, DELETE のみ実行出来るように降格しとこう。
この権限で接続されたら、何でも出来ちゃうし。
再び CSE から接続してみると……違うエラーが出た。
ERROR 1251: Client does not support authentication protocol requested by server;consider upgrading MySQL client
また、調べてみると……ナルホド。MySQL 4.1 から認証プロトコルが違ってるのね。 インストールしたのは 5.0.21 だから、CSE Ver1.59 ではムリと。つっても、CSE は Ver1.59 が最新なので、サーバの方で対処するしか無い。 皆、CSE 使うだろうし。…………やっぱサーバに登録されてるパスワードを古い形式で登録し直すか。 たぶん OLD_PASSWORD って関数使えばイケる……ハズ。mysql 起動して、以下のコマンドを実行。
mysql> SET PASSWORD FOR user1@"%" = OLD_PASSWORD('decoy');
mysql> SET PASSWORD FOR user1@localhost = OLD_PASSWORD('decoy');
再び CSE から接続…… OK。接続出来ました。
接続出来たので、テーブル作って書き込みのテストなんぞやってみたんですが……書き込めない。
テーブルが無いって言われる。何でかな~って思ってよくよく書き込みスクリプト見てみると……大文字小文字って関係有るのかな。
スクリプト側では書き込むテーブル名が大文字になってるけど、作成したテーブルは小文字だ。スクリプトの方を小文字にしてみると……書き込めた。
でもカラム名はどっちでもいいみたい。コレも、スクリプト側は大文字で、実際に登録されてる方は小文字なんだが。
MySQL のインストールと接続設定 More ログイン