二、mysql安装(主从)
上一篇: 一、mysql5.7 rpm 安装(单机) https://www.cnblogs.com/yclh/p/14951314.html
环境
192.168.0.1 主节点
192.168.0.2 从节点
mysql版本:mysql-5.7.26
主节点192.168.0.1上:
一、配置信息开启bin-log日志
vi /etc/my.cnf
添加:
[mysqld]
log-bin = pid-file=/var/run/mysqld/mysql-bin
server-id =1
启动mysql查看二进制日志是否开启
service mysqld start
[root@master51]# mysql -uroot -p"123456"
mysql> show variables like '%log_bin%';
+---------------------------------+---------------------------------+
| Variable_name | Value |
+---------------------------------+---------------------------------+
| log_bin | ON |
+---------------------------------+---------------------------------+
mysql> show variables like '%server%';
+---------------------------------+--------------------------------------+
| Variable_name | Value |
+---------------------------------+--------------------------------------+
| server_id | 1 |
+---------------------------------+--------------------------------------+
二、主节点上创建用于主从同步的用户rep
create user 'rep'@'192.168.0.%' identified by 'rep123';
mysql> grant replication slave on *.* to 'rep'@'192.168.0.%' ;
注:192.168.0.% 是从节点的ip
刷新
mysql>flush privileges;
查看所有的用户
mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
查看主库状态
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 598 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
mysql> show master logs;
+------------------+-----------+
| Log_name | File_size |
+------------------+-----------+
| mysql-bin.000001 | 598 |
+------------------+-----------+
1 row in set (0.00 sec)
如果新搭建主库就完成配置,如果已经有数据需要备份主库的数据在从库还原
从节点192.168.0.2上:
一、修改配置信息
vi /etc/my.cnf
[mysqld]
server-id =2
relay-log = relay-log
relay-log-index = relay-log.index
二、启动服务添加
service mysqld start
添加同步信息
mysql> CHANGE MASTER TO MASTER_HOST='192.168.0.1',MASTER_USER='rep',MASTER_PASSWORD='rep123', MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=598;
注:mysql-bin.000001 和598 是主节点中show master status;中的信息
三、查看同步信息
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: 192.168.0.1
Master_User: rep
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 598
Relay_Log_File: relay-log.000001
Relay_Log_Pos: 4
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: No
Slave_SQL_Running: No
------------此时同步还没有启动
启动同步后再看同步信息
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Connecting to master
Master_Host: 192.168.0.1
Master_User: rep
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 598
Relay_Log_File: relay-log.000001
Relay_Log_Pos: 4
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Connecting
Slave_SQL_Running: Yes
四、测试是否成功
主节点操作:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql> create database example;
从节点查看数据库,应该已经有了。
补充------------在增加一个从节点--------------------
从节点192.168.0.3上:
一、修改配置信息
vi /etc/my.cnf
[mysqld]
server-id =3
relay-log = relay-log
relay-log-index = relay-log.index
二、启动服务添加
service mysqld start
添加同步信息
[root]# mysql -uroot -p"123456"
mysql> CHANGE MASTER TO MASTER_HOST='192.168.0.1',MASTER_USER='rep',MASTER_PASSWORD='rep123', MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=5930;
注:mysql-bin.000002 5930 是主节点中show master status;中的信息
三、查看同步信息
mysql> show slave status\G;
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: 192.168.0.1
Master_User: rep
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000002
Read_Master_Log_Pos: 5930
Relay_Log_File: relay-log.000001
Relay_Log_Pos: 4
Relay_Master_Log_File: mysql-bin.000002
Slave_IO_Running: No
Slave_SQL_Running: No
------------此时同步还没有启动
启动同步后再看同步信息
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.0.1
Master_User: rep
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000002
Read_Master_Log_Pos: 5930
Relay_Log_File: relay-log.000002
Relay_Log_Pos: 320
Relay_Master_Log_File: mysql-bin.000002
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
四、测试是否成功
主节点操作:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql> create database example;
从节点查看数据库,应该已经有了。
--------------从库恢复成正常单节点数据--------------------
mysql>stop slave;
mysql>reset slave all;
注:也有人这么处理
mysql>change master to master_host=' ';
即可成功删除同步用户信息。
浙公网安备 33010602011771号