Skip to content

Instantly share code, notes, and snippets.

@nolta
Last active December 16, 2015 18:39
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save nolta/5479184 to your computer and use it in GitHub Desktop.
Save nolta/5479184 to your computer and use it in GitHub Desktop.
Notes on installing mysql 5.6 on ubuntu 10.04, and configuring for GTID replication.

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;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment