我已经设置了一个在Docker中运行的基本MariaDB实例——基本上是从使用Kitematic UI启动容器开始,更改设置,然后让它运行。
今天,我想做一个备份,所以我用Kitematic更改了端口,这样我就可以从机器上访问它来进行自动备份。在Kitematic中更改端口后,它似乎启动了一个新的MariaDB容器(即,我的所有数据似乎都被删除)。
这是预期的行为吗?而且,更重要的是,是否有任何方法可以恢复看似丢失的数据,或者是否已将其完全删除?
此外,如果数据实际上已删除,那么在不丢失所有更改的情况下更改设置(如公开端口)的首选方法是什么<代码>docker提交?
笔记:
docker-ps a
当原始数据库已运行数天时,将数据库状态显示为“运行X分钟”提前感谢!
更新:
保留数据(不创建卷或类似文件)的建议步骤如下:
docker提交
...摘自这个答案。
看起来您没有将容器卷装载到特定路径中。您可以在此处阅读有关卷和将数据存储到容器中的信息
您需要使用卷选项运行容器
$ docker run --name some-mariadb -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mariadb:tag
其中/my/own/datadir
是主机上的目录
是的,这是预期的行为。如果您希望数据持久化,您应该从主机(通过--volume
选项docker run
)或从另一个容器装载卷,并将数据库文件存储在此卷中。
docker run --volume /path/on/your/host/machine:/var/lib/mysql mariadb
丢失更改实际上是容器的核心特征,因此不能省略。这样,您可以确保在每次docker运行
之间都可以获得新鲜的环境,而无需进行任何更改。如果您希望您的更改是永久的,您应该在图像的Dockerfile
中进行更改,而不是在容器本身中。
有关更多信息,请访问官方文档:https://docs.docker.com/engine/tutorials/dockervolumes/.
docker-compose挂载mysql,mysql老是重启并且数据丢失 docker-compose.yml文件 /home/docker/mysql/conf.d文件 启动方式:docker-compose up -d mysql 希望mysql不重启,数据不会丢失
问题内容: 我正在使用SQL数据库,我有一列名为“价格”。创建数据库后,将“价格”列设置为“我”,需要将其类型更改为不丢失数据库中的数据。这应该通过SQL脚本来完成 我想到了创建一个新列,将数据移到其中,删除旧列,然后重命名新创建的列。 有人可以帮我举个例子吗?在SQL中也有一个函数可以将字符串解析为十进制? 谢谢 问题答案: 您无需添加新列两次,只需在更新新列后删除旧列即可: 请注意,如果不是数
我想我可以按照我另一篇文章的建议使用合订本 docker-撰写mariadb外部卷映射问题 但是我知道容器应该是无状态的。所以看来我的想法是错误的? 我不知道会发生什么样的灾难性故障,所以如果容器被封砖,我有可能会丢失所有数据吗?或者有没有办法使用外存恢复? 如何处理这种情况?我有一个管理迁移的模式表,所以不希望该表是新的,并从square 1开始 问题:我应该让云上的Mariadb容器写到它喜欢
在MariaDB中,语句用于通过更改表中的值来修改现有字段。 语法: 或者,语句可以与,和子句一起使用。 1. 更新单个列 假设我们有一个表 - ,并具有以下数据记录: 现在,更改列的值为 的行记录,把列的值更新为:。 执行上面更新语句后,查询更新的结果 - 2. 更新多列 还可以使用MariaDB数据库中的语句来更新多个列。 在以下示例中,将更新表中为的两列 - 和的值。参考以下更新语句 - 执
我有一个活动,它在onCreate中加载一个片段(比如Fragment1)。当用户按下Fragment1中的按钮时,我用一个新片段替换Fragment1,比如Fragment2。问题是,在Fragment2中更改方向时,会重新创建活动,并显示Fragment1而不是Fragment2。(因为我在onCreate中创建了Fragment1)我如何坚持Fragment2并在方向更改时保持其状态? 谢谢
问题内容: 我在QtDesigner中设计了所需的UI后,将QtDesinger用于设计GUI以在python中使用,将其转换为python代码,然后更改了生成的代码以在python代码中执行某些操作,但是如果我使用QtDesigner和再次将其转换为python代码,我之前的代码丢失了。 我该如何解决这个问题? 我们可以在python中的多个文件上散布类以在其他文件中编写代码吗? 问题答案: 最