お名前.comのVPSを借りた & 色々サーバ設定を行った vol.02
先日、お名前.comのVPS(KVM)を借りまして、その際に行ったサーバ設定のメモです。
前回は
- パッケージのアップデート
- 作業用ユーザの作成
- 作業用ユーザの公開鍵を作成
- パスワード認証の廃止&公開鍵認証のみに設定
- 作業ユーザでsudo出来るように設定
- ファイアウォールの設定
まで行いました。
今回はMySQLのインストールを行います。
Apache、PHPもインストールしようと思ったのですが、既に入っていたのようなので。
MySQLがインストールされているか確認する
まずはサーバにMySQLがインストールされているかを確認します。
既に入っていればやらなくて良いですから。
# rpm -qa mysql-server
この時、何も表示されていなければまだインストールされていません。
インストールされていないのが確認できたので、インストール作業を行います。
MySQLをインストールする
MySQLは mysql-server, mysql-devel というパッケージをインストールすると使えるようになります。
コマンドを打つと、インストールが始まります。
# yum -y install mysql-server mysql-devel Loaded plugins: fastestmirror, security Setting up Install Process Loading mirror speeds from cached hostfile * base: ftp.tsukuba.wide.ad.jp * epel: ftp.tsukuba.wide.ad.jp * extras: ftp.tsukuba.wide.ad.jp * updates: ftp.tsukuba.wide.ad.jp ... 中略 ... Complete!
上記のようにComplete!が表示されればインストール完了です。
次はMySQLの設定です。
MySQLのデフォルトの文字コードをUTF-8にする
MySQLのデフォルトの文字コードをUTF-8にします。
設定は /etc/my.cnf を編集します。
編集前に念のためバックアップをとっておくと、いざというとき安心です。
# cp /etc/my.cnf /etc/my.cnf.bak150409
バックアップが取れたら編集します。
# vi /etc/my.cnf
ファイルを開くと以下の様な設定がすでに書かれています。
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
ここに文字コードの設定を書いていきます。
まず、[mysqld]の最後に
character-set-server=utf8
を、ファイルの末尾に
[client] default-character-set=utf-8 [mysqldump] default-character-set=utf-8 [mysql] default-character-set=utf-8
追記します。
それぞれ
- [mysqld] character-set-server=utf8 : MySQLサーバの文字コードをUTF-8に変更
- [client] default-character-set=utf8 : クライアント側の文字コードをUTF-8に変更
- [mysqldump] default-character-set=utf8 : mysqldumpでのダンプじの文字コードをUTF-8に変更
- [mysql] default-character-set=utf8 : MYSQLコマンドラインツールでの文字コードをUTF-8に変更
という意味になります。
追記後のファイルはこのようになっています。
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 character-set-server=utf8 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid [client] default-character-set=utf8 [mysqldump] default-character-set=utf8 [mysql] default-character-set=utf8
編集が終わったら :wq で保存し終了します。
ここで設定が反映されているかを確認します。
# /etc/rc.d/init.d/mysqld start
MySQLが起動したらログインし、確認します。
// MySQLにログイン # mysql // ここからMySQL mysql> show variables like 'char%'; // 文字コードがそれぞれUTF-8になっていることを確認 +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec)
UTF-8になっていることを確認したら一旦ログアウトしておきます。
mysql> quit Bye
MySQLが自動起動するよう設定を変更する
初期状態ですとLinuxを再起動するたびにMySQLを明示的に起動しないといけません。
さすがにそれは面倒なので、自動で起動するように設定を変更します。
変更前に今の状態を確認してみます。
# chkconfig --list mysqld mysqld 0:off 1:off 2:off 3:off 4:off 5:off 6:off
0〜6までの数字はランレベルといい、システムの状態を表します。
onになっているレベルに応じてシステムが起動されます。
詳しいことは以下の記事をご覧ください。
ここで、以下のコマンドを叩いて自動起動させます。
# sudo checkconfig mysqld on
現在のランレベルを確認します。
# chkconfig --list mysqld mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
2〜5がonになっていれば完了です。
MySQLのroot権限のパスワードを設定する
現状だとパスワードの入力なしでログインできてしまいます。
セキュリティ上マズイので、パスワードを設定しておきます。
# mysqladmin -u root password {好きなパスワード}
これでroot権限にパスワードが設定されました。
パスワードが設定されているか、ログインして確認してみます。
# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. ...中略...
パスワードを入力して Welcom to ...が表示されればログイン成功です。
これでパスワードの確認は問題ありません。
これでMySQLの設定が完了しました。
残りはApacheとPHPの設定ですね、やっと終わりが見えてきました。