「エアコンの安全な修理・適切なフロン回収」はこちら

Debian10 DiCEのインストール、MYSQL 5.xからMYSQL 8へデータベース移行

1. DiCEのインストール

ネットが切断されたり、ルーターが切断再起動したときにおこるグローバルIPの変更の度に、ダイナミックDNSにアクセスしグローバルIPが変更されたことを知らせなくてはいけません。その作業を自動的にやってくれるのがDiCEです

1. 1  Diceのダウンロード、インストール

①ダウンロード

# cd /usr/local/bin/
# wget https://centos.rcg.jp/download/DiCE.tar.gz
# tar -xzvf DiCE.tar.gz
#cd /usr/local/bin/DiCE

②DiCEの設定
DiCEの出力文字はEUCのため、文字化けしてしまう。
UTF-8に変換するために、nkfをインストールしておく

# apt-y install nkf

#64bitOSで32bitソフトのDiceを動かすため

# apt install lib32stdc++6

③DiCEを起動する

# cd /usr/local/bin/DiCE
# ./diced | nkf -uw

1. 2 イベントの追加

DNSサービスはVALUEDOMAIN

# ./diced | nkf -uw
: add

DynamicDNSサービス名を入力してください
“?”で対応しているサービスを一覧表示します
(P)戻る

>VALUEDOMAIN
ドメイン名を入力してください
“?”でドメイン一覧を表示します
(P)戻る

><ドメイン名>
ホスト名を入力してください
(P)戻る
><ホスト名>
ログインユーザ名を入力してください     
(P)戻る
><ユーザー名>  ←VALUEDOMAINに登録したユーザー名

ログインパスワードを入力してください
(P)戻る
><passwd>  ←VALUEDOMAINにログインするパスワード
登録するIPアドレスを入力してください
空白にすると現在のIPアドレスを自動検出します
(P)戻る
>空白

このイベントに題名を付けてください
(P)戻る
>xxxxxxxxx(適当に付ける)
実行する頻度を指定してください (番号入力)
(0)1回のみ (1)1日1回 (2)1週間に1回 (3)1ヵ月に1回
(4)その他の周期 (5)IPアドレス変化時 (6)起動時
(P)戻る
>5
IPアドレスがあまり変化しない環境の場合、更新せずに一定期間を過ぎると
アカウントを削除されてしまうことがあります
IPアドレスの変化が無い時に実行する間隔を指定してください
(0)7日毎 (1)14日毎 (2)21日毎 (3)28日毎
(4)35日毎 (5)56日毎 (6)84日毎
(P)戻る
>0(任意に決める)
このイベントを有効にしますか? (Y/N)
(イベントの有効/無効は”EN/DIS”コマンドで切替えられます)
>y
イベントを保存しますか? (Y/N)
>y

1. 3 イベントの確認

: list 
(No.)   (イベント名)     (スケジュール)         (次回予定)
0 *      xxxxxxxxx   IPアドレス変化時 (7日毎)   07/29 06:27ー

手動実行
:ex 0
+ 7/22 6:33 にddns_valuedomainが実行されました
IPアドレスを更新しました

1. 4 Diceの自動実行

DiCEデーモンを起動する

# /usr/local/bin/DiCE/diced -d -l

起動しているか確認

# ps aux | grep diced
root 5346 12.2 0.0 5440 492 ? Ss 06:37 0:04
/usr/local/bin/DiCE/diced -d -l

自動で起動するよう設定

# vi /etc/rc.local
/usr/local/bin/DiCE/diced -d -l ←追加
/etc/rc.localがない場合
systemd になって、起動時に実行したいプログラムは、スクリプトを書いてサービスとして登録します。Debianの場合 /etc/rc.local を root で書いて実行ビットを立てておくと、rc-local というサービスによって自動的に実行されるようになっています。
/etc/rc.local新規作成する
# vi /etc/rc.local
#!/bin/sh
/usr/sbin/ethtool -s eno1 wol g
※ eno1は各自のネットワークインターフェース名(# ip addrで確認)
# chmod 700 /etc/rc.local

2. MySQL8.0への移行手順

旧サーバ  MySQL5.6  データベース test-db  データベースユーザー test-db-user
新サーバ  MySQL8.0

2.1 新サーバでバックアップ

# mysqldump -u root -p [新パスワード]  –all-databases  –single-transaction

2.2 旧サーバでの作業

①移行したいDBのdumpを取る

# mysqldump -u root -p –flush-logs test-db > test-db.sql

②旧サーバのデータベースエンジンがMyISAMの場合、以下のコマンドでInnoDBに変換する必要がある

# sed -i ‘s/ENGINE=MyISAM/Engine=InnoDB/g’ test-db.sql

③取得したdumpはrsyncやscpなどで新サーバに持っていく

2.3 新サーバでの作業

①移行予定である新規データベースを作成

# mysql -u root -p mysql
mysql>create database test_db;
MySQL8.0ではデータベース名に‐(ハイフン)が使えないので、_(アンダースコア)を使う

②旧サーバーのデータベースを新サーバーに流し込む

# mysql -u root -p test_db < test-db.sql

③データベースユーザーとパスワードを決め権限を与える

# mysql -u root -p
mysql>create user test_db_user@localhost identified by ‘<PASSWD>‘;
※<PASSWD>は任意に決める
mysql> grant all on test_db.* to ‘test_db_user’@’localhost’;
mysql> flush privileges;
mysql> exit
タイトルとURLをコピーしました