So the other day I performed an upgrade of MySQL on a linode and notice that it wont start if I kept my old my.cnf file.
[11:47:06] user@linode1: ~ $ echo 'SHOW VARIABLES LIKE "%version%";' | mysql -u username -ppassword | grep innodb innodb_version 5.5.31 [11:47:20] user@linode1: ~ $
131022 08:17:56 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 131022 8:17:56 [ERROR] An old style --language value with language specific part detected: /usr/share/mysql/english/ 131022 8:17:56 [ERROR] Use --lc-messages-dir without language specific part instead. 131022 8:17:56 [Note] Plugin 'FEDERATED' is disabled. 131022 8:17:56 InnoDB: The InnoDB memory heap is disabled 131022 8:17:56 InnoDB: Mutexes and rw_locks use GCC atomic builtins 131022 8:17:56 InnoDB: Compressed tables use zlib 1.2.7 131022 8:17:56 InnoDB: Using Linux native AIO 131022 8:17:56 InnoDB: Initializing buffer pool, size = 128.0M 131022 8:17:56 InnoDB: Completed initialization of buffer pool 131022 8:17:56 InnoDB: highest supported file format is Barracuda. 131022 8:17:56 InnoDB: Waiting for the background threads to start 131022 8:17:57 InnoDB: 5.5.31 started; log sequence number 1678395 131022 8:17:57 [ERROR] /usr/sbin/mysqld: unknown variable 'master-host=192.168.140.120' 131022 8:17:57 [ERROR] Aborting
Thing is the replication entries in my.cnf need to be removed/commented out and salve needs to be set up from MySQL console.
So here is my new my.cnf.
[11:34:25] xavi@linode1: ~ $ sudo grep -v “^#” /etc/mysql/my.cnf | grep -v “^$”
[client] port = 3306 socket = /var/run/mysqld/mysqld.sock [mysqld_safe] socket = /var/run/mysqld/mysqld.sock nice = 0 [mysqld] server-id = 2 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 language = /usr/share/mysql/english skip-external-locking bind-address = 192.168.137.234 key_buffer = 16M max_allowed_packet = 16M thread_stack = 128K thread_cache_size = 8 myisam-recover = BACKUP query_cache_limit = 1M query_cache_size = 16M expire_logs_days = 10 max_binlog_size = 100M [mysqldump] quick quote-names max_allowed_packet = 16M [mysql] [isamchk] key_buffer = 16M !includedir /etc/mysql/conf.d/
[11:34:37] xavi@linode1: ~ $
We load the above file or similar depending on your configuration. Now to configure slave we log into the MySQL CLI.
mysql> STOP SLAVE;
mysql> CHANGE MASTER TO MASTER_HOST=’192.168.140.120′, MASTER_USER=’replication-user’, MASTER_PASSWORD=’password’, MASTER_LOG_FILE=’mysql-bin.000747′, MASTER_LOG_POS=75797;
mysql> START SLAVE;
[/text]
That’s it.