Percona Server 5.7 fails to install


I’m trying to upgrade my (perfectly working) Percona Server 5.6 to 5.7, but after upgrading MySQL doesn’t start and getting several errors. I already tried to temporary move my data_dir so a new one gets created, the directory is created but MySQL won’t start either :frowning:

Problems occur on Ubuntu 14.04.4 x64

Some lines from mysql.err

160224 19:41:47 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
2016-02-24T18:41:47.831167Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 5000)
2016-02-24T18:41:47.831508Z 0 [Warning] Changed limits: table_open_cache: 491 (requested 512)
2016-02-24T18:41:48.103342Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2016-02-24T18:41:48.103407Z 0 [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
2016-02-24T18:41:48.103432Z 0 [Warning] 'NO_AUTO_CREATE_USER' sql mode was not set.
2016-02-24T18:41:48.104425Z 0 [Note] /usr/sbin/mysqld (mysqld 5.7.10-3-log) starting as process 3371 ...
2016-02-24T18:41:48.203909Z 0 [Note] InnoDB: PUNCH HOLE support available
2016-02-24T18:41:48.204018Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2016-02-24T18:41:48.204051Z 0 [Note] InnoDB: Uses event mutexes
2016-02-24T18:41:48.204087Z 0 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
2016-02-24T18:41:48.204118Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.8
2016-02-24T18:41:48.204148Z 0 [Note] InnoDB: Using Linux native AIO
2016-02-24T18:41:48.207813Z 0 [Note] InnoDB: Number of pools: 1
2016-02-24T18:41:48.208140Z 0 [Note] InnoDB: Not using CPU crc32 instructions
2016-02-24T18:41:48.641230Z 0 [Note] InnoDB: Initializing buffer pool, total size = 1G, instances = 8, chunk size = 128M
2016-02-24T18:41:49.143414Z 0 [Note] InnoDB: Completed initialization of buffer pool
2016-02-24T18:41:49.194924Z 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
2016-02-24T18:41:49.295320Z 0 [Note] InnoDB: Highest supported file format is Barracuda.
2016-02-24T18:41:49.317413Z 0 [Warning] InnoDB: Retry attempts for reading partial data failed.
2016-02-24T18:41:49.317572Z 0 [ERROR] InnoDB: Tried to read 2048 bytes at offset 0 was only able to read0
2016-02-24T18:41:49.317645Z 0 [ERROR] InnoDB: Operating system error number 22 in a file operation.
2016-02-24T18:41:49.317727Z 0 [ERROR] InnoDB: Error number 22 means 'Invalid argument'
2016-02-24T18:41:49.317775Z 0 [Note] InnoDB: Some operating system error numbers are described at
2016-02-24T18:41:49.317829Z 0 [ERROR] InnoDB: File (unknown): 'read' returned OS error 122. Cannot continue operation
2016-02-24T18:41:49.317870Z 0 [ERROR] InnoDB: Cannot continue operation.
160224 19:41:50 mysqld_safe mysqld from pid file /var/lib/mysql/ ended

Looks like there’s a configuration directive which isn’t supported by 5.7 anymore, after completely purging my 5.6 install and a fresh 5.7 install MySQL starts

Import is running now, after this I’ll see if I can find out what directive was blocking MySQL startup

Looks like the following line was the issue

innodb_flush_method = ALL_O_DIRECT

Changed to

innodb_flush_method = O_DIRECT

Now 5.7 works perfectly