Docker - mysql db已安装但用户未创建

问题描述 投票:0回答:1

我正在尝试创建一个混合容器。以下是我的docker-compose文件。

version: "2"

services:

  database:
build:
  context: ./registration-database
image: registration-database
# set default mysql root password, change as needed
environment:
  MYSQL_ROOT_PASSWORD: password
# Expose port 3306 to host.
ports:
  - "3306:3306"
restart: always

  webserver:
build: 
  context: ./registration-webserver
image: registration-webserver
# mount point for application in tomcat
volumes:
  - ./app/target/UserSignup:/usr/local/tomcat/webapps/UserSignup
links:
  - database:registration-database
# open ports for tomcat and remote debugging
ports:
  - "8080:8080" 
  - "8000:8000"
restart: always

以下是mysql的dockerFile:

 FROM mysql:5.7

 # Copy the database initialize script: 
 # Contents of /docker-entrypoint-initdb.d are run on mysqld startup
 ADD  docker-entrypoint-initdb.d/ /docker-entrypoint-initdb.d/

 ENV MYSQL_DATABASE=ishan
 ENV MYSQL_USER=ishan
 ENV MYSQL_PASSWORD=password

以下是initialize_db.sql文件

 USE `ishan`;

 CREATE TABLE `user` (
   `id` bigint(20) NOT NULL AUTO_INCREMENT,
   `dateOfBirth` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ,
   `emailAddress` varchar(255) NOT NULL,
   `firstName` varchar(255) NOT NULL,
   `lastName` varchar(255) NOT NULL,
   `password` varchar(8) NOT NULL,
   `userName` varchar(20) NOT NULL,
   PRIMARY KEY (`id`)
 ) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=latin1;

早些时候,当我运行命令docker-compose up时,它正在创建用户ishan,它也创建了user表。但是现在,突然发生了一些事情,虽然mysql是以root用户安装的,但是新用户(ishan)并没有创建表。任何帮助表示赞赏。

以下是在启动时打印的日志:

Starting app_database_1 ... done Starting app_webserver_1 ... done Attaching to app_database_1, app_webserver_1 database_1 | 2019-04-09T08:30:51.326732Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). database_1 | 2019-04-09T08:30:51.327850Z 0 [Note] mysqld (mysqld 5.7.25) starting as process 1 ... database_1 | 2019-04-09T08:30:51.330081Z 0 [Note] InnoDB: PUNCH HOLE support available database_1 | 2019-04-09T08:30:51.330114Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins database_1 | 2019-04-09T08:30:51.330118Z 0 [Note] InnoDB: Uses event mutexes database_1 | 2019-04-09T08:30:51.330121Z 0 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier database_1 | 2019-04-09T08:30:51.330125Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 database_1 | 2019-04-09T08:30:51.330127Z 0 [Note] InnoDB: Using Linux native AIO database_1 | 2019-04-09T08:30:51.330295Z 0 [Note] InnoDB: Number of pools: 1 database_1 | 2019-04-09T08:30:51.330382Z 0 [Note] InnoDB: Using CPU crc32 instructions database_1 | 2019-04-09T08:30:51.331394Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M database_1 | 2019-04-09T08:30:51.336481Z 0 [Note] InnoDB: Completed initialization of buffer pool database_1 | 2019-04-09T08:30:51.338022Z 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority(). database_1 | 2019-04-09T08:30:51.356556Z 0 [Note] InnoDB: Highest supported file format is Barracuda. database_1 | 2019-04-09T08:30:51.372677Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables database_1 | 2019-04-09T08:30:51.372933Z 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... database_1 | 2019-04-09T08:30:51.398496Z 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB. database_1 | 2019-04-09T08:30:51.399884Z 0 [Note] InnoDB: 96 redo rollback segment(s) found. 96 redo rollback segment(s) are active. database_1 | 2019-04-09T08:30:51.399990Z 0 [Note] InnoDB: 32 non-redo rollback segment(s) are active. database_1 | 2019-04-09T08:30:51.400792Z 0 [Note] InnoDB: 5.7.25 started; log sequence number 12359503 database_1 | 2019-04-09T08:30:51.401039Z 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool database_1 | 2019-04-09T08:30:51.401382Z 0 [Note] Plugin 'FEDERATED' is disabled. database_1 | 2019-04-09T08:30:51.419097Z 0 [Note] Found ca.pem, server-cert.pem and server-key.pem in data directory. Trying to enable SSL support using them. database_1 | 2019-04-09T08:30:51.421195Z 0 [Warning] CA certificate ca.pem is self signed. database_1 | 2019-04-09T08:30:51.423199Z 0 [Note] Server hostname (bind-address): '*'; port: 3306 database_1 | 2019-04-09T08:30:51.423332Z 0 [Note] IPv6 is available. database_1 | 2019-04-09T08:30:51.423468Z 0 [Note] - '::' resolves to '::'; database_1 | 2019-04-09T08:30:51.423622Z 0 [Note] Server socket created on IP: '::'. database_1 | 2019-04-09T08:30:51.430839Z 0 [Warning] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory. database_1 | 2019-04-09T08:30:51.434012Z 0 [Note] InnoDB: Buffer pool(s) load completed at 190409 8:30:51 database_1 | 2019-04-09T08:30:51.437767Z 0 [Warning] 'user' entry 'root@localhost' ignored in --skip-name-resolve mode. database_1 | 2019-04-09T08:30:51.437887Z 0 [Warning] 'user' entry 'mysql.session@localhost' ignored in --skip-name-resolve mode. database_1 | 2019-04-09T08:30:51.438037Z 0 [Warning] 'user' entry 'mysql.sys@localhost' ignored in --skip-name-resolve mode. database_1 | 2019-04-09T08:30:51.438612Z 0 [Warning] 'db' entry 'performance_schema mysql.session@localhost' ignored in --skip-name-resolve mode. database_1 | 2019-04-09T08:30:51.438712Z 0 [Warning] 'db' entry 'sys mysql.sys@localhost' ignored in --skip-name-resolve mode. database_1 | 2019-04-09T08:30:51.439004Z 0 [Warning] 'proxies_priv' entry '@ root@localhost' ignored in --skip-name-resolve mode. database_1 | 2019-04-09T08:30:51.451035Z 0 [Warning] 'tables_priv' entry 'user mysql.session@localhost' ignored in --skip-name-resolve mode. database_1 | 2019-04-09T08:30:51.451161Z 0 [Warning] 'tables_priv' entry 'sys_config mysql.sys@localhost' ignored in --skip-name-resolve mode. database_1 | 2019-04-09T08:30:51.484566Z 0 [Note] Event Scheduler: Loaded 0 events database_1 | 2019-04-09T08:30:51.485090Z 0 [Note] mysqld: ready for connections. database_1 | Version: '5.7.25' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server (GPL)

docker docker-compose dockerfile
1个回答
0
投票

很可能你的音量仍然存在,因此MySQL忽略了入口点文件夹。您需要在运行之间删除卷才能重新开始。请注意,这意味着在此期间丢失保存在mysql中的数据。

docker-compose down
# this will clean all volumes not in use by any containers
docker volume prune

运行docker volume ls以确保您的音量消失,然后再次运行您的docker-compose。

© www.soinside.com 2019 - 2024. All rights reserved.