搭建主从数据库
一.准备两台以上对的数据库
数据库1(主服务器):192.168.2.2
数据库2(从服务器):192.168.2.4
1.1配置主服务器
.在 /etc/my.cnf 的[mysqld]节点内,新加
[mysqld]
#主从配置
server-id=1 #服务器 id
log-bin=mysql-bin #二进制文件存放路径
binlog-do-db=palan-dev #待同步的数据库
binlog-ignore-db=mysql #不同步的数据
Esc退出,:wq 回车。
1.2 重启mysql
service mysqld
restart
1.3 配置或者关闭服务器的防火墙,因为要用从服务器连接
使用命令:systemctl stop firewalld.service
1.4 登录mysql ,授权账号,让从数据库可以进行复制。
1mysql -u root -p密码
2 CREATE USER 'rootslave'@'从服务器ip地址' IDENTIFIED WITH mysql_native_password BY 'root123';
3 grant replication slave on *.* to 'rootslave'@'从服务器IP地址';
1.5 重启mysql服务
service mysqld restart
1.6
再 mysql -u root -p密码,进入mysql,看下master状态,记住执行下面之后显示的File和Position,下面会用到
mysql> show master status;
+---------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| binlog.000003 | 155 | | | |
+---------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
3.配置从数据库
3.1 配置文件my.cnf添加
server-id=110
3.2重启数据库
service mysqld restart
3.3实现主从同步
mysql -uroot -p
登录之后,执行下面,ip地址是主库的ip(自己修改),root是上面配置的账号,root1是密码,master_log_file是第6步查看的文件名字(自己修改),master_log_pos也是第2.6步查看的位置(自己修改)
flush privileges;
stop slave;
flush privileges;
change master to
master_host='192.168.221.135',master_user='root',master_password='root1',master_log_file='linux1.000001',master_log_pos=10844;
flush privileges;
检测主从是否配置成功,接着上面执行set global server_id=4;
start slave;
show slave status\G;
3.4主服务器解锁表
还没登录数据库的话要先登录,然后执行下面
unlock tables;
flush privileges;
3.5直接进入主服务器的数据库,增加一条数据,看从服务器的数据库会不会增加