- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个小型 Web 应用程序在 Docker 容器中运行。它使用在同一机器上的另一个容器中运行的 mariadb 数据库,基于官方的“mariadb”镜像。
当我第一次设置这些容器时,我使用“内部”数据库启动了 mariadb 容器。我给了“/var/lib/mysql”一个卷名,但没有将其映射到主机上的目录(“-v vol-name:/var/lib/mysql”)。事实上,我什至不知道为什么给它起一个卷名。我几个月前就设置了这个,但我不确定为什么我会专门这样做。
无论如何,我得出的结论是,在容器内部拥有一个数据库并不是一个好主意。我决定确实需要将实际数据库存储在主机上并使用卷映射来引用它。如果我从头开始设置,我知道如何执行此操作,但现在应用程序正在运行,我需要将数据库移动到主机并重新启动容器以指向该数据库。我不确定实现这一目标的所有正确步骤。
此外,我还需要使用基于相同图像的容器来设置此应用程序的第二个实例。第二个数据库也将存储在主机上,位于另一个数据库旁边的目录中。我可以使用第一个数据库的备份文件初始化第二个数据库,但我可能会手动清空第二个实例中的大部分表。
我确实在容器内使用了 mysqldump 来转储数据库,然后将该备份文件复制到主机。
我知道如何在“docker run”中设置卷映射,将容器中的/var/lib/mysql 映射到主机上的某个位置。
此时,我不确定如何处理此备份文件,以便我可以使用修改后的卷映射重新启动容器。我知道我可以运行“mysql dbname < backup.sql”,但我不确定这样做的后果。
最佳答案
当容器运行时,运行 docker cp
-a CONTAINER:/var/lib/mysql/local/path/to/folder
将 MariaDB 数据库从容器复制到本地计算机。将“CONTAINER”替换为您的 MariaDB 容器的名称或 ID。
完成后,您可以停止容器并重新启动它,将 /local/path/to/folder
绑定(bind)到容器的 /var/lib/mysql
路径。
如果您使用的是不支持 -a
或 --archive
标志的旧版本 docker,则可以复制不带该标志的文件,但需要确保主机上的文件夹具有正确的所有权:文件夹的 UID 和 GID 必须与 Docker 容器中的文件夹的 UID 和 GID 匹配。
注意:如果您使用 SELinux,您可能还需要设置适当的权限,如 documentation对于 MariaDB 镜像状态:
Note that users on host systems with SELinux enabled may see issues with this. The current workaround is to assign the relevant SELinux policy type to the new data directory so that the container will be allowed to access it:
$ chcon -Rt svirt_sandbox_file_t /my/own/datadir
关于mysql - 如何正确地将 mariadb 数据库从容器移动到主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45923749/
我在 CentOS 6.4 上运行 MariaDB (10.0.2-MariaDB) 并且想使用 MariaDB 的 CONNECT-Engine 从一些日志文件中读取。由于日志文件很大,我用两个 C
MariaDB 是否支持嵌套事务(不是保存点)? 我希望能够在存储过程中使用嵌套事务。目前在 MySQL 中,我将一个参数“useTransaction”传递给每个存储过程,它控制我是否在该存储过程的
MariaDb 的默认端口是什么? 我是编程新手。我正在创建我的第一个连接到 MariaDB 的 Java 应用程序。我需要指定数据库端口。 最佳答案 Mariadb 的默认端口是 3306。 它与
ubuntu:~$ sudo apt-get install mariadb-server Reading package lists... Done Building dependency tr
我在Ubuntu 18.04上使用的是Mariadb 10.4.10,工具客户端是DBeaver 6.2.5 我想充分利用 Mariadb 中的约束检查功能来确保数据完整性,因为它是从 10.2.1
当我在 phpmyadmin 中运行这个 sql 时 SELECT @@SQL_MODE, @@GLOBAL.SQL_MODE; 表明 @@SQL_MODE STRICT_TRANS_TABLES,E
我正在尝试使用 MariaDB 10.1.12 的联合引擎来创建基于远程数据库中的表的表。关注MariaDB instructions关于如何使用 FederatedX 实现,在数据库 db1 中我创
我在该数据库中有此列,其中包含空格键,我想更改它。 ALTER TABLE . CHANGE COLUMN `Anzahl Personen` AnzahlPersonen int(11); 在命令行
我正在尝试安装 maria db 并遇到以下问题。 [root@localhost ~]# service mysqld start Redirecting to /bin/systemctl sta
我已经基于 mariadb:10.1 构建了一个图像这基本上添加了一个新的 cluster.conf但是在第一个节点开始成功工作后,在第二个节点上面临以下错误。有人可以帮我在这里调试吗? 错误日志尾部
我已阅读 the docs用于 MariaDB REGEX_REPLACE但无法让我的查询工作。我将链接存储在一列中,link并想更改链接的结尾: 来自 www.example.com/至 www.e
我在 MariaDB 的 ColumnStore 上发现的每一项分析都声称它使用的磁盘空间比 InnoDB 等常规引擎少,例如:https://www.percona.com/blog/2017/03
如何在 MariaDB 中重置密码?我使用 Windows 而不是 Linux。谁知道如何重置我的 MySQL MariaDB 密码?我尝试在 Google 上搜索但没有帮助。 最佳答案 我遇到了同样
我正在尝试将 Quarkus 与 MariaDB 图像一起用于测试。 使用 mvn integration-test 启动测试时,我得到以下信息: Unable to start devservice
我正在尝试更新存储在 MariaDB 的 json 列中的数据(libmysql 版本 - 5.6.43,服务器:10.3.34-MariaDB-cll-lve - MariaDB 服务器)。 我的数
我有一个使用 MariaDB 中的表定义的多对多关系。我正在尝试将 Entity Framework Core 中的导航属性用于相关实体,但它们没有水合。 roles | role_id | role
Entity Framework Core 是否支持 MariaDB? 我看到它不在 supported providers 的列表中,但 MySQL 是。也许 MySQL 提供程序会针对 Maria
我在 MariaDb (10.4.10-MariaDB-1:10.4.10+maria~bionic) 中有一个巨大的表,我正在使用添加一个新列 alter table Appointment add
有没有一种方法可以监听 MySQL/MariaDB 中的数据库更改,就像您可以跟踪 MongoDB oplog 一样?我在网上找不到关于此的信息。也许它只适用于 Postgres 而不适用于 MySQ
我刚刚在 Centos 7 中安装了 MariaDB 10.3 数据库服务器。 一切顺利,但在执行“systemctl status mariadb”命令时。这是完整的输出: root@vps [/e
我是一名优秀的程序员,十分优秀!