programing

MariaDB 도커 시작 실패

i4 2023. 7. 30. 17:05
반응형

MariaDB 도커 시작 실패

도커 1.13.1로 MariaDB를 시작하려고 합니다.

docker run -d --name mariadb -e MYSQL_ROOT_PASSWORD=password -p 3306:3306   -p 4567:4567/udp   -p 4567-4568:4567-4568   -p 4444:4444   -v /mnt/data/mysql:/var/lib/mysql mariadb:10.1 chown -R mysql:mysql /var/lib/mysql && mysqld --user=mysql --wsrep-new-cluster

시작 후 다음과 같은 출력이 표시됩니다.

2017-05-11 20:04:55 139780804880320 [Note] mysqld (mysqld 10.1.23-MariaDB-1~jessie) starting as process 6 ...
2017-05-11 20:04:55 139780804880320 [Note] InnoDB: Using mutexes to ref count buffer pool pages
2017-05-11 20:04:55 139780804880320 [Note] InnoDB: The InnoDB memory heap is disabled
2017-05-11 20:04:55 139780804880320 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2017-05-11 20:04:55 139780804880320 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
2017-05-11 20:04:55 139780804880320 [Note] InnoDB: Compressed tables use zlib 1.2.8
2017-05-11 20:04:55 139780804880320 [Note] InnoDB: Using Linux native AIO
2017-05-11 20:04:55 139780804880320 [Note] InnoDB: Using SSE crc32 instructions
2017-05-11 20:04:55 139780804880320 [Note] InnoDB: Initializing buffer pool, size = 256.0M
2017-05-11 20:04:55 139780804880320 [Note] InnoDB: Completed initialization of buffer pool
2017-05-11 20:04:55 139780804880320 [Note] InnoDB: The first specified data file ./ibdata1 did not exist: a new database to be created!
2017-05-11 20:04:55 139780804880320 [Note] InnoDB: Setting file ./ibdata1 size to 12 MB
2017-05-11 20:04:55 139780804880320 [Note] InnoDB: Setting log file ./ib_logfile101 size to 48 MB
2017-05-11 20:04:55 139780804880320 [Note] InnoDB: Setting log file ./ib_logfile1 size to 48 MB
2017-05-11 20:04:56 139780804880320 [Note] InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0
2017-05-11 20:04:56 139780804880320 [Warning] InnoDB: New log files created, LSN=45883
2017-05-11 20:04:56 139780804880320 [Note] InnoDB: Doublewrite buffer not found: creating new
2017-05-11 20:04:56 139780804880320 [Note] InnoDB: Doublewrite buffer created
2017-05-11 20:04:56 139780804880320 [Note] InnoDB: 128 rollback segment(s) are active.
2017-05-11 20:04:56 139780804880320 [Warning] InnoDB: Creating foreign key constraint system tables.
2017-05-11 20:04:56 139780804880320 [Note] InnoDB: Foreign key constraint system tables created
2017-05-11 20:04:56 139780804880320 [Note] InnoDB: Creating tablespace and datafile system tables.
2017-05-11 20:04:56 139780804880320 [Note] InnoDB: Tablespace and datafile system tables created.
2017-05-11 20:04:56 139780804880320 [Note] InnoDB: Waiting for purge to start
2017-05-11 20:04:56 139780804880320 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.35-80.0 started; log sequence number 0
2017-05-11 20:04:56 139780029413120 [Note] InnoDB: Dumping buffer pool(s) not yet started
2017-05-11 20:04:56 139780804880320 [Note] Plugin 'FEEDBACK' is disabled.
2017-05-11 20:04:56 139780804880320 [ERROR] Could not open mysql.plugin table. Some plugins may be not loaded
2017-05-11 20:04:56 139780804880320 [ERROR] Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist
2017-05-11 20:04:56 139780804880320 [Note] Server socket created on IP: '::'.
2017-05-11 20:04:56 139780804880320 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist

mysql 사용자가 디렉토리를 소유하고 있으며 ibdata1 및 관련 파일을 생성할 수 있습니다.다른 테이블을 만드는 데 실패했는지 또는 왜 읽지 못하는지 알 수 없습니다.

수정:

docker run -d --name mariadb -e MYSQL_ROOT_PASSWORD=password -p 3306:3306   -p 4567:4567/udp   -p 4567-4568:4567-4568   -p 4444:4444   -v /mnt/data/mysql:/var/lib/mysql mariadb:10.1 /bin/bash -c 'chown -R mysql:mysql /var/lib/mysql && mysqld --user=mysql --wsrep-new-cluster'

문제는 그 이후의 모든 것들이&&에 대한 인수로 적절하게 인용되지 않는 한 컨테이너 내부에서 명령줄로 삽입되지 않고 호스트 셸 외부에 삽입됩니다.-c/bin/ssh 옵션(/bin/sh도 유효함).

도커 이미지의 엔트리 포인트의 일부로 실행된 시작 스크립트에서 이 문제를 해결했습니다.

chmod -R ug+rw /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql
service mysql start

이렇게 하면 모든 볼륨 마운트를 피할 수 있고 일반 컨테이너에서 읽기-쓰기 계층을 사용할 수 있습니다.이것은 오픈 소스 프로젝트를 위한 개발자 컨테이너를 만들고 있기 때문에 저는 제 개발자들이 사용할 수 있는 올인원 컨테이너를 만들려고 합니다.이 문제를 해결할 수 있는 더 깨끗한 방법이 있을 수도 있지만, 저에게는 효과가 있었습니다.

언급URL : https://stackoverflow.com/questions/43924885/mariadb-docker-start-fails

반응형