さくらVPSにデータベース機能を持たせる(mysql編)


OverView

  1. さくらVPSにデータベース(mysql)をインストールと初期設定
  2. mysqlのデータベース設定
  3. mysqlの自動バックアップの設定

 

mysqlのインストールと初期設定

インストール

# yum -y install mysql-server

データベースをUTF-8に設定する

# 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
    character-set-server=utf8 ←追加

 

mysqlの起動と自動起動設定

# /etc/init.d/mysqld start
# chkconfig mysqld on

 

mysqlのデータベース設定

データベース初期設定

# mysql_secure_installation
  指示に従い入力する

mySQLに接続

# mysql -u root -p

mysqlのrootユーザにパスワードを設定する

mysql> SET PASSWORD FOR root@localhost=PASSWORD('パスワード');

 

データベース作成

mysql> create database test;
mysql> use test;

 ユーザ追加(ローカルからの接続のみの場合)

mysql> grant all privileges on test.* to ユーザ名@localhost identified by 'パスワード';

 ユーザ追加(リモート接続可能ユーザの場合)

mysql> grant all privileges on *.* to ユーザ名@"%" identified by 'パスワード';

 

mySQLの自動バックアップ設定

バックアップ用のスクリプトを作成してcronに登録する。

スクリプト作成

# vi mysql-backup.sh
#!/bin/bash

PATH=/usr/local/sbin:/usr/bin:/bin

# バックアップ先ディレクトリ
BACKDIR=/backup/mysql

# MySQLrootパスワード
ROOTPASS=mysqlのrootユーザパスワード

# バックアップ先ディレクトリ再作成
rm  -rf $BACKDIR
mkdir -p $BACKDIR

# データベース名取得
DBLIST=`ls -p /var/lib/mysql | grep / | tr -d /`

# データベースごとにバックアップ
for dbname in $DBLIST
do
    table_count=`mysql -u root -p$ROOTPASS -B -e "show tables" $dbname|wc -l`
    [ $table_count -ne 0 ] &&
    mysqlhotcopy $dbname -u root -p $ROOTPASS $BACKDIR | logger -t mysqlhotcopy
done

 cronにスクリプトをセット

# chmod 700 mysql-backup.sh
# echo "0 3 * * * root /root/mysql-backup.sh" > /etc/cron.d/backup

 

バックアップからリストアするには

# /bin/cp -Rf /backup/mysql/データベース名/ /var/lib/mysql/

 

 


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です