二、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=' ';
即可成功删除同步用户信息。




posted @   万笑佛  阅读(106)  评论(0编辑  收藏  举报
编辑推荐:
· 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 让容器管理更轻松!
点击右上角即可分享
微信分享提示