Tag: mysql

在容器中恢复Percona Xtradb

我在容器上运行Percona Xtradb集群 。 我把容器停了下来,然后开始了。 我有错误: 2017-02-11T13:12:00.423566Z 0 [错误]find1笔交易! 这意味着mysqld上次没有正常closures,并且在崩溃后手动删除了关键的恢复信息(最后一个binlog或tc.log文件)。 您必须使用–tc-heuristic-recover开关启动mysqld以提交或回滚挂起的事务。 2017-02-11T13:12:00.423739Z 0 [错误]正在中止 消息说我需要mysqld –tc-heuristic-recover但是在mysql启动失败后容器停止运行。 我的问题是: 我怎样才能解决这个问题,而不是run新的容器,但start现有的一个? 主进程( mysqld )停止后有没有办法让Docker容器仍然运行?

docker-compose down default_network error

我有一个docker工人 – 一些PHP,MySQL等开始。 几天之后,我不能把它们closures,因为一切都停止了,而不是mysql。 它总是给我以下错误: ERROR: network docker_default has active endpoints 这是我的docker-compose.yml version: '2' services: php: build: php-docker/. container_name: php ports: – "9000:9000" volumes: – /var/www/:/var/www/ links: – mysql:mysql restart: always nginx: build: nginx-docker/. container_name: nginx links: – php – mysql:mysql environment: WORDPRESS_DB_HOST: mysql:3306 ports: – "80:80" volumes: – /var/log/nginx:/var/log/nginx – /var/www/:/var/www/ – /var/logs/nginx:/var/logs/nginx – […]

如何正确运行迁移和使用entity framework核心种子docker MySql DB

我在我的ASP.NET核心解决scheme中实现了数据库迁移,因为它在以下问题中被推荐: 在ASP.NET 5中使用EF7进行数据库种子模式 我的解决scheme是设置为在Linux泊坞窗上工作,应用程序依赖于在Docker撰写文件中configuration的MySql容器,并在第一次运行时进行设置。 这些迁移在Startup.Configure方法中运行如下: using (var serviceScope = app.ApplicationServices.GetRequiredService<IServiceScopeFactory>().CreateScope()) { var context = serviceScope.ServiceProvider.GetService<ApplicationDbContext>(); context.Database.Migrate(); context.EnsureSeedData(); } 但是第一次运行应用程序总是会抛出以下错误: 在System.Private.CoreLib.ni.dll中发生types“MySql.Data.MySqlClient.MySqlException”的exception,但未在用户代码中处理 然后,如果等待几秒钟并重新启动debugging会话,则代码将毫无问题地执行,并且第一次运行的数据就在那里。 有没有办法在运行迁移之前等待数据库服务器准备就绪? 编辑: 如果我改变这个问题的迁移方法: 不能得到UserManager类而不是以前的错误我得到这个: 在System.Private.CoreLib.ni.dll中发生types“System.AggregateException”的exception,但未在用户代码中处理

将航线添加到MySQL Docker容器

我正在构build一个派生到这个为Docker容器的MySQL(使用它作为一个起点): https : //github.com/docker-library/mysql 我已经修改Dockerfile以在Flyway中添加。 一切都设置为编辑configuration文件连接到本地数据库实例等。意图是从https://github.com/docker-library/mysql/blob/master/5.7/docker-entrypoint.sh调用此命令https://github.com/docker-library/mysql/blob/master/5.7/docker-entrypoint.sh文件(作为入口点运行)在第186行左右: flyway migrate 当从shell脚本中运行这个连接时,我得到一个连接被拒绝: Flyway 4.1.2 by Boxfuse ERROR: Unable to obtain Jdbc connection from DataSource (jdbc:mysql://localhost:3306/db-name) for user 'root': Could not connect to address=(host=localhost)(port=3306)(type=master) : Connection refused ———————————————————————————————————————————————————————————————- SQL State : 08 Error Code : -1 Message : Could not connect to address=(host=localhost)(port=3306)(type=master) : Connection refused 但是,如果我从shell脚本中删除命令,重build并login到容器,并手动运行相同的命令,它没有问题。 我怀疑脚本连接数据库的方式可能有些不同(它有一个内置的SQL“runner”),但我似乎无法追捕它。 在这个过程中,容器会重新启动服务器,这可能与此处有所不同。 […]

无法通过DataGrip应用程序连接到MySQL docker实例

