まずは、mysqlをインストール
まずは、さくらインターネットのVPS ( さくらのVPS )にmysqlをインストールしないとはじまりません。
mysqlのバージョン5.1をインストールしたい場合は、あえてmysql5.1系をインストールするを参照してください。
ここでは、CentOS 5のデフォルトのmysql 5.0をインストールしてみましょう。
※以降の手順は、SSHでログインして、コンソールからインストールを行う手順です。既にSSHでログインしている状態で、すべての操作は、suスーパーユーザで操作を行います。
- 現在のインストール済MySQLパッケージを確認する。
$ rpm -qa | grep mysql
|
何もインストールされていないなら、何も表示されないはずです。もしここで何らかの表示があった場合、すでにインストールされているかもしれません。
一旦、アンインストールしてしまうか、そのまま使用するか判断しましょう。
もし、アンインストールしたいなら、以下のコマンドで削除できます。
$ yum erase mysql
|
- mysqlをインストール確認する。
$ yum -y install mysql-server
|
特別にインストールしたいmysql関連がない場合は、上記でOKです。
mysqlのサーバーのみがインストールされます。
- mysqlのバージョンをチェックする
$ mysql --version
mysql Ver 14.14 Distrib 5.0.xx, for redhat-linux-gnu (x86_64) using readline 5.x
|
Distrib 5.0.xx と出力されれば、OKです。
mysqlを設定
インストールができたら、mysqlの初期設定を行います。
- MySQL初期設定を行う
MySQLの初期設定は、初期設定( /etc/my.cnf を編集 )で行います。
...
[mysqld]
...
## デフォルトも文字コードをutf8に設定
default-character-set = utf8
## 最大のSQL待ち時間を120秒に設定
wait_timeout = 120
set-variable = wait_timeout=120
## 最大のセッション数を450に設定
max_connections=450
## スレッドキャッシュ数を450に設定
thread_cache=450
## テーブルキャッシュ数を450に設定
table_cache=450
## クエリーキャッシュサイズを64Mに設定
query_cache_size = 64M
...
|
上記内容は、あくまで参考までに。各サーバーの環境によって設定する内容も異なりますから、確認の上、編集しましょう。
編集を終えたら保存します。
各mysqlのバージョンによって、多少、名称が異なっていますので注意が必要です。
※table_cacheは、5.1系から、table_open_cache とtable_definition_cacheへ変更されています。
- MySQL5.1系の起動する
ここまでできたら、MySQLを起動しましょう。
$ /etc/rc.d/init.d/mysqld start start
MySQL データベースを初期化中: Installing MySQL system tables...
100619 4:20:01 [Warning] '--default-character-set' is deprecated and will be removed in a
...
Please report any problems with the /usr/bin/mysqlbug script!
[ OK ]
MySQL を起動中: [ OK ]
|
起動が正しくできたら、再起動しても起動するように設定しておきましょう。
$ chkconfig mysqld on
$ chkconfig --list mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
|
mysqlのユーザとデータベースを作成
ここまででMySQLは、使えます。
続けて、ここからは、簡単ながら、データベースをユーザを作成してみましょう。
- mysqlサーバーの管理者でmysqlへログインする
$ mysql -u root
...
mysql> use mysql;
mysql>
|
mysql> のプロンプトが表示されてばOKです。
以降の説明は、mysql>のプロンプトから、mysqlのsql分を発行して、mysqlサーバーの設定を行っていきます。
そのため、必ず最後に;の文字列を入力することをお忘れなく。
- mysqlサーバーの管理者パスワードを設定する
mysql> set password for root@localhost=password('hogehoge');
|
上記では、hogehogeがパスワードになります。
- 不要なmysqlのデフォルトユーザを削除する
mysql> select user,host from mysql.user;
+------+-----------------+
| user | host |
+------+-----------------+
| root | 127.0.0.1 |
| | localhost |
| root | localhost |
| | host.hoge.orz |
| root | host.hoge.orz |
+------+-----------------+
5 rows in set (0.00 sec)
mysql> delete from mysql.user where user='';
|
最初のselect user … で、現在登録されているユーザをすべて表示しています。
この中で、userの欄に空白があるものがありますから、この空白のユーザは、まず、削除しておきます。
delete from mysql.user … で、実際に削除しています。
※特に空白のユーザ名がない場合は、この操作は不要です。
- mysqlのユーザを追加する
mysql> insert into user set user="hoge", password=password("hogehoge"), host="localhost";
|
hoge@localhostで、hogehogeでログインできるようになります。
また、ここでは、自宅のPCからのアクセスを許可したいので、自宅PCのIPアドレスを使って、自宅PCからのアクセスを許可するように設定してみます。
まず、自宅PCのIPアドレスを確認しましょう。
※わからない場合は、以下のURLで確認できます。
http://www.off-soft.net/categories/ip.php
他のホストからのアクセスを許可する場合は、ここで指定している host=”localhost” の localhostを変更し、上記のイメージでSQLを発行します。
例)
例えば、自宅PCのIPアドレスが、”222.222.222.222″だった場合、”222.222.222.222″からのアクセスを許可したいわけですから、以下のようにすれば良いことになります。
mysql> insert into user set user="hoge", password=password("hogehoge"), host="222.222.222.222";
|
- データベースを追加する
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test |
+--------------------+
3 rows in set (0.00 sec)
mysql> drop database test;
mysql> CREATE DATABASE hogedb;
|
最初にshow databases;で、現在登録されているデータベースを確認します。
この中で、testがあれば、それは、デフォルトで設定されているテスト用のデータベースなので、ここでは、次のdrop database test;で削除しています。
最後にCREATE DATABASE hogedb;で、hogedbというデータベースを作成しています。
- mysqlの新規ユーザが新規データベースを操作できるようにする
mysql> grant all on hogedb.* to hoge;
...
mysql> grant all on hogedb.* to hoge@222.222.222.222;
...
|
上記の設定で、hogedbへのフルアクセスをhoge@localhostが行えるようになります。
※ここで、上記例からhoge@222.222.222.222についても許可するようにします。
- 今まで編集したmysqlの情報を更新する
mysql> flush privileges;
|
この作業で、現在動作中のサーバーの情報も更新されます。
- 最後にmysqldを再起動します
$ /etc/init.d/mysqld restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]
|
外部からのmysqlへのアクセスを許可する
ここまででMySQLので設定が終わりです。
続けて、外部からのmysqlへのアクセスを許可するために、iptablesを修正します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| #!/bin/sh
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD DROP
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT
/sbin/iptables -A INPUT -s 10.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 172.16.0.0/12 -j DROP
/sbin/iptables -A INPUT -s 192.168.0.0/16 -j DROP
/sbin/iptables -A INPUT -p tcp --dport 10022 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -s 222.222.222.222 -p tcp --dport 3306 -j ACCEPT
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/etc/rc.d/init.d/iptables save
/sbin/service iptables restart
|
19行目、IPアドレス”222.222.222.222″から、ポート番号 3306 (mysqlのデフォルトポート番号) へのアクセスを許可するように追加しました。
これを実行します。
ここまでで、完了です。
自宅のPCからアクセスしてみてください。
自宅のPCにmysqlがインストールされていれば、そのまま、mysqlのコマンドで確認できます。
もし、mysqlがインストールされていないなら、mysqlクライアントをインストールします。
http://dev.mysql.com/downloads/mysql/5.1.htmlからダウンロードできます。
Windowsの場合は、Windows (x86, 32-bit), MSI Installer Essentials – Recommended でOKのはずです。
さくらインターネットのvps ( さくらのVPS )のIPアドレスを”111.111.111.111″だったとした場合、以下のようにアクセスします。
C:\> mysql -uhoge -p -h111.111.111.111 -Dhogedb
Enter password: ***********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 22
Server version: 5.x.xx-ius Distributed by The IUS Community Project
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
|
もし、以下のようなエラーが出力され接続できない場合は、mysqlの設定、あるいは、iptablesの設定を見直してみてください。
C:\> mysql -uhoge -p -h111.111.111.111 -Dhogedb
ERROR 2003 (HY000): Can't connect to MySQL server on '111.111.111.111' (10060)
|
こんな感じで分散化ができます。今回は、自宅PCからのアクセスでしたが、さくらインターネットのVPS ( さくらのVPS )を2つほど借りて、WEBサーバーとデータベースサーバーと分けるやり方は、
非常に簡単で、より効率的に分散化できます。
WordpressなどのCMSのデータベースを切り替える場合は、mysqldumpなどを使って、DBの内容を移動する必要があります。
DBの内容を移動した後、設定情報を変更して切り替えます。
例えば、Wordpressの場合は、Wordpressのインストールディレクトリの
wp-config.phpを編集することで切り替えることができます。
//define('DB_HOST', 'localhost');
define('DB_HOST', '111.111.111.111');
|
実際に、このサイトをデータベースだけVPSへ切り替えて表示したときの画面です。
わかりにくいですが、ちょっと、古いデータベースを入れてみて、確認してみました。
案外簡単ですよね。
さくらインターネットのVPS ( さくらのVPS )を試してみたい方は、
http://vps.sakura.ad.jp/からどうぞ。
無料お試し期間は14日です。
※お試し期間中は、OP25B設定、データ転送帯域に制約がありますから注意してください。
コメントを投稿 :