メールサーバ構築その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システム開発・ネットワーク構築会社 コネクティボへ