在我使用 OpenShift v2 之前,将 mysql 架构导入应用程序非常容易。我只需将 phpMyadmin 盒添加到我的 OpenShift 应用程序中,然后导入我的 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 持久 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
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运行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
Grant all privileges on <dbname> to <your_v2_username>@localhost, then flush privileges.
从 Pod 中删除转储目录:
$ cd ../; rm -rf /var/lib/mysql/data/mysqldumpdir
关于mysql - 如何使用 mysql 数据存储在 OpenShift v3 中导入 mysql 数据库 (schema.sql)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46487186/