6.2.3. MySQL
すべてのデータベースをダンプファイルにエクスポートして、これをローカルマシン (現在のディレクトリー) にコピーします
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rhc ssh <v2_application_name> mysqldump --skip-lock-tables -h $OPENSHIFT_MYSQL_DB_HOST -P ${OPENSHIFT_MYSQL_DB_PORT:-3306} -u ${OPENSHIFT_MYSQL_DB_USERNAME:-'admin'} \ --password="$OPENSHIFT_MYSQL_DB_PASSWORD" --all-databases > ~/app-root/data/all.sql exit
$ rhc ssh <v2_application_name> $ mysqldump --skip-lock-tables -h $OPENSHIFT_MYSQL_DB_HOST -P ${OPENSHIFT_MYSQL_DB_PORT:-3306} -u ${OPENSHIFT_MYSQL_DB_USERNAME:-'admin'} \ --password="$OPENSHIFT_MYSQL_DB_PASSWORD" --all-databases > ~/app-root/data/all.sql $ exit
dbdump をローカルマシンにダウンロードします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mkdir mysqldumpdir rhc scp -a <v2_application_name> download mysqldumpdir app-root/data/all.sql
$ mkdir mysqldumpdir $ rhc scp -a <v2_application_name> download mysqldumpdir app-root/data/all.sql
テンプレートから v3 mysql-persistent Pod を作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc new-app mysql-persistent -p \ MYSQL_USER=<your_V2_mysql_username> -p \ MYSQL_PASSWORD=<your_v2_mysql_password> -p MYSQL_DATABASE=<your_v2_database_name>
$ oc new-app mysql-persistent -p \ MYSQL_USER=<your_V2_mysql_username> -p \ MYSQL_PASSWORD=<your_v2_mysql_password> -p MYSQL_DATABASE=<your_v2_database_name>
Pod の使用準備ができているかどうかを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get pods
$ oc get pods
Pod の実行中に、データベースのアーカイブファイルを v3 MySQL Pod にコピーします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc rsync /local/mysqldumpdir <mysql_pod_name>:/var/lib/mysql/data
$ oc rsync /local/mysqldumpdir <mysql_pod_name>:/var/lib/mysql/data
v3 の実行中の Pod に、データベースを復元します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc rsh <mysql_pod> cd /var/lib/mysql/data/mysqldumpdir
$ oc rsh <mysql_pod> $ cd /var/lib/mysql/data/mysqldumpdir
v3 では、データベースを復元するには、root ユーザーとして MySQL にアクセスする必要があります。
v2 では、
$OPENSHIFT_MYSQL_DB_USERNAME
には全データベースに対する完全な権限がありました。v3 では、権限をデータベースごとに$MYSQL_USER
に割り当てる必要があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow mysql -u root source all.sql
$ mysql -u root $ source all.sql
<dbname> のすべての権限を
<your_v2_username>@localhost
に割り当ててから、権限をフラッシュします。Pod からダンプディレクトリーを削除します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cd ../; rm -rf /var/lib/mysql/data/mysqldumpdir
$ cd ../; rm -rf /var/lib/mysql/data/mysqldumpdir
サポート対象の MySQL 環境変数
v2 | v3 |
---|---|
|
|
|
|
|
|
|
|
| |
| |
| |
| |
| |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
| |
| |
| |
| |
|