OverView
- さくらVPSにデータベース(mysql)をインストールと初期設定
- mysqlのデータベース設定
- 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/