实验架构: 192.168.0.92 mysql 主 192.168.0.93 mysql 从 1、环境配置请参照: https://www.cnblogs.com/effortsing/p/10367025.html 2、mysql安装 请参照:https://www.cnblogs.com/effortsing/p/9982028.html 3、Mysql主从同步环境部署 ---------主服务器操作记录---------- 在my.cnf文件的[mysqld]配置区域添加下面内容: [root@master1 ~]# vim /etc/my.cnf server-id = 1 log-bin = mysql-bin sync_binlog = 1 binlog_checksum = none binlog_format = mixed auto-increment-increment = 2 auto-increment-offset = 1 slave-skip-errors = all 重启数据库 systemctl restart mysqld 授权从服务器同步权限 mysql> grant replication slave on *.* to 'root'@'192.168.0.%' identified by 'jenkins@123'; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) 查看当前的binlog以及数据所在位置 mysql> show master status; +------------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+-------------------+ | mysql-bin.000006 | 996 | | | | +------------------+----------+--------------+------------------+-------------------+ 1 row in set (0.00 sec) ---------------从服务器做同步操作--------------- 在my.cnf文件的[mysqld]配置区域添加下面内容: server-id = 2 重启数据库 systemctl restart mysqld 下面开始同步主数据库中的数据 先停止Slave mysql> stop slave; Query OK, 0 rows affected (0.01 sec) 然后连接Master mysql> change master to master_host='192.168.0.92',master_user='root',master_password='jenkins@123',master_log_file='mysql-bin.000006',master_log_pos=150; Query OK, 0 rows affected, 2 warnings (0.01 sec) 再启动Slave mysql> start slave; Query OK, 0 rows affected (0.01 sec) 查看两个线程状态是否为YES mysql> show slave status G; Slave_IO_Running: Yes Slave_SQL_Running: Yes 以上表明双方已经实现了mysql主从同步。 测试主从效果 在主数据库上写入新数据 mysql> unlock tables; Query OK, 0 rows affected (0.00 sec) 创建三个数据库:db1、db2、db3 mysql> create database db1; Query OK, 1 row affected (0.01 sec) mysql> create database db2; Query OK, 1 row affected (0.01 sec) mysql> create database db3; Query OK, 1 row affected (0.01 sec) 给数据库授权,否则程序时无法连接db1数据库的 mysql> grant all privileges on db1.* TO 'root'@'%' identified by 'jenkins@123' with grant option; Query OK, 0 rows affected, 1 warning (0.01 sec) mysql> grant all privileges on db2.* TO 'root'@'%' identified by 'jenkins@123' with grant option; Query OK, 0 rows affected, 1 warning (0.01 sec) mysql> grant all privileges on db3.* TO 'root'@'%' identified by 'jenkins@123' with grant option; Query OK, 0 rows affected, 1 warning (0.01 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) db1数据库创建1个表:tb1 mysql> use db1; Database changed mysql> create table if not exists tb1 ( id int(10) PRIMARY KEY AUTO_INCREMENT, name varchar(50) NOT NULL); Query OK, 0 rows affected (0.04 sec) 向db1数据库中写入数据 mysql> insert into tb1 values(2,'join'); Query OK, 1 row affected (0.00 sec) mysql> insert into tb1 values(1,'bob'); Query OK, 1 row affected (0.00 sec) mysql> select * from tb1; +----+-----------+ | id | name | +----+-----------+ | 1 | bob | | 2 | join | +----+-----------+ 2 rows in set (0.00 sec) 然后在从数据库上查看,发现数据已经同步过来了! mysql> select * from db1.tb1; +----+-----------+ | id | name | +----+-----------+ | 1 | bob | | 2 | join | +----+-----------+ 2 rows in set (0.00 sec) 最后在主库上删除表,以免影响读写分离实验 mysql> drop table tb1; Query OK, 0 rows affected (0.01 sec) 至此,Mysql主从同步环境已经实现。