Kozupon.com    
 
 MysqlのインストールとPHPとの連携!


1.ソースをゲットする

Mysqlのソースは、ここ でゲットできる。 OS別になっているので自分のOSに有ったバージョンをゲットする。


2.mysqlユーザ作成とソースの展開

俺の場合は、Mysqlのダウンロードサイトから、MySQL-4.0/mysql-standard-4.0.20-unknown-freebsd4.7-i386.tar.gz を落としてセットアップしたので、以降このバージョンで話を進める。

1)mysqlユーザ作成
ユーザはホームディレクトリはいらない。つまり、No loginユーザである。

■ Linuxの場合
# groupadd mysql
# useradd -M mysql
もしくは(特にDebian系の場合)、
# useradd -g mysql mysql

■ FreeBSDの場合
# pw groupadd mysql
# pw useradd mysql -d /noexistent -s /sbin/nologin

2)ソースの展開
# cd /usr/local/MySQL-4.0/
# tar zxvf mysql-standard-4.0.20-unknown-freebsd4.7-i386.tar.gz
# cd ..


3.シンボルリンクを張る

基本的に、コンパイル作業はなくシンボルリンクを張るだけでインストールは終わりとなる。

# ln -s MySQL-4.0/mysql-standard-4.0.20-unknown-freebsd4.7-i386 mysql
# cd mysql


4.データベースの初期化

# scripts/mysql_install_db


5.実行権限の委託

管理は全てmysqlユーザで行うので、権限を委託する。

# chown -R root /usr/local/mysql
# chown -R mysql /usr/local/mysql/data
# chgrp -R mysql /usr/local/mysql
# chown -R root /usr/local/mysql/bin


6.mysqlの実行

# /usr/local/mysql/bin/safe_mysqld --user=mysql &
MySQL5.1系の場合は、
# /usr/local/mysql/bin/mysqld --user=mysql &


7.プロセスの確認

なんでもそうだが、動かした後は実際に動いてるかどうか確認する。

# ps axw | grep mysql

20452 p0- IW 0:00.00 /bin/sh /usr/local/mysql/bin/safe_mysqld --user=mysql
20469 p0- S 8:44.30 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --pid

こんな感じに走っていれば、良いかと思う。


8.mysql起動スクリプト

俺の場合は、FreeBSDなので/etc/rcの最後の方に、 (ただし、良いか悪いかわからん。俺はこれで良いと思ってるのでやってるだけだ。)

# mysql start
if [ -x /usr/local/mysql/bin/safe_mysqld ]; then
      /usr/local/mysql/bin/safe_mysqld --user=mysql &
fi

この記述をぶっこんだ。
Linuxの場合等色々やり方はあるので、臨機応変に対処して欲しい。


9.PHPとの連携のためのリコンパイル

俺の場合は、PHP4にMysqlの機能をプラグインするためにリコンパイルを行う。

1) リコンパイルの手順

# cd /usr/local/src/php-4.1.2
# make distclean
# ./configure --enable-track-vars --with-apxs=/usr/local/apache/bin/apxs --enable-trans-sid \
> --enable-mbstring --enable-mbstr-enc-trans --with-mysql=/usr/local/mysql --with-dom --with-xml \
> --with-zlib --with-pgsql

エラーがなければ、

# make
# make install
# cp php.ini-dist /usr/local/lib/php.ini

2)php.iniの編集

# vi /usr/local/lib/php.ini

省略

register_globals = On

省略

;;;;;;;;;;;;;;;;;;;;;; ; Dynamic Extensions ; ;;;;;;;;;;;;;;;;;;;;;;
;
;If you wish to have an extension loaded automatically, use the following ; syntax:
;
; extension=modulename.extension
;
; For example, on Windows:
;
; extension=msql.dll
;
; ... or under UNIX:


; extension=msql.so

省略


10.インストール後の管理

1)rootパスワードの変更および設定

