---
# System prepended metadata

title: mysql主从复制实例
tags: [mysql]

---

# mysql主从复制实例
---

我们在本地搭建主从服务器，首先得启动多个Mysql实例
默认安装的Mysql配置再/etc/mysql/my.cnf，端口3306
那下面我们在启动一个3301端口的实例

复制一份配置

cp /etc/mysql/my.cnf my_3301.cnf


创建一个给3301实例使用的文件夹

mkdir /home/mysql/3301
chown mysql:mysql  /home/mysql/ -R


修改配置

[client]
port        = 3301
socket      = /home/mysql/3301/mysqld.sock

[mysqld_safe]
socket      = /home/mysql/3301/mysqld.sock

[mysqld]
user        = mysql
pid-file    = /home/mysql/3301/mysqld.pid
socket      = /home/mysql/3301/mysqld.sock
port        = 3301
basedir     = /usr
datadir     = /var/lib/mysql_3301
tmpdir      = /tmp


初始化数据库

sudo mysql_install_db  --defaults-file=/etc/mysql/my_3301.cnf  --basedir=/usr/  --datadir=/var/lib/mysql_3301  --user=mysql

5.启动MySql, 要指定.cnf文件启动
 sudo mysqld_safe --defaults-file=/etc/mysql/my_3301.cnf --user=mysql

看看我们的成果：
[/home/mysql]$ ps aux|grep 3301
root     14554  0.0  0.0  75556  1232 ?        S    11:26   0:00 sudo mysqld_safe --defaults-file=/etc/mysql/my_3301.cnf --user=mysql
root     14555  0.0  0.0   4440   628 ?        S    11:26   0:00 /bin/sh /usr/bin/mysqld_safe --defaults-file=/etc/mysql/my_3301.cnf --user=mysql
mysql    15159  0.0  0.2 698928 42592 ?        Sl   11:28   0:14 /usr/sbin/mysqld --defaults-file=/etc/mysql/my_3301.cnf --basedir=/usr --datadir=/var/lib/mysql_3301 --plugin-dir=/usr/lib/mysql/plugin --user=mysql --log-error=/home/mysql/3301/log/error.log --pid-file=/home/mysql/3301/mysqld.pid --socket=/home/mysql/3301/mysqld.sock --port=3301
lidongw+ 15189  0.0  0.0 107352  1900 pts/1    S+   11:28   0:00 mysql -S /home/mysql/3301/mysqld.sock -uroot -px xxxx
lidongw+ 27141  0.0  0.0  18304  1024 pts/13   S+   18:42   0:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=.cvs --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn 3301


登录mysql的shell

mysql -S /home/mysql/3301/mysqld.sock -uroot -p123456
远程的加上ip 端口
mysql -S /home/mysql/3301/mysqld.sock -uroot -p123456 -h localhost  -P 3307


如果上面启动有问题，那就是apparmor的配置问题:

vim /etc/apparmor.d/usr.sbin.mysqld

添加新的Mysql实例上面配置的datadir目录进去，这样才能让实例正确找到目录
  /var/lib/mysql_3301/ r,
  /var/lib/mysql_3301/** rwk,

保存重启
service apparmor restart

至此，已经成功运行多一个监听3301的MySql实例，可以为Mysql复制做准备

###### tags: `mysql`