MySQLサーバセットアップ(mysqld)

前提条件

  • 以下の手順はCentOS5.4にMySQL Serverをインストールする場合の手順となります。他のサーバにインストールする場合は設定が異なる場合があります。
  • 以下の手順はmysql-server-5.0.77-4.el5_4.1 を用いて説明しています。バージョンにより内容が異なる場合がありますがご了承ください。
  • インストールにはターミナルエミュレータを利用しています。ターミナルエミュレータについてはご自身でご用意ください。
  • 弊社ではMySQL Serverに関するサポートは行っておりません。MySQL Serverに関するご質問についてはお答えできません。

※代表的なターミナルエミュレータ

Teraterm Poderosa

MySQLサーバのインストール

yumからパッケージインストールを実行します。

$ sudo yum install mysql-server

下記確認が出るので、インストール内容を確認し”y”を入力してください。

  Is this ok [y/N]: y

インストールが始まり、下記ログ出力が確認出来れば完了です。

Complete!


MySQLサーバの起動

MySQLサーバのインストールによって、mysqldとしてサービスに登録されているので、下記、コマンドにてプロセスが起動します。

$ sudo service mysqld start

下記、出力が確認出来れば問題なく、起動しています。

MySQL を起動中:                                            [  OK  ]


自動起動設定

サーバ起動時に自動起動するサービスとして登録します。

$ sudo chkconfig mysqld on

自動起動が有効(ランレベル2,3,4,5でON)となっている事を確認します。

$ chkconfig --list | grep mysqld
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off


my.cnfのテンプレート設定

MySQLサーバインストール時に作成される”my.cnf”をバックアップしておきます。

$ sudo cp -p /etc/my.cnf /etc/my.cnf.org

各テンプレートファイル一覧

$ ls /usr/share/mysql/my-*
/usr/share/mysql/my-huge.cnf             /usr/share/mysql/my-medium.cnf
/usr/share/mysql/my-innodb-heavy-4G.cnf  /usr/share/mysql/my-small.cnf
/usr/share/mysql/my-large.cnf

設定ファイルテンプレートでmy.cnfを上書きします。

テンプレートは、下記のプラン別推奨テンプレート一覧を参考にし、ご契約プランに合ったものをご利用下さい。

$ sudo cp -p /usr/share/mysql/my-[下記より選択].cnf /etc/my.cnf

プラン別推奨テンプレート一覧

ZLV-256my-small.cnf or my-medium.cnf
ZLV-512my-medium.cnf or my-large.cnf
ZLV-768my-large.cnf
ZLV-1024 and ZLV-2048my-huge.cnf

※my-innodb-heavy-4G.cnfについては、当マニュアルでは言及致しません。

コマンド例(ZLV-512をご契約の場合のテンプレートの適用例)

$ sudo cp -p /usr/share/mysql/my-medium.cnf /etc/my.cnf

上記組み合わせ以外でも、サーバ規模によりカスタム可能です。


my.cnfの設定

ここでは設定ファイルテンプレートにmy-medium.cfを利用した場合で説明していますが

各テンプレート共通の設定を載せています。

文字コード設定の追加(UTF-8)

MySQL設定ファイルを編集します。

$ sudo vi /etc/my.cnf
  • [mysqld]
...
[mysqld]
port            = 3306
socket          = /var/lib/mysql/mysql.sock
...
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50

[mysqldump]
quick
max_allowed_packet = 16M
...

以下のように”default-character-set=utf8”を追記します。

...
[mysqld]
port            = 3306
socket          = /var/lib/mysql/mysql.sock
...
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
default-character-set=utf8

[mysqldump]
quick
max_allowed_packet = 16M
...

(任意)MySQLクライアントの文字コードを固定する

MySQL設定ファイルを編集します。

$ sudo vi /etc/my.cnf
  • [mysqld]

下記の追記を行うと、クライアントの文字コードに関係なく、サーバ側の設定(UTF-8)を適用します。

...
[mysqld]
port            = 3306
socket          = /var/lib/mysql/mysql.sock
...
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
default-character-set=utf8

[mysqldump]
quick
max_allowed_packet = 16M
...

以下のように”skip-character-set-client-handshake”追記します。

...
[mysqld]
port            = 3306
socket          = /var/lib/mysql/mysql.sock
...
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
default-character-set=utf8
skip-character-set-client-handshake

[mysqldump]
quick
max_allowed_packet = 16M
...


/etc/my.cnfの変更を反映させるにはmysqldの再起動が必要です。下記コマンドを実行し、mysqldを再起動してください。

$ sudo service mysqld restart

MySQLパスワード設定

インストール直後のMySQLデータベースにはログインパスワードが設定されていません。

MySQLデータベースのmysqlユーザ用ログインパスワードは下記手順に従って設定します。

なお、既存のパスワード変更についても同手順で可能です。

  • MySQLパスワード設定手順

サービスコマンドで”実行中”となっている事を確認します。

$ service mysqld status
mysqld (pid 4189) を実行中...

MySQLデータベースにrootユーザでログインします。

$ mysql -u root
-uユーザ指定オプション

下記の様にmysqlプロンプトへ遷移します。

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

パスワード設定(変更)コマンドを実行します。

mysql> SET PASSWORD FOR <ユーザ名>@<ホスト名>=password('<新規パスワード>');

コマンド実行例(rootユーザにパスワード”rootpass”を設定)

mysql> SET PASSWORD FOR root@localhost=password('rootpass');

ホスト名は自サーバのMySQLサーバに接続している為、localhostとなります。

コマンド実行後、下記出力が確認出来れば設定できています。

Query OK, 0 rows affected (0.03 sec)

一度ログアウトして、再度ログインを試みます。

mysql> \q
Bye
$ mysql -u root
\qmysqlプロンプト終了コマンド

パスワード使用が有効になっている場合、下記のような出力が確認出来ます。

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

パスワードオプションを使用して、MySQLデータベースにログインします。

$ mysql -u root -p
-pパスワード使用オプション

パスワード入力を求められますので、設定したパスワードを入力してください。

Enter password:

ログイン出来れば成功です。

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>


MySQLユーザ追加

  • MySQLユーザ作成手順

rootユーザにてMySQLデータベースへログインします。

$ mysql -u root -p
...
mysql> 

ユーザ作成コマンドを実行します。

GRANT <許可権限> ON *.* TO <ユーザ名> IDENTIFIED BY '<任意のパスワード>' WITH GRANT OPTION;
<許可権限>許可するSQL操作をカンマ区切りで指定
<ユーザ名>MySQLユーザとして追加するユーザ名を指定
<任意のパスワード>追加するユーザに対しての任意のパスワードを指定

コマンド例(ユーザ:test,パス:testtestにINSERT,SELECT文のみ許可)

mysql> GRANT INSERT,SELECT ON *.* TO test IDENTIFIED BY 'testtest' ;
Query OK, 0 rows affected (0.03 sec)

コマンド例(ユーザ:test,パス:testtestに全権限・権限書き換え許可)

mysql> GRANT ALL PRIVILEGES ON *.* TO test IDENTIFIED BY 'testtest' WITH GRANT OPTION;
ALL PRIVILEGES全ての権限を許可
WITH GRANT OPTION権限の書き換えを許可

追加したユーザへのパスワード設定も忘れずに行ってください。


ログの出力

デフォルトのMySQLデーモンのログの出力先は下記のパスとなります。

/var/log/mysqld.log

my.cnfに”log-error = “を追加することによって、任意のパスにログ出力が可能です。

...
[mysqld]
port            = 3306
socket          = /var/lib/mysql/mysql.sock
...
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
default-character-set=utf8
log-error=/var/log/mysql/mysqld-error.log

[mysqldump]
quick
max_allowed_packet = 16M
...

ログ出力パスを変更した場合は、ディレクトリの作成および、パーミッションの設定を忘れずに実施してください。

$ sudo mkdir /var/log/mysql
$ sudo chown -R mysql:mysql /var/log/mysql

また、my.cnfに”log = “と”log-slow-queries = “を追記することによって、ログ出力を強化することができます。

...
[mysqld]
port            = 3306
socket          = /var/lib/mysql/mysql.sock
...
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
default-character-set=utf8
log-error=/var/log/mysql/mysqld-error.log
log = /var/log/mysql/mysql.log
log-slow-queries = /var/log/mysql/slow.log

[mysqldump]
quick
max_allowed_packet = 16M
...

ここでの、ログの設定は下記の通りです。

log-error=/var/log/mysql/mysqld-error.logmysqld起動時のログ
log = /var/log/mysql/mysql.log一般ログ(MySQLデータベースログインログなど)
log-slow-queries = /var/log/mysql/slow.logクエリログ

/etc/my.cnfの変更を反映させるにはmysqldの再起動が必要です。下記コマンドを実行し、mysqldを再起動してください。

$ sudo service mysqld restart

php5-mysql設定

PHPとMySQLを連携させるためyumからパッケージインストールします。

PHP+MySQLは各種CMS等のインストールに求められます。

$ sudo yum install php-mysql

インストール完了後、apache2を再起動します。

$ sudo service httpd restart

mysqldの操作方法

  • 状態確認
$ service mysqld status
  • 起動
$ sudo service mysqld start
  • 停止
$ sudo service mysqld stop
  • 再起動
$ sudo service mysqld restart

参考リンク

/home/vps.netcube.ne.jp/public_html/wiki/data/pages/centos/mysqlサーバセットアップ.txt · 最終更新: 2010/05/20 17:45 by admin
ZoneExpress VPS NEO Boot OpenSolaris Creative Commons License Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0