Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Docker-compose: Database is uninitialized

I have a problem with docker-compose and mysql:

docker-compose.yml

version: '2'    services:    db:     image: mysql     volumes:       - "./sito/db/:/var/lib/mysql"     ports:       - "3306:3306"     restart: always     environment:       MYSQL_ROOT_PASSWORD:     app:     depends_on:       - db     image: eboraas/apache-php     links:       - db     ports:       - "80:80"     volumes:       - ./sito/:/var/www/html/ 

An error occurred when I compose this container:

Recreating phpapp_phpapache_1 Attaching to phpapp_db_1, phpapp_phpapache_1 db_1 | error: database is uninitialized and password option is not specified  db_1 | You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD phpapache_1 | AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.30.0.3. Set the 'ServerName' directive globally to suppress this message phpapp_db_1 exited with code 1 db_1 | error: database is uninitialized and password option is not specified  db_1 | You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD db_1 | error: database is uninitialized and password option is not specified  db_1 | You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD db_1 | error: database is uninitialized and password option is not specified  db_1 | You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD db_1 | error: database is uninitialized and password option is not specified 

But the database don't have a password. How can I solve it?

like image 246
Stefano Avatar asked Sep 24 '16 16:09

Stefano


People also ask

What is Mysql_random_root_password?

MYSQL_RANDOM_ROOT_PASSWORD. This is an optional variable. Set to a non-empty value, like yes , to generate a random initial password for the root user (using pwgen ). The generated root password will be printed to stdout ( GENERATED ROOT PASSWORD: ..... ).

What Docker compose up does?

The docker compose up command aggregates the output of each container (like docker compose logs --follow does). When the command exits, all containers are stopped. Running docker compose up --detach starts the containers in the background and leaves them running.


1 Answers

According the documentation, instead of MYSQL_ROOT_PASSWORD: you have to use - and = and also you should use a 'password' The result it will be:

- MYSQL_ROOT_PASSWORD=some_password

In your example:

version: '2'    services:    db:     image: mysql     volumes:       - "./sito/db/:/var/lib/mysql"     ports:       - "3306:3306"     restart: always     environment:       - MYSQL_ROOT_PASSWORD=some_password 
like image 186
mayo Avatar answered Sep 19 '22 23:09

mayo