mysql主从服务(主从从结构)_万金油_新浪博客

下午的126分钟开始:
删除所有数据库,只保留系统库

53服务器操作:
[root@host53 mysql]# pwd
/var/lib/mysql
[root@host53 mysql]# systemctl  stop  mysqld.service 
[root@host53 mysql]# rm -rf master.info relay-log.info 
[root@host53 mysql]# rm -rf host53-relay-bin.*
[root@host53 mysql]# systemctl  start   mysqld

52 服务器操作:
[root@host52 mysql]# pwd
/var/lib/mysql
[root@host52 mysql]# systemctl  stop mysqld
[root@host52 mysql]# rm -rf master.info  relay-log.info 
[root@host52 mysql]# rm -rf host52-relay-bin.*
[root@host52 mysql]# systemctl  start  mysqld
[root@host52 mysql]# mysql -uroot -p ——为了保证数据的一致性,把多于的数据库删除,只保留系统库
mysql> drop database gamedb;
Query OK, 1 row affected (0.15 sec)

51服务器操作:
oot@host51 mysql]# systemctl  stop  mysqld.service 
[root@host51 mysql]# rm -rf master51.*
[root@host51 mysql]# ls
auto.cnf  gamedb  ib_buffer_pool  ibdata1  ib_logfile0  ib_logfile1  mysql  performance_schema  xtrabackup_info
[root@host51 mysql]# rm -rf  gamedb/  ——删除库的文件就相当于把库给删了
[root@host51 mysql]# systemctl  restart  mysqld
135分钟哦

52.是从库也是主库

53:
[root@host53 ~]# systemctl  stop  mysqld
[root@host53 ~]# vim /etc/my.cnf
[mysqld]
server_id=53
:wq
[root@host53 ~]# systemctl  start mysqld

[root@host53 ~]# mysql -h192.168.4.52 -uyaya -p123qqq...A
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql> show slave status;
Empty set (0.00 sec)

mysql> change master to
    -> master_host="192.168.4.52",
    -> master_user="yaya",
    -> master_password="123qqq...A",
    -> master_log_file="master52.000001",
    -> master_log_pos=154;
Query OK, 0 rows affected, 2 warnings (0.31 sec)

mysql> start slave;
Query OK, 0 rows affected (0.01 sec)

mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.4.52
                  Master_User: yaya
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: master52.000001
          Read_Master_Log_Pos: 154
               Relay_Log_File: host53-relay-bin.000002
                Relay_Log_Pos: 319
        Relay_Master_Log_File: master52.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

为共享数据创建数据:
在51数据库操作:
mysql> create database gamedb;
Query OK, 1 row affected (0.04 sec)

mysql> create  table gamedb.a(id int);
Query OK, 0 rows affected (0.27 sec)

mysql> grant select,insert on gamedb.* to testuser@"%" identified by "123qqq...A";
Query OK, 0 rows affected, 1 warning (0.03 sec)

什么原因:
mysql> show master status;
+-----------------+----------+--------------+------------------+-------------------+
| File            | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-----------------+----------+--------------+------------------+-------------------+
| master52.000001 |      154 |              |                  |                   |
+-----------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
[root@host52 mysql]# mysqlbinlog  master52.000001  | grep -insert
5:#180720 16:14:44 server id 52  end_log_pos 123 CRC32 0xbb198393 Start: binlog v 4, server v 5.7.17-log created 180720 16:14:44 at startup


[mysqld]
log_slave_updates
server_id=52
log-bin=master52
binlog_format="mixed


mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.4.52
                  Master_User: yaya
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: master52.000002
          Read_Master_Log_Pos: 720
               Relay_Log_File: host53-relay-bin.000004
                Relay_Log_Pos: 365
        Relay_Master_Log_File: master52.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: No
    Last_Error: Error 'Table 'gamedb.a' doesn't exist' on query. Default database: 'gamedb'. Query: 'insert into a values(6663)'
报错信息:开了集连,生产环境下应该先开集连

解决方案:
mysql> stop slave;
Query OK, 0 rows affected (0.01 sec)

mysql> create database gamedb;
Query OK, 1 row affected (0.00 sec)

mysql> use gamedb;
Database changed
mysql> create table a(id int);
Query OK, 0 rows affected (0.16 sec)

mysql> start slave;
Query OK, 0 rows affected (0.09 sec)

mysql> select * from a;
+------+
| id   |
+------+
| 6663 |
| 6663 |
+------+
2 rows in set (0.00 sec)





主主结构(互为主从)
不能同时给客户端insert update 的权限,有可能出现冲突
一般跟第三方软件做高可用集群





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维螺丝钉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值