MySQL主从复制,是一个MySQL的群集,可以很好的解决的单点故障,并且可以进行读写分离来减轻数据库的压力。很多情况下主服务器仅作为写入数据服务器,而构建多个从节点来进行数据读取。
构建主从复制的几个事项:
尽量保持主从数据库版本一致。
如果不一致,从数据库版本要高于主库的数据库版本。
创建数据存放目录和binlog存放目录,分开存放,建议是安装到不同的硬盘上,我这里就是安装在不同的目录上了。# mkdir /mydata
# mkdir /mylog
将源码包复制到另外一台主机。# scpmariadb-5.5.36-linux-x86_64.tar.gz 192.168.122.136:/root
root@192.168.122.136'spassword:
mariadb-5.5.36-linux-x86_64.tar.gz 100% 212MB 11.2MB/s 00:19
本地主机解压,创建mysql账户和修改数据目录,日志目录属主属组。# tar xfmariadb-5.5.36-linux-x86_64.tar.gz -C /usr/local/
# useradd -r -s/sbin/nologin mysql
# chownmysql:mysql /my*
# ls -ld /my*
drwxr-xr-x 2 mysqlmysql 4096 Sep 20 14:35 /mydata
drwxr-xr-x 2 mysqlmysql 4096 Sep 20 14:36 /mylog
链接到mariadb到mysql,创建配置文件存放路径,修改属主,属组。# ln -smariadb-5.5.36-linux-x86_64/ mysql
# mkdir /etc/mysql
# chown -Rmysql:mysql mysql/
复制配置文件及Sys脚本到相对应的目录。# cpsupport-files/my-large.cnf /etc/mysql/my.cnf
# cpsupport-files/mysql.server /etc/init.d/mysqld
修改数据目录存放位置和binlog日志存放位置。# vim/etc/mysql/my.cnf
datedir =/mydata/data
log-bin=/mylog/master-bin
将mysqld添加到系统服务,并初始化。# chmod +x/etc/init.d/mysqld
# chkconfig --addmysqld
#./scripts/mysql_install_db --user=mysql --datadir=/mydata/data
启动mysql,检查端口。# service mysqld start
Starting MySQL..SUCCESS!
# ss -tnl
LISTEN 0 50 *:3306 *:
检查数据目录和日志目录。# ls /my*
/mydata:
data
/mylog:
master-bin.000001 master-bin.000002 master-bin.000003 master-bin.000004 master-bin.index
另外一台主机相同配置,可以不指定二进制日志位置,但是需要创建relaylog日志目录,修改serverID。# mkdir /relaylog
# vim/etc/mysql/my.cnf
datadir =/mydata/data
#log-bin=mysql-bin
#binlog_format=mixed
server-id = 10
relay-log = /relaylog/relay-log
# service mysqldstart
Starting MySQL...SUCCESS!