Docker Community Forums

Share and learn in the Docker community.

Installing Percona: ERROR: 1031 Table storage engine for 'db' doesn't have this option

docker

(Create232) #1

I am having one heck of a time getting Percona 5.6 running right. Here are the relevant lines of my Dockerfile:

FROM centos:6.9

COPY config /etc/selinux/config

RUN echo 0 > /selinux/enforce

RUN yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm -y

RUN yum install Percona-Server-server-56 -y;

RUN mysql_install_db; exit 0

The error I get is:

Step 29/38 : RUN mysql_install_db; exit 0
—> Running in 67e7a47b859c
Installing MySQL system tables…2018-01-30 14:56:13 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-01-30 14:56:13 0 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
2018-01-30 14:56:13 0 [Note] /usr/sbin/mysqld (mysqld 5.6.38-83.0) starting as process 8 …
2018-01-30 14:56:13 8 [Note] InnoDB: innodb_empty_free_list_algorithm has been changed to legacy because of small buffer pool size. In order to use backoff, increase buffer pool at least up to 20MB.

2018-01-30 14:56:13 8 [Note] InnoDB: Using atomics to ref count buffer pool pages
2018-01-30 14:56:13 8 [Note] InnoDB: The InnoDB memory heap is disabled
2018-01-30 14:56:13 8 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2018-01-30 14:56:13 8 [Note] InnoDB: Memory barrier is not used
2018-01-30 14:56:13 8 [Note] InnoDB: Compressed tables use zlib 1.2.3
2018-01-30 14:56:13 8 [Note] InnoDB: Using Linux native AIO
2018-01-30 14:56:13 8 [Note] InnoDB: Using CPU crc32 instructions
2018-01-30 14:56:13 8 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2018-01-30 14:56:13 8 [Note] InnoDB: Completed initialization of buffer pool
2018-01-30 14:56:13 8 [Note] InnoDB: Highest supported file format is Barracuda.
2018-01-30 14:56:13 8 [Note] InnoDB: 128 rollback segment(s) are active.
2018-01-30 14:56:13 8 [Note] InnoDB: Waiting for purge to start
2018-01-30 14:56:13 8 [Note] InnoDB: Percona XtraDB (http://www.percona.com) 5.6.38-83.0 started; log sequence number 1632006
2018-01-30 14:56:13 8 [Note] RSA private key file not found: /var/lib/mysql//private_key.pem. Some authentication plugins will not work.
2018-01-30 14:56:13 8 [Note] RSA public key file not found: /var/lib/mysql//public_key.pem. Some authentication plugins will not work.
ERROR: 1031 Table storage engine for ‘db’ doesn’t have this option
2018-01-30 14:56:13 8 [ERROR] Aborting

2018-01-30 14:56:13 8 [Note] Binlog end
2018-01-30 14:56:13 8 [Note] InnoDB: FTS optimize thread exiting.
2018-01-30 14:56:13 8 [Note] InnoDB: Starting shutdown…
2018-01-30 14:56:14 8 [Note] InnoDB: Waiting for page_cleaner to finish flushing of buffer pool
2018-01-30 14:56:16 8 [Note] InnoDB: Shutdown completed; log sequence number 1632016
2018-01-30 14:56:16 8 [Note] /usr/sbin/mysqld: Shutdown complete

If I try to force another start, the error message is more verbose:

Fatal error: Can’t open and lock privilege tables: Table storage engine for ‘user’ doesn’t have this option

I have searched and found this happens a lot, but no recommended solution has worked for me. I have tried changing every perm, touched every mysql file, chgroup, etc… I am not having any luck building this container. Any ideas are welcomed!


(Create232) #2

So I did figure this out. As other pages tell you:

RUN find /var/lib/mysql -type f -exec touch {} ;

Should be executed, BUT it must also have this:

RUN find /var/lib/mysql -type f -exec touch {} ; && mysql_install_db

The same goes for when you are starting the server.