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 pod 中:
$ 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 |
---|---|
|
|
|
|
|
|
|
|
| |
| |
| |
| |
| |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
| |
| |
| |
| |
|