在我使用OpenShift v2之前,将mysql架构导入应用程序非常容易。我只是将一个phpMyadmin磁带添加到我的OpenShift应用程序,然后导入我的sql文件。但现在在OpenShift v3中他们没有phpMyadmin盒式磁带。
答案 0 :(得分:1)
如果我理解正确,您希望将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
在v3运行窗格中恢复数据库:
$ 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
Grant all privileges on <dbname> to <your_v2_username>@localhost, then flush privileges.
从pod中删除转储目录:
$ cd ../; rm -rf /var/lib/mysql/data/mysqldumpdir