Question

I have been trying some optimizations of the mysql database on the server. I went through the wizard at Percona tools and took the my.cnf they gave me. Everytime I go to restart the mysql with that file it doesn't work. I already changed the locations of the socket and pid to match the old one. Here's what I have.

Old my.cnf file.

#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

# This will be passed to all mysql clients
# It has been reported that passwords should be enclosed with ticks/quotes
# escpecially if they contain "#" chars...
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
[client]
port          = 3306
socket          = /var/run/mysqld/mysqld.sock

# Here is entries for some specific programs
# The following values assume you have at least 32M ram

# This was formally known as [safe_mysqld]. Both versions are currently parsed.
[mysqld_safe]
socket          = /var/run/mysqld/mysqld.sock
nice          = 0

[mysqld]
#
# * Basic Settings
#
user          = mysql
pid-file     = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port          = 3306
basedir          = /usr
datadir          = /var/lib/mysql
tmpdir          = /tmp
lc-messages-dir     = /usr/share/mysql
skip-external-locking
#
# Additional Settings
max_connections=500
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address          = lcscourses.net
#
# * Fine Tuning
#
key_buffer          = 64M
max_allowed_packet     = 64M
thread_stack          = 768K
thread_cache_size       = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover         = BACKUP
max_connections        = 500
#table_cache            = 64
#thread_concurrency     = 10
#
# * Query Cache Configuration
#
query_cache_limit     = 16M
query_cache_size        = 64M
#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the log at runtime!
#general_log_file        = /var/log/mysql/mysql.log
#general_log             = 1
#
# Error log - should be very few entries.
#
log_error = /var/log/mysql/error.log
#
# Here you can see queries with especially long duration
#log_slow_queries     = /var/log/mysql/mysql-slow.log
#long_query_time = 2
#log-queries-not-using-indexes
#
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
#       other settings you may need to change.
#server-id          = 1
#log_bin               = /var/log/mysql/mysql-bin.log
expire_logs_days     = 10
max_binlog_size         = 10M
binlog_do_db          = include_database_name
#binlog_ignore_db     = include_database_name
#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
#
innodb_buffer_pool_size=256M
innodb_additional_mem_pool_size=20M
# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /var/lib/mysql/
#
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem



[mysqldump]
quick
quote-names
max_allowed_packet     = 32M

[mysql]
#no-auto-rehash     # faster start of mysql but no tab completition

[isamchk]
key_buffer          = 16M

#
# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
#
!includedir /etc/mysql/conf.d/ 

New my.cnf file

[mysql]

# CLIENT #
port                           = 3306
socket                         = /var/run/mysqld/mysqld.sock

[mysqld]

# GENERAL #
user                           = mysql
default-storage-engine         = InnoDB
socket                         = /var/run/mysqld/mysqld.sock
pid-file                       = /var/run/mysqld/mysqld.pid

# MyISAM #
key-buffer-size                = 32M
myisam-recover                 = FORCE,BACKUP

# SAFETY #
max-allowed-packet             = 16M
max-connect-errors             = 1000000

# DATA STORAGE #
datadir                        = /var/lib/mysql/

# BINARY LOGGING #
log-bin                        = /var/log/mysql/mysql-bin.log
expire-logs-days               = 14
sync-binlog                    = 1

# CACHES AND LIMITS #
tmp-table-size                 = 32M
max-heap-table-size            = 32M
query-cache-type               = 0
query-cache-size               = 0
max-connections                = 500
thread-cache-size              = 50
open-files-limit               = 65535
table-definition-cache         = 4096
table-open-cache               = 4096

# INNODB #
innodb-flush-method            = O_DIRECT
innodb-log-files-in-group      = 2
innodb-log-file-size           = 128M
innodb-flush-log-at-trx-commit = 1
innodb-file-per-table          = 1
innodb-buffer-pool-size        = 2G

# LOGGING #
log-error                      = /var/log/mysql/error.log
log-queries-not-using-indexes  = 1
slow-query-log                 = 1
slow-query-log-file            = /var/lib/mysql/mysql-slow.log 

Error log after trying restart

140123 10:56:30 [Note] /usr/sbin/mysqld: Shutdown complete

140123 10:56:31 [Note] Plugin 'FEDERATED' is disabled.
140123 10:56:31 InnoDB: The InnoDB memory heap is disabled
140123 10:56:31 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140123 10:56:31 InnoDB: Compressed tables use zlib 1.2.3.4
140123 10:56:31 InnoDB: Initializing buffer pool, size = 1.0G
140123 10:56:31 InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 134217728 bytes!
140123 10:56:31 [ERROR] Plugin 'InnoDB' init function returned error.
140123 10:56:31 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
140123 10:56:31 [ERROR] Unknown/unsupported storage engine: InnoDB
140123 10:56:31 [ERROR] Aborting
Was it helpful?

Solution

You need to remove old innodb log files as size is being changed in new my.cnf

In light of this, just perform the following steps:

Start MySQL with old my.cnf take backup for safer side and then do the following

1. mysql -uroot -p... -e"SET GLOBAL innodb_fast_shutdown = 0"
2. service mysql stop
rm -f /var/lib/mysql/ib_logfile[01]
3. service mysql start

Step 3 will recreate ib_logfile0 and ib_logfile1
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top