The setup is similar to setting up MariaDB.
Start with standard docker-compose file. If using custom SQL mode, specify the necessary options in the command options:
version: "3.7"
services:
mysql:
build:
context: .
dockerfile: dev.dockerfile
restart: always
command: --sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE"
environment:
MYSQL_ROOT_PASSWORD: root_password
MYSQL_DATABASE: dev
MYSQL_USER: dev_user
MYSQL_PASSWORD: dev_password
ports:
- 3306:3306
Add dev.dockerfile
:
FROM mysql:8.0.17
ADD init.sql /docker-entrypoint-initdb.d/ddl.sql
Finally, add your init.sql
file. Let’s give all privileges to our dev_user
and switch the default caching_sha2_password to mysql_native_password (don’t do it unless you rely on older packages that require the less secure au
Finally, add your init.sql
file. Let’s give all privileges to our dev_user
and switch the default caching_sha2_password to mysql_native_password (don’t do it unless you rely on older packages that require the less secure mysql_native_password authentication method):
GRANT ALL PRIVILEGES ON *.* TO 'dev_user'@'%';
ALTER USER 'dev_user'@'%' IDENTIFIED WITH mysql_native_password BY 'dev_password';
If you want to access the database container from other containers, while running them separately, you can specify host.docker.internal
as the host address of your database.