二、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=' ';
即可成功删除同步用户信息。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!