メールサーバ構築その1(MySQL編)

2013.05.29 Author: 443

どうもです。443 です。

**独り事**
F1第6戦モナコGP終わりました。
最後の3周のキミ ライコネンの走りが素晴らしい。
13位から、あれよあれよとチェッカー時には10位まで上がっているし。
あぁ、映像で見たかった...。
**独り事**

さて今回は、気合入れて連載ものとして、メールサーバ構築の一通りのロードマップを示し、
その最初となる。MySQL 5.1系のインストールと設定を行います。

構築する、メールサーバは以下のようなものになるはず。

OS CentOS6 X86_64
+ Postfix(Virtual + Quota + STARTTLS + SMTPAUTH + S25R + Postgrey + tarpitting)
+ Dovecot(POP3S + IMAPS + Quota)
+ PostfixAdmin
+ OpenDKIM
+ SPF
+ Clamav
+ Amavisd-new
+ Mailman

ああ、なんて盛り沢山。さあて、サーバのメモリー足りるかなぁ。

■ MySQLについて
データベースです。
日本語の本家は以下のURLです。
http://www-jp.mysql.com/

PostfixAdmin構築時に、ユーザ情報を格納するために導入します。
PostfixへQuotaを導入した場合も、MySQLにユーザ枚の保存可能メール容量情報を格納します。

■ MySQLのインストール
yumにて、インストールを行い、ランレベル2 3 4 5にて起動するように設定を行います。

# yum install mysql-server
# chkconfig --list | grep mysqld
mysqld 0:off 1:off 2:off 3:off 4:off 5:off 6:off
# chkconfig --level 2345 mysqld on
# chkconfig --list | grep mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off

■ /etc/my.cnf の編集

# cp -p /etc/my.cnf /etc/my.cnf.orig
#vi /etc/my.cnf

---8行目に "default-character-set=utf8" を追加。UTF8しか使用しない想定です---
default-character-set=utf8
-----------------------------------

---9行目に "bind-address = 127.0.0.1" を追加。ローカルホストからのアクセスしかしない想定です---
bind-address = 127.0.0.1
-------------------------------------------------

---10-11行目に追加。InnoDBを使用し、テーブル毎にテーブルスペースを作成する想定です--------
default-storage-engine=InnoDB
innodb_file_per_table = 1
--------------------------------------------------

---15-17行目に "[client]" "default-character-set=utf8" を追加---

[client]
default-character-set=utf8
-----------------------------------

---18-20行目に追加---------------

[mysql]
default-character-set=utf8
---------------------------------

■ MySQLの起動

# service mysqld start


■ MySQLのrootパスワード変更

# /usr/bin/mysqladmin -u root password 'MySQL_rootのパスワード'


■ MySQL へログイン

# mysql -u root -p
Enter password: MySQL_rootのパスワード


■ MySQL へpostfix データベースを作成

mysql> CREATE DATABASE postfix;
Query OK, 1 row affected (0.00 sec)


■ MySQL 管理ユーザを作成し、postfixデータベースの権限を付与

mysql> CREATE USER 'postfix'@'localhost' IDENTIFIED BY 'MySQL_postfixユーザのパスワード';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON `postfix` . * TO 'postfix'@'localhost';
Query OK, 0 rows affected (0.00 sec)


■ MySQLの匿名ユーザを削除

mysql> select host,user,password from mysql.user;
+------------+---------+-------------------------------------------+
| host | user | password |
+------------+---------+-------------------------------------------+
| localhost | root | *ED311712992513373DV556GA6629B6A6F9G4D309 |
| testserver | root | |
| 127.0.0.1 | root | |
| localhost | | |
| testserver | | |
| localhost | postfix | *4ECB95FDA1EC488DF7ED3711EC4C5E1DC4CF967F |
+------------+---------+-------------------------------------------+
6 rows in set (0.00 sec)

mysql> delete from mysql.user where user="";
Query OK, 2 rows affected (0.00 sec)
mysql> select host,user,password from mysql.user;
+------------+---------+-------------------------------------------+
| host | user | password |
+------------+---------+-------------------------------------------+
| localhost | root | *ED311712992513373DV556GA6629B6A6F9G4D309 |
| testserver | root | |
| 127.0.0.1 | root | |
| localhost | postfix | *4ECB95FDA1EC488DF7ED3711EC4C5E1DC4CF967F |
+------------+---------+-------------------------------------------+
4 rows in set (0.00 sec)


■ MySQL rootにパスワード付与

mysql> set password for root@'testserver'=password('MySQL_rootのパスワード');
Query OK, 0 rows affected (0.00 sec)

> set password for root@'127.0.0.1'=password('MySQL_rootのパスワード');
Query OK, 0 rows affected (0.00 sec)

mysql> select host,user,password from mysql.user;
+------------+---------+-------------------------------------------+
| host | user | password |
+------------+---------+-------------------------------------------+
| localhost | root | *ED311712992513373DV556GA6629B6A6F9G4D309 |
| testserver | root | *ED311712992513373DV556GA6629B6A6F9G4D309 |
| 127.0.0.1 | root | *ED311712992513373DV556GA6629B6A6F9G4D309 |
| localhost | postfix | *4ECB95FDA1EC488DF7ED3711EC4C5E1DC4CF967F |
+------------+---------+-------------------------------------------+
4 rows in set (0.00 sec)


■ testデータベースの削除

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| postfix |
| test |
+--------------------+
4 rows in set (0.00 sec)
mysql> drop database test;
Query OK, 0 rows affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| postfix |
+--------------------+
3 rows in set (0.00 sec)


■ MySQL データベースよりログアウト

mysql> exit

以上で、MySQLの準備が整いました。
次は、恐らくDovecot-2系のインストールと設定を行うと思います。

それでは、失礼します。

名古屋のWebシステム開発・ネットワーク構築会社 コネクティボへ