mysql - 如何使用 mysql 数据存储在 OpenShift v3 中导入 mysql 数据库 (schema.sql)?

标签 mysql openshift

在我使用 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/

相关文章:

PHP - 从数据库中分配值,表中的 html 链接

mysql - MySQL中的 `COUNT(*)`和 `COUNT(date_created)`有区别吗

security - 在OpenShift中运行Nginx docker 容器的正确方法是什么?

git - merge redis 的 repos 以在 Openshift 上工作

java - java中连接openshift的运行时间

mysql - 高级安装程序 - 如何在安装过程中创建 MySQL 用户?

php - 从多个表中选择MySQL记录并排序

php - 如何在 OpenShift 上更改 php 5.4 应用程序的默认 GMT 时区?

mysql - SQL 条件,其中 2 个值共享公共(public)字符

rest - 相当于流程模板命令的 Openshift REST API 是什么