Top > Debian > Server > MySQL

MySQL 5 の投入

  • 対象OS : Debian 4.0r0 (etch)
    • Ubuntu Server はこのメモの対象外です (OS インストール時に LAMP Server オプションを指定することで MySQL5+PHP5 [7.10時点] が自動的に導入されるため)
  • 確認日 : 2007/05/28

前提条件

  • phpMyAdmin を動かすため、「標準システム」「ウェブサーバー」であらかじめシステム導入しておくこと。
    • Debian etch (4.0r0) の場合、「ウェブサーバー」を導入パッケージに指定しておくと、Apache 2.2.3 + PHP 4.4.4 が標準で入ります。

aptitude

 以下のコマンドで、 MySQL と PHP4 MySQL extensions を投入します。

# aptitude install mysql-server-5.0 php4-mysql

(mysql-client-5.0 等の必要なパッケージは自動的に導入されます)

 注意点として、phpmyadmin パッケージは aptitude で入れてはいけないということです。Debian 4.0r0 の時点で、Apache 1.3 + PHP5 を想定したパッケージになっているらしく、/etc 直下に余分な設定ファイル置き場が作られてしまいます。phpmyadmin はパッケージではなく、 phpMyAdmin 本家 から最新版(2007/05/28 現在、2.10.1) を入手しましょう。

MySQL 側の設定(管理者編)

 管理者 (root) で mysql コマンドを実行し、最小限の設定を行っていきます。  以下はコマンドメモです。DROP や REVOKE はタイプミスでコマンド誤りを取り消すためのメモなので、基本的には無視しましょう。

# mysql
mysql> GRANT USAGE ON *.* TO username@localhost IDENTIFIED BY 'newpassword';
(username さんをパスワード newpassword で登録する。

mysql> SET PASSWORD = PASSWORD('changepassword');
(パスワード変更 by user)
mysql> SET PASSWORD FOR username@localhost = PASSWORD('changepassword');
(パスワード変更 by 管理者)

mysql> SHOW DATABASES;
(データベースすべてを一覧!)

mysql> CREATE DATABASE userdb;
(userdb なデータベースを作成)
mysql> ALTER DATABASE userdb DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
(文字コード規定値をUTF8にする)
mysql> DROP DATABASE userdb;
(userdb なデータベースを削除)

mysql> SHOW GRANTS FOR username@localhost
(usernameさんの権限一覧を見る)
mysql> GRANT ALL PRIVILEGES ON userdb.* TO username@localhost;
(username に userdb の全権限を与える)
mysql> REVOKE SELECT ON userdb.* FROM username@localhost;
(username に対し userdb の select できる権利を剥奪する。select 部分は update などの他のものに置き換え可)

MySQL 側の設定(一般ユーザー編)

 さて、username なアカウントの設定が終わったら、username でログインし、以下のようにコマンドを実行できることを確認します。(phpMyAdmin でも同じことができるため、必ずしも実行する必要はありません)

$ mysql -p userdb
Enter password: (パスワード入力)
mysql> SHOW TABLES;
(テーブル一覧を見る)
mysql> CREATE TABLE tblhoge (id INT, title CHAR(16), dt DATE);
(テーブル tblhoge を作成する。列は 数値型の id、文字列型16文字の title、日付型の dt)
mysql> INSERT INTO tblhoge(id,title,dt) VALUES(1,'hogehoge','2007-04-01');
(値の代入)
mysql> SELECT * FROM tblhoge;
(値の閲覧)
mysql> SELECT * FROM tblhoge WHERE id='1';
(値の条件付き閲覧)
mysql> UPDATE tblhoge SET dt='1997-12-31' WHERE id='1';
(値の条件付き更新)
mysql> DELETE FROM tblhoge WHERE id='1';
(値の条件付き削除)
mysql> DROP TABLE tblhoge;
(テーブルの破棄)

phpMyAdmin を入れる

 phpMyAdmin の配布ファイルは /var/www/ にコピーしておきます。そして、解凍します。

# tar zxvf phpMyAdmin-2.10.1-all-languages.tar.gz
# mv phpMyAdmin-2.10.1-all-languages phpmyadmin

 Debian 4.0r0 の規定値では /var/www/ は 「It works!」と表示するテストページへのリダイレクトなので、設定を書き換えます。

# vi /etc/apache2/sites-available/default
( RedirectMatch ^/$ /apache2-default/  という行があったら、行頭に # 入れてコメントアウト)
# apache2ctl restart
(Apache Web Server を再起動)

 http://server_ip_address/phpmyadmin/ にアクセスして、ちゃんと設定ページが表示されることを確認します。

phpMyAdmin の設定を行う

 規定の設定では、データベース管理者権限で何でもできてしまい、危ないので username でアクセスするよう設定変更します。

# cd /var/www/phpmyadmin/
# mkdir config 
# chmod o+rw config 
# cd config
# touch config.inc.php
# chmod o+w config.inc.php
(phpmyadminのWeb上から設定ファイル保存。
 URLは http://server_ip_address/phpmyadmin/scripts/setup.php あたり)
# cp config.inc.php ..
(コピーする。これで使えるようになる)

/phpmyadmin/scripts/setup.php なページについてですが、設定を行うべきなのは以下の項目です。

  • Servers の右にある「add」ボタン押下の直後
    • User for config auth = username な ID に変更します。
    • Password for config auth = パスワードを入れておきます。
    • Only database to show = 閲覧するデータベースを制限したい場合は設定しておきます。
    • 緑の add ボタンを押下します。
  • 最後に画面の下から2行目、左から4番目の save ボタンを押下します。

リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Fri, 22 Jul 2011 21:57:46 JST (1525d)