在我使用OpenShift V2之前,将MySQL模式导入应用程序非常容易。我将在我的OpenShift应用程序中添加PhpMyAdmin墨盒,然后导入我的SQL文件。但是现在在openshift v3中,他们没有phpmyadmin墨盒。
如果我正确理解,则要将MySQL数据库应用程序从OpenShift版本2(v2)迁移到OpenShift版本3(v3)。如果是这样,以下是:
将所有数据库导出到转储文件,然后将其复制到本地计算机(当前目录):
$ 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>
检查豆荚是否准备使用:
$ oc get pods
When the pod is up and running, copy database archive files to your v3 MySQL pod:
$ oc rsync /local/mysqldumpdir <mysql_pod_name>:/var/lib/mysql/data
在运行POD的V3中还原数据库:
$ oc rsh <mysql_pod>
$ cd /var/lib/mysql/data/mysqldumpdir
在V3中,要还原数据库,您需要访问MySQL作为root用户。
在v2中,$ openshift_mysql_db_username在所有数据库上都具有完全特权。在V3中,您必须为每个数据库授予$ mysql_user的特权。
$ mysql -u root
$ source all.sql
Grant all privileges on <dbname> to <your_v2_username>@localhost, then flush privileges.
从吊舱中删除转储目录:
$ cd ../; rm -rf /var/lib/mysql/data/mysqldumpdir