MySQL 5.1 Replication

To configure data replication between 2 MySQL system, we can follow MySQL 5.1 Replication HOWTO document. If the master system is a current production database system, we should stop and copy database files on /var/lib/mysql to new system, and follow documentation to modify the MySQL config files.

[mysqld]
log-bin=mysql-bin
server-id=1

For InnoDB:
[mysqld]
sync_binlog=1
[innodb]
innodb_flush_log_at_trx_commit=1

On the slave system, we can follow slave base config documentation to do the configuration, and restore database files copied from existing system to local /var/lib/mysql/ directory.

[mysqld]
server-id=2

【Ubuntu 12.04】AppArmor 令 MySQL 不能啟動

上星期把 netbook 的 Ubuntu 升級到 12.04 後,發現不能啟動 MySQL server,然後在 /var/log/syslog 內發現以下一行 log。

Sep 11 16:01:36 potter kernel: [ 2463.153201] type=1400 audit(1347350496.093:36): apparmor=”DENIED” operation=”mknod” parent=6583 profile=”/usr/sbin/mysqld” name=”/run/mysqld/mysqld.sock” pid=6622 comm=”mysqld” requested_mask=”c” denied_mask=”c” fsuid=114 ouid=114

在網上看過這篇文章後,只需在 /etc/apparmor.d/usr.sbin.mysqld 內,把以下 mysqld 相關兩行修改 (或直接加入),便能修正問題。

/var/run/mysqld/mysqld.pid w,
/var/run/mysqld/mysqld.sock w,

改為:

/run/mysqld/mysqld.pid w,
/run/mysqld/mysqld.sock w,

最後只需 sudo service mysql restart 重新啟動便可。如果不能,可以執行 sudo service apparmor restart 然後再試。