Install prerequisites:
$ sudo apt-get install libaio1
Download the DEB package from http://dev.mysql.com/downloads/mysql/, and install:
$ sudo dpkg -i mysql-5.6.12-debian6.0-x86_64.deb
$ sudo chown -R root.root /opt/mysql/server-5.6
Create mysql
user:
$ sudo groupadd mysql
$ sudo useradd -r -g mysql mysql
Create and initialize data directory:
$ DATADIR=/path/to/mysql
$ sudo mkdir -p $DATADIR
$ sudo chown mysql.mysql $DATADIR
$ cd /opt/mysql/server-5.6
$ sudo ./scripts/mysql_install_db --user=mysql --datadir=$DATADIR --random-passwords
$ sudo rm my.cnf
The root password will be written to ~/.mysql_secret
.
Configure:
$ sudo sh -c "cat >/etc/my.cnf" <<EOF
[mysqld]
basedir = /opt/mysql/server-5.6
binlog-format = MIXED
datadir = $DATADIR
enforce-gtid-consistency
gtid-mode = ON
log-bin
log-slave-updates
master-info-repository = TABLE
master-verify-checksum = 1
relay-log-info-repository = TABLE
relay-log-recovery = 1
server-id = ....
slave-sql-verify-checksum = 1
sql-mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
EOF
Start server:
$ sudo cp /opt/mysql/server-5.6/support-files/mysql.server /etc/init.d/
$ sudo update-rc.d mysql.server defaults
$ sudo service mysql.server start
(master) Change root password, and cleanup installation:
$ cd /opt/mysql/server-5.6
$ sudo ./bin/mysql_secure_installation
(master) Add replication user, and partially secure database:
mysql> grant replication slave on *.* TO 'replicant'@'%.example.com' identified by '<password>';
(slave) Point to master and start replicating:
mysql> set password = password('....');
mysql> change master to
master_host = '<host>',
master_port = '<port>',
master_user = 'replicant',
master_password = '<password>',
master_auto_position = 1;
mysql> start slave;