首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL Docker镜像持续关闭

问MySQL Docker镜像持续关闭
EN

Stack Overflow用户
提问于 2021-08-15 17:23:54
回答 1查看 483关注 0票数 0

我正在尝试为项目的两个组件构建两个docker图像。一个是节点应用程序,另一个是MySQL DB。我使用脚本来创建数据库并填充DB docker映像中的表,因为我不能使用ORM创建存储过程。我的配置是这样的:

代码语言:javascript
复制
FROM mysql:8.0.26
ADD initialization.sql /docker-entrypoint-initdb.d
ENV MYSQL_ALLOW_EMPTY_PASSWORD=thisisfine
EXPOSE 3306

当我运行docker-compose up --build时,数据库镜像关闭,这会导致我的另一个镜像出现问题。我不知道为什么。以下是日志中显示的内容:

代码语言:javascript
复制
Creating libraryly_db_1 ... done                                                                                                                           
Creating libraryly_backend_1 ... done                                                                                                                      
Attaching to libraryly_db_1, libraryly_backend_1                                                                                                           
backend_1  | Waiting for the DB to start...                                                                                                                
db_1       | 2021-08-15 17:10:58+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.26-1debian10 started.                                   
db_1       | 2021-08-15 17:10:58+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'                                                            
db_1       | 2021-08-15 17:10:58+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.26-1debian10 started.                                   
db_1       | 2021-08-15 17:10:58+00:00 [Note] [Entrypoint]: Initializing database files                                                                    
db_1       | 2021-08-15T17:10:58.655968Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.26) initializing of server in progress as process 42 
db_1       | 2021-08-15T17:10:58.676504Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.                                                
db_1       | 2021-08-15T17:10:59.618507Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.                                                  
db_1       | 2021-08-15T17:11:01.811035Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1 is enabled for channel mysql_main                 
db_1       | 2021-08-15T17:11:01.811791Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1.1 is enabled for channel mysql_main               
db_1       | 2021-08-15T17:11:02.140665Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off 
the --initialize-insecure option.                                                                                                                          
db_1       | 2021-08-15 17:11:07+00:00 [Note] [Entrypoint]: Database files initialized                                                                     
db_1       | 2021-08-15 17:11:07+00:00 [Note] [Entrypoint]: Starting temporary server                                                                      
db_1       | 2021-08-15T17:11:07.714680Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.26) starting as process 91                           
db_1       | 2021-08-15T17:11:07.750557Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.                                                
db_1       | 2021-08-15T17:11:08.000431Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.                                                  
db_1       | 2021-08-15T17:11:08.397505Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1 is enabled for channel mysql_main                 
db_1       | 2021-08-15T17:11:08.397776Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1.1 is enabled for channel mysql_main               
db_1       | 2021-08-15T17:11:08.399964Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.                                            
db_1       | 2021-08-15T17:11:08.400702Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now suppor
ted for this channel.                                                                                                                                      
db_1       | 2021-08-15T17:11:08.407431Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is 
accessible to all OS users. Consider choosing a different directory.                                                                                       
db_1       | 2021-08-15T17:11:08.463387Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: /var/run/mysqld/mysqlx.sock               
db_1       | 2021-08-15T17:11:08.463648Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.26'  socket: '/var/run/mysq
ld/mysqld.sock'  port: 0  MySQL Community Server - GPL.                                                                                                    
db_1       | 2021-08-15 17:11:08+00:00 [Note] [Entrypoint]: Temporary server started.                                                                      
db_1       | Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it.                                                          
db_1       | Warning: Unable to load '/usr/share/zoneinfo/leap-seconds.list' as time zone. Skipping it.                                                    
db_1       | Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it.                                                             
db_1       | Warning: Unable to load '/usr/share/zoneinfo/zone1970.tab' as time zone. Skipping it.                                                         
backend_1  | Operation timed out                                                                                                                           
backend_1  | Starting the server...                                                                                                                        
db_1       |                                                                                                                                               
db_1       | 2021-08-15 17:11:15+00:00 [Note] [Entrypoint]: /usr/local/bin/docker-entrypoint.sh: running /docker-entrypoint-initdb.d/initialization.sql    
backend_1  |                                                                                                                                               
backend_1  | > libraryly@1.0.0 start /app                                                                                                                  
backend_1  | > node app                                                                                                                                    
backend_1  |                                                                                                                                               
db_1       |                                                                                                                                               
db_1       |                                                                                                                                               
db_1       | 2021-08-15 17:11:16+00:00 [Note] [Entrypoint]: Stopping temporary server                                                                      
db_1       | 2021-08-15T17:11:16.132929Z 11 [System] [MY-013172] [Server] Received SHUTDOWN from user root. Shutting down mysqld (Version: 8.0.26).        
backend_1  | Listening at: http://localhost:5000                                                                                                           
backend_1  | ConnectionRefusedError [SequelizeConnectionRefusedError]: connect ECONNREFUSED 172.23.0.2:3306                                                
backend_1  |     at ConnectionManager.connect (/app/node_modules/sequelize/lib/dialects/mysql/connection-manager.js:116:17)                                
backend_1  |     at processTicksAndRejections (internal/process/task_queues.js:93:5)                                                                       
backend_1  |     at async ConnectionManager._connect (/app/node_modules/sequelize/lib/dialects/abstract/connection-manager.js:318:24)                      
backend_1  |     at async /app/node_modules/sequelize/lib/dialects/abstract/connection-manager.js:250:32                                                   
backend_1  |     at async ConnectionManager.getConnection (/app/node_modules/sequelize/lib/dialects/abstract/connection-manager.js:280:7)                  
backend_1  |     at async /app/node_modules/sequelize/lib/sequelize.js:613:26                                                                              
backend_1  |     at async Sequelize.authenticate (/app/node_modules/sequelize/lib/sequelize.js:867:5) {                                                    
backend_1  |   parent: Error: connect ECONNREFUSED 172.23.0.2:3306                                                                                         
backend_1  |       at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16) {                                                                       
backend_1  |     errno: -111,                                                                                                                              
backend_1  |     code: 'ECONNREFUSED',                                                                                                                     
backend_1  |     syscall: 'connect',                                                                                                                       
backend_1  |     address: '172.23.0.2',                                                                                                                    
backend_1  |     port: 3306,                                                                                                                               
backend_1  |     fatal: true                                   

我不知道是什么原因导致root用户发送关机请求。请帮帮忙。

EN

回答 1

Stack Overflow用户

发布于 2021-08-15 17:39:11

在这种情况下,如果您使用docker-compose,则不需要dockerfile,您可以这样配置docker-compose文件

代码语言:javascript
复制
version: "3.7"

services:
   mysql:
     image: mysql:8.0.17
     container_name: localmysql
     command: --default-authentication-plugin=mysql_native_password
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: 123456
       MYSQL_DATABASE: initialDatabaseName
     ports:
       - 3306:3306
     volumes:
       - /your_local/path:/var/lib/mysql

如果你想初始化数据库,我建议你使用ORM,它允许你使用数据库迁移,或者从后端运行你的脚本

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68793836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档