2022年8月、ホームページを全面リニューアルしました! 情報を分かりやすくお伝えできるサイト作りを目指してまいります。

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

以上

コメント