很久以前自己试着搭建主从复制留下来的笔记,现在有时间就贴上来 分享给大家
工具介绍:
VM虚拟机服务器2台 安装的lnmp安装包
IP固定: 192.168.31.128 192.168.31.129
两台mysql 版本相同:
监听的端口都是默认 3306
配置文件位置: /etc/my.cnf
管理lnmp的命令 lnmp {nginx|mysql|mariadb|php-fpm|pureftpd} {start|stop|reload|restart|kill|status}
具体步骤
在主库上执行
a.设置server-id值 并开启binlog功能参数(每台数据库的server-id都应该不同 ,我采用IP最后一个点的后面数字 即主库128, 从数据库129)。
b.重启数据库 检查参数egrep "server-id|log-bin" /etc/my.cnf
登录数据库确认参数是否正确
检查确认为正常
c. 在主库上 建立用于主从复制的账号(用于从库连接主库的账号,账号创建于主库,权限也是设置与)
登录实例主库然后执行sql:grant replication slave on *.* to 'rep'@'192.168.31.%' identified by '123456';
*.* :这里代表所有数据库和所有表 也可以单指定某个数据库下的某个表 如 databasename.tablename
‘rep’@’192.168.31.%’ 代表 账号和授权的网段 ,即我建的账号是rep
identified by ‘123456’; 123456 :就是密码 ,图简单执行sql 刷新权限 使授权立即生效:
sql: flush privileges;
检查账号情况:
sql: select user,host from mysql.user;
检查主库的情况
这连个字段在从库的配置会用到
2.在从库上执行操作
①设置server-id 关闭binlog功能
②改好后,保存,重启MySQL ,然后确认配置是否修改成功
sql : show variables like 'log_bin';
sql : show variables like 'server_id';
sql :
CHANGE MASTER TO
MASTER_HOST='192.168.31.128',
MASTER_PORT=3306,
MASTER_USER='rep',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000007',
MASTER_LOG_POS=334;
3.启动同步开关 然后测试主从复制的情况
①启动从库的主从开关
相关语句
sql: start slave;
测试 在主库上建立了一个数据库 ,结果从库居然没有。
猜测这是服务器的防火墙原因。
关闭两台服务器器的防火墙 ,然后在打开从库 果然有了。
主从复制搭建完成 ,当然,这是最简单的主从复制。