6.2.3. MySQL
모든 데이터베이스를 덤프 파일로 내보내고 로컬 시스템(현재 디렉토리에 있음)에 복사합니다.
$ 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 를 다운로드합니다.
$ mkdir mysqldumpdir $ rhc scp -a <v2_application_name> download mysqldumpdir app-root/data/all.sql
템플릿에서 v3 mysql-persistent Pod를 생성합니다.
$ 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를 사용할 준비가 되었는지 확인합니다.
$ oc get pods
Pod가 실행 중이고 실행되면 데이터베이스 아카이브 파일을 v3 MySQL 포드에 복사합니다.
$ oc rsync /local/mysqldumpdir <mysql_pod_name>:/var/lib/mysql/data
실행 중인 v3 Pod에서 데이터베이스를 복원합니다.
$ oc rsh <mysql_pod> $ cd /var/lib/mysql/data/mysqldumpdir
v3에서 데이터베이스를 복원하려면 root 사용자로 MySQL에 액세스해야 합니다.
v2에서
$OPENSHIFT_MYSQL_DB_USERNAME
은 모든 데이터베이스에 대한 전체 권한이 있습니다. v3에서는 각 데이터베이스에 대해$MYSQL_USER
에 권한을 부여해야 합니다.$ mysql -u root $ source all.sql
<dbname> 에 대한 모든 권한을
<your_v2_username>@localhost
에 부여한 다음 권한을 플러시합니다.Pod에서 덤프 디렉터리를 제거합니다.
$ cd ../; rm -rf /var/lib/mysql/data/mysqldumpdir
지원되는 MySQL 환경 변수
v2 | v3 |
---|---|
|
|
|
|
|
|
|
|
| |
| |
| |
| |
| |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
| |
| |
| |
| |
|