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
以上
コメント