-
-
Save w0rldart/aa472db45c3817d937a1870a32f77820 to your computer and use it in GitHub Desktop.
version: '3.1' | |
services: | |
db: | |
image: mariadb | |
restart: always | |
command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci --init-connect='SET NAMES UTF8;' --innodb-flush-log-at-trx-commit=0 | |
ports: | |
- 3306:3306 | |
environment: | |
- MYSQL_ROOT_PASSWORD=example | |
- MYSQL_DATABASE=test | |
- MYSQL_USER=testuser | |
- MYSQL_PASSWORD=testpassword |
thanks
thanks
Hakuna Matata
This doesn't work for me for any magic reason. My tables collations and collation of connection is still latin1_swedish_ci, although collation_server is utf8_unicode_ci. I solved it by setting this options to mysql config file directly (my.cnf).
my.cnf:
[mysqld]
init_connect=‘SET collation_connection = utf8_unicode_ci’
character-set-server = utf8
collation-server = utf8_unicode_ci
[client]
default-character-set = utf8
docker-compose.yml:
version: '3.1'
services:
db:
image: mariadb
restart: always
ports:
- 3306:3306
environment:
- MYSQL_ROOT_PASSWORD=example
- MYSQL_DATABASE=test
- MYSQL_USER=testuser
- MYSQL_PASSWORD=testpassword
volumes:
- ./my.cnf:/etc/mysql/my.cnf
p.s. my.cnf is placed near docker-compose.yml in this example. You can put it in another folder, but you should change path in volumes part
This didn't work for me sadly, first method just causes the container to fail with Can't create test file /opt/bitnami/mariadb/data/97647bac093c.lower-test
. Second method has no effect.
I have a UTF-8 SQL dump that includes emojis.
Try using the image mariadb as described in gist. Bitnami could have some customization, which might be incompatible with example above
does not work for me
2024-09-02 09:01:44+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:11.5.2+maria~ubu2404 started.
2024-09-02 09:01:44+00:00 [ERROR] [Entrypoint]: mariadbd failed while attempting to check config
command was: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci --init-connect=SET NAMES UTF8; --innodb-flush-log-at-trx-commit=0 --verbose --help
/usr/local/bin/docker-entrypoint.sh: line 105: mysqld: command not found
2024-09-02 09:01:45+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:11.5.2+maria~ubu2404 started.
2024-09-02 09:01:45+00:00 [ERROR] [Entrypoint]: mariadbd failed while attempting to check config
command was: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci --init-connect=SET NAMES UTF8; --innodb-flush-log-at-trx-commit=0 --verbose --help
/usr/local/bin/docker-entrypoint.sh: line 105: mysqld: command not found
2024-09-02 09:01:46+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:11.5.2+maria~ubu2404 started.
2024-09-02 09:01:46+00:00 [ERROR] [Entrypoint]: mariadbd failed while attempting to check config
command was: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci --init-connect=SET NAMES UTF8; --innodb-flush-log-at-trx-commit=0 --verbose --help
/usr/local/bin/docker-entrypoint.sh: line 105: mysqld: command not found
2024-09-02 09:01:47+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:11.5.2+maria~ubu2404 started.
2024-09-02 09:01:47+00:00 [ERROR] [Entrypoint]: mariadbd failed while attempting to check config
command was: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci --init-connect=SET NAMES UTF8; --innodb-flush-log-at-trx-commit=0 --verbose --help
/usr/local/bin/docker-entrypoint.sh: line 105: mysqld: command not found
2024-09-02 09:01:48+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:11.5.2+maria~ubu2404 started.
2024-09-02 09:01:48+00:00 [ERROR] [Entrypoint]: mariadbd failed while attempting to check config
command was: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci --init-connect=SET NAMES UTF8; --innodb-flush-log-at-trx-commit=0 --verbose --help
/usr/local/bin/docker-entrypoint.sh: line 105: mysqld: command not found
2024-09-02 09:01:50+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:11.5.2+maria~ubu2404 started.
2024-09-02 09:01:50+00:00 [ERROR] [Entrypoint]: mariadbd failed while attempting to check config
command was: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci --init-connect=SET NAMES UTF8; --innodb-flush-log-at-trx-commit=0 --verbose --help
/usr/local/bin/docker-entrypoint.sh: line 105: mysqld: command not found
2024-09-02 09:01:54+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:11.5.2+maria~ubu2404 started.
2024-09-02 09:01:54+00:00 [ERROR] [Entrypoint]: mariadbd failed while attempting to check config
command was: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci --init-connect=SET NAMES UTF8; --innodb-flush-log-at-trx-commit=0 --verbose --help
/usr/local/bin/docker-entrypoint.sh: line 105: mysqld: command not found
2024-09-02 09:02:01+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:11.5.2+maria~ubu2404 started.
2024-09-02 09:02:01+00:00 [ERROR] [Entrypoint]: mariadbd failed while attempting to check config
command was: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci --init-connect=SET NAMES UTF8; --innodb-flush-log-at-trx-commit=0 --verbose --help
/usr/local/bin/docker-entrypoint.sh: line 105: mysqld: command not found
2024-09-02 09:02:14+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:11.5.2+maria~ubu2404 started.
2024-09-02 09:02:14+00:00 [ERROR] [Entrypoint]: mariadbd failed while attempting to check config
command was: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci --init-connect=SET NAMES UTF8; --innodb-flush-log-at-trx-commit=0 --verbose --help
/usr/local/bin/docker-entrypoint.sh: line 105: mysqld: command not found
the mariadb docker image doesn't use 'mysqld' as a startingpoint, but 'mariadbd'.
(the same is for the client, it isn't 'mysql', but 'mariadb')
appending command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
to the docker file won't work.
command: mariadbd --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
will work.
Better is to use the line below; it works both on mariadb and mysql.
command: ['--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci']
This doesn't work for me for any magic reason. My tables collations and collation of connection is still latin1_swedish_ci, although collation_server is utf8_unicode_ci. I solved it by setting this options to mysql config file directly (my.cnf).
my.cnf:
[mysqld] init_connect=‘SET collation_connection = utf8_unicode_ci’ character-set-server = utf8 collation-server = utf8_unicode_ci [client] default-character-set = utf8
docker-compose.yml:
version: '3.1' services: db: image: mariadb restart: always ports: - 3306:3306 environment: - MYSQL_ROOT_PASSWORD=example - MYSQL_DATABASE=test - MYSQL_USER=testuser - MYSQL_PASSWORD=testpassword volumes: - ./my.cnf:/etc/mysql/my.cnf
p.s. my.cnf is placed near docker-compose.yml in this example. You can put it in another folder, but you should change path in volumes part
This worked for me too. Just a little note, you need to use SINGLE QUOTES around for the line init_connect=‘SET collation_connection = utf8_unicode_ci’
. Thanks mate.
👍