インストール後は、rootユーザでmysqlコンソールを動かしてみる。 初めてインストール後の現在はrootユーザが最高権限を持っている。 パスワードのセット・リセットはmysqlコンソール上で行う。

# mysql -u root -p
Enter password:         ← 最初はパスワードが設定されてないのでEnterを押す。

mysql> SET PASSWORD FOR root@localhost = PASSWORD('new_password');
mysql> FLUSH PRIVILEGES;   ← ユーザテーブルのリフレッシュ

2)mysqlユーザ別の作成

rootユーザでmysqlコンソールに入り、ユーザを作成する。

# mysql -u root -p
Enter password:*******

■ スーパーユーザの作成
自由にサーバへつなぐことができて何でもできるユーザ。

mysql> GRANT ALL PRIVILEGES ON *.* TO superadmin@localhost IDENTIFIED BY 'my_password' WITH GRANT OPTION;

mysql> GRANT ALL PRIVILEGES ON *.* TO superadmin@"%" IDENTIFIED BY 'my_password' WITH GRANT OPTION;

mysql> FLUSH PRIVILEGES;

2つGRANT文を発行しなければならないことに注意。

■ アドミンユーザの作成
ローカルのみからつなぐことができ、RELOAD,PROCESSの使用だけができるユーザ だから、データベースをクリエートすることはできない。

mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost;
mysql> FLUSH PRIVILEGES;

■ ゲストユーザ
ローカルのみからつなぐことができるがグローバルな権限は全てNOとなっている

mysql> GRANT USAGE ON *.* TO guest@localhost;
mysql> FLUSH PRIVILEGES;

■ 権限の委託

mysql> GRANT all on example.* to example@localhost;

■ 権限を限定したユーザアカウントの作成とパスワードの設定

mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX,ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON *.* TO username@localhost IDENTIFIED BY 'my_password';
mysql> FLUSH PRIVILEGES;

■ ユーザの削除

mysql> GRANT DROP ON *.* TO username@localhost;
mysql> FLUSH PRIVILEGES;

3)データベースの作成

■ データベースを作る

# mysqladmin -u hogehoge -p create databasename
Enter password:*******

■ データベースを削除する

# mysqladmin -u hogehoge -p drop databasename
Enter password:*******

■ データベースが作られているかの確認

# mysqlshow -u hogehoge -p
Enter password:******

4)テーブル定義をDBへ出力する

# mysql -u hogehoge -p databasename < xxxxxxxx.sql(sqlファイル)
Enter password:******

5)データベーステーブル内容の確認

# mysql -u hogehoge -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 107 to server version: 4.1.11-standard

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use databasename
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> DESCRIBE tablename;
+--------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+--------------+------+-----+---------+----------------+
| aid | tinyint(10) | | PRI | NULL | auto_increment |
| mask | varchar(255) | | | | |
| type | varchar(255) | | | | |
| status | tinyint(2) | | | 0 | |
+--------+--------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

6)mysqlデータベース バックアップ方法

# mysqldump -u ユーザー名 -p データベース名 > 保存先パス バックアップファイル名.sql
Enter password: **********

7)mysqlデータベース リストア方法

予め、リストアの為の空のデータベースをクリエートしておく。

# mysql -u ユーザー名 -p データベース名 < 保存先パス バックアップファイル名.sql
Enter password: **********

8)あまし、関係ないけどP_blogのMysqlDBバックアップ方法(ディレクトリごと)

P_blogの場合、/usr/local/mysql/varにDBが保存されるので varディレクトリの内容を丸ごとバックアップ。
# cd /usr/local/mysql
# tar cvzf バックアップ名.tar.gz ./var

9)あまし、関係ないけどP_blogのMysqlDBリストア方法

リストアの場合は、逆に/usr/local/mysqlにvarディレクトリを解凍する。
# cd /usr/local/mysql
# tar zxvf バックアップ名.tar.gz

以上


 
 
 



Copyright 2005 Kozupon.com.