我已经成功地通过mysql命令行工具连接到一个运行MySQL的docker实例。 不过,我正在努力通过JetBrains的DataGrip应用程序来做到这一点。 我的mysql cli命令如下: mysql -h127.0.0.1 –port=8181 -uroot 在DataGrip中生成的连接string是: jdbc:mysql://127.0.0.1:8181 我从DataGrip接口得到的错误是: [08001] Could not create connection to database server. Attempted reconnect 3 times. Giving up. DataGrip中是否有任何需要更改的内容? 我已经读过,连接也必须通过TCP完成。 不知道如何检查DataGrip是这样做的。 更新:我最终发现问题是我正在使用的docker集装箱。 看来DataGrip不能连接到版本8.0.1(mysql:8.0.1)的mysql docker容器。 我testing使用容器的版本5.7,并可以成功连接。

Docker容器将不会在主机上访问MySQL

我已经在VirtualBox中的一个虚拟机中安装了一个docker,我试图运行一个连接到主机上的MySQL数据库的Net Net应用程序的容器。 所以我在Virtual Box上configuration了mysql和我的应用程序的转发端口。 我可以通过主机中的 “ http:// localhost:3131 / api / users / login ”来访问我的服务,但是会报错,说不能连接MySQL数据库。 当我不使用docker的时候,我也能够在主机上运行应用程序。 我已经在互联网上看了其他线程,但没有任何启发我,除了最后一个命令显示,但我不能运行,因为MySQL身份validationconfiguration硬编码在应用程序中没有configuration文件。 一般configuration如下: Program.cs中 var host = new WebHostBuilder() .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup<Startup>() .UseApplicationInsights() .UseUrls("http://*:80") .Build(); Dockerfile FROM microsoft/aspnetcore WORKDIR /app COPY bin/Release/PublishOutput/ . EXPOSE 80 ENTRYPOINT ["dotnet", "UsersApi.dll"] Docker运行命令 docker run -d -p 3000:80 user_api // and also tried […]

如何通过Dockerfile设置mysql系统variables,如max_allowed_pa​​cket max_allowed_pa​​cket,character_set_server和collat​​ion-server?

我使用的是用于MySQL的Docker。 需要在Dockerfile中设置系统variables,如mysql的max_allowed_pa​​cket,character_set_server和collat​​ion-server。 我尝试使用Dockerfile中提供的下面的命令。 但它不工作。 Dockerfile: FROM mysql:latest VOLUME /opt/data:/var/lib/mysql ENV MYSQL_ROOT_PASSWORD password RUN sed -i 's/^max_allowed_packet.*/max_allowed_packet = 1073741824/' /etc/mysql/my.cnf RUN sed -i "/\[mysqld]/a character-set-server=utf8mb4" /etc/mysql/my.cnf RUN sed -i 's/^collation-server.*/collation-server = utf8mb4_unicode_ci/' /etc/mysql/my.cnf CMD ["mysqld"] 构build命令: sudo docker build -t mysqltest:1 . 运行命令: sudo docker run -p 3306:3306 -restart=always -d mysqltest:1

本地主机连接MySQL Docker混淆

我使用以下命令创build了一个test_mysql : docker run -d -p 3306:3306 –name=test_mysql –env="MYSQL_ROOT_PASSWORD=123" mysql 我使用docker inspect test_mysql的IP地址。 IP是172.17.0.2 。 奇怪的是,当我试图连接到我的本地使用MySQL服务器 mysql -uroot -p123 -h 172.17.0.2 -P 3306 提出的一个错误: ERROR 2003 (HY000): Can't connect to MySQL server on '172.17.0.2' (51) 但是,如果我使用本地主机IP地址,它确实工作: mysql -uroot -p123 -h 127.0.0.1 -P 3306 我的问题是为什么我不能连接到容器使用docker inspect结果,而localhost IP工作?

Docker – 两个MySQL Docker镜像有什么区别?

有2个mysql docker镜像 – 一个是“官方”: https : //hub.docker.com/_/mysql/ 还有一个“由Oracle的MySQL团队创build,维护和支持”: https : //hub.docker.com/r/mysql/mysql-server/ 两幅图像之间的文档几乎完全相同。 预期的ENVvariables几乎相同。 使用其中一个有什么优势?

Docker:一个MySQL数据库的多个实例

我们是否可以在Docker中创build多个托pipe单个共享数据库的容器,如果我们可以创build它,我们是否会在select事件(例如)上面临多个实例的问题? 谢谢。