MySQL内建的复制功能是构建大型,高性能应用程序的基础。将MySQL的数据分布到多个系统上去,这种分布的机制,是通过将MySQL的某一台主机的数据复制到其它主机(奴隶)上,并重新执行一遍来实现。
复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循坏,这些日志可以记录发送到从服务器的更新。当一个从服务器
连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知的更新。
需注意的是:
在进行mysql复制时,所有对复制中的表的更新必须在主服务器上进行。否则必须要小心,以避免用户对主服器上的表进行更新与对从服务器上的表所进行更新之间的冲突。
源码安装AliSQL-AliSQL-5.6.32-9
可以在我的网盘下载包
链接:https://pan.baidu.com/s/1FDmGV2zVLI9NxfdpjVqK4g
提取码:tpuy
复制这段内容后打开百度网盘,操作更方便哦:
主从间的数据库不是实时同步,就算网络连接正常,也存在瞬间主从数据不一致的情况。
如果需要多主库的话,可以用环形配置,这样任意一个节点的修改都可以同步到所有节点所以也需要国家结核控制规划(时间同步)
源码安装AliSQL
接下来我们源码安装AliSQL
下载依赖包解压
<代码> http://repo.openfusion.net/centos7 wget - x86_64//perl -数据-翻车机of.el7.x86_64.rpm——2.154 - 1. rpm -ivh perl -数据-翻车机- 2.154 - 1. - of.el7.x86_64.rpm 百胜是安装cmake野牛git ncurses-devel gcc gcc-c + + 代码>
解压AliSQL
<代码>解压alisql - alisql 5.6.32 - 9. - zip代码> >之前创建一个mysql的组
<代码> groupadd mysql useradd - g mysql mysql 代码>创建mysql目录还有数据目录
<代码> mkdir - p/数据/服务器/mysql/数据 cd/usr/local/src/AliSQL-AliSQL-5.6.32-9 代码>编译指定路径为数据服务器目录下的mysql
<代码> cmake -DCMAKE_INSTALL_PREFIX=/数据/服务器/mysql -DMYSQL_UNIX_ADDR=/数据/服务器/mysql/mysql。袜子-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/数据/服务器/mysql/mysql -DENABLE_DOWNLOADS -DMYSQL_TCP_PORT=3306 -DMYSQL_USER==1 使,,使安装代码>注意修改mysql目录的属主和属组
<代码>乔恩- r mysql: mysql/数据/服务器/mysql/数据/乔恩- r mysql: mysql/数据/服务器/mysql/cd/数据/服务器/mysql代码>初始化数据库
<代码>脚本/mysql_install_db——defaults-file——用户==?my . cnf中所做mysql 代码>修改生成的文件属主和属组
<代码>乔恩- r mysql: 代码>mysql my . cnf中所做然后开启mysql服务
<代码> cd/数据/服务器/mysql/支持文件/mysql。服务器启动代码>开启之后进入交互环境
<代码> cd/数据/服务器/mysql/bin 代码。/mysql - u root - p > >之前这里我们准备两台机器全部安装AliSQL-AliSQL-5.6.32-9安装到/数据/服务器下
主库机器ip: 192.168.124.107从库机器ip: 192.168.124.108
主主库配置<代码> vim/数据/服务器/代码>#修改内容
#解释:服务器id服务的唯一标识(主从之间都必须不同);log-bin启动二进制日志名称为mysql-bin<代码>【mysqld】 服务器id=1 log-bin=mysql-bin 代码>保存退出
<代码> cd/数据/服务器/mysql/支持文件/mysql。服务器启动代码>1,主主库添加从库账号
进入到本目录启动mysql进入到交互环境<代码> cd/数据/服务器/mysql/bin 代码。/mysql - u root - p > >之前新建用于主从同步的用户chaoge,允许登录的从库是“192.168.124.108”
<代码>创建用户“chaoge”@“192.168.124.108”被“红帽”,代码>给从库账号授权,说明给chaoge从库复制的权限,在192.168.124.108机器上复制
<代码>格兰特复制奴隶alt=" AliSQL主从复制">重启mysql数据库
<代码> cd/数据/服务器/mysql/支持文件/mysql。服务器启动代码>AliSQL主从复制