百胜将Percona从5.6.25-rel73.1更新到5.6.26-rel74.0会导致服务器无法启动

时间:2015-09-29 22:36:51

标签: mysql centos percona

在CentOS 6.7 yum下运行更新Percona服务器会使其处于无法启动的状态。

这来自log /var/log/mysqld.log

150929 14:54:17 mysqld_safe Starting mysqld daemon with databases from /srv/mysql
2015-09-29 14:54:18 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2015-09-29 14:54:18 0 [Note] /usr/sbin/mysqld (mysqld 5.6.26-74.0) starting as process 17130 ...
2015-09-29 14:54:18 17130 [Note] Plugin 'FEDERATED' is disabled.
2015-09-29 14:54:18 17130 [Note] InnoDB: Using atomics to ref count buffer pool pages
2015-09-29 14:54:18 17130 [Note] InnoDB: The InnoDB memory heap is disabled
2015-09-29 14:54:18 17130 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2015-09-29 14:54:18 17130 [Note] InnoDB: Memory barrier is not used
2015-09-29 14:54:18 17130 [Note] InnoDB: Compressed tables use zlib 1.2.3
2015-09-29 14:54:18 17130 [Note] InnoDB: Using Linux native AIO
2015-09-29 14:54:18 17130 [Note] InnoDB: Using CPU crc32 instructions
2015-09-29 14:54:18 17130 [Note] InnoDB: Initializing buffer pool, size = 3.0G
2015-09-29 14:54:18 17130 [Note] InnoDB: Completed initialization of buffer pool
2015-09-29 14:54:18 17130 [Note] InnoDB: Highest supported file format is Barracuda.
2015-09-29 14:54:18 17130 [ERROR] InnoDB: Tried to read 4096 bytes at offset 286720. Was only able to read 0.
2015-09-29 14:54:18 7fe0f5f847e0  InnoDB: Operating system error number 22 in a file operation.
InnoDB: Error number 22 means 'Invalid argument'.
InnoDB: Some operating system error numbers are described at
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/operating-system-error-codes.html
2015-09-29 14:54:18 17130 [ERROR] InnoDB: File (unknown): 'read' returned OS error 122. Cannot continue operation
150929 14:54:18 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

my.cnf看起来像这样:

[mysqld]
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
innodb_track_changed_pages = true
pid-file=/var/run/mysqld/mysqld.pid

# use interleaved id creation during bulk inserts
# w/o this bulk inserts are serialized
innodb_autoinc_lock_mode=2

innodb_log_file_size = 2000M
innodb_flush_method = O_DIRECT
#innodb_buffer_pool_size = 80G
innodb_buffer_pool_size = 5G
transaction-isolation=READ-COMMITTED

innodb_file_per_table=1
default-storage-engine = InnoDB
innodb_file_format = Barracuda

罪魁祸首似乎就是这句话:

innodb_track_changed_pa​​ges = true

1 个答案:

答案 0 :(得分:0)

为了解决这个问题......

  1. 我们将innodb_track_changed_pages更改为false
  2. 停止服务器
  3. 手动删除mysql目录中的ib_modified_log*个文件
  4. 启动服务器
  5. innodb_track_changed_pages更改为true
  6. 重新启动服务器
  7. 这似乎是一个错误。