主从数据库配置、错误解决、Laravel框架中的主从配置

本文详细介绍了MySQL主从配置的步骤,包括在主库和从库上的操作,如授权复制账号、设置server-id、开启binlog、数据备份与恢复等。在遇到问题时,如错误提示和UUID不匹配,提供了解决方案。同时,文章还提及了在Laravel框架中如何进行主从配置,参考了相关文档和书籍。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 主库:
    1.授权复制账号使用的用户REPLICATION SLAVE权限:
GRANT REPLICATION SLAVE ON *.* to 'slaver'@'192.168.0.203' identified by 'cpf123456'

2.修改数据库配置文件my.cnf,开启binlog,并设置server-id的值

[mysqld]
log-bin=mysql-bin       # 在mysql安装目录的data中可以看到二进制文件
server-id=1                   # 主控设置为1

修改完成需要重启MySQL服务才能生效,重新启动:
(1).mysqladmin -u root -p shutdown(关闭)
(2).mysqld_safe -u mysql &(重启)
或者:
service mysqld restart

3.在主库上,设置读锁定有效,这个操作是为了确保没有数据库操作,以便获得一个一致性的快照;

mysql> flush tables with read lock;
Query OK, 0 rows affected (0.05 sec)

4.查看当前主服务器信息(二进制日志名和偏移量值,目的是为了在从数据库启动以后,从这个点开始进行数据的恢复)

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      120 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

5.备份主数据库的数据到从数据库,mysqldump 或者其他方法,如果著数据库服务可以停止,可以直接复制data文件夹,这种方式复制很快
6.数据备份完毕后,恢复写操作,剩下的操作只需在从库上执行

mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)
  • 从数据库
    1.修改从数据库的配置文件my.cnf,添加server-id参数。该参数必须唯一,不能和主数据库相同,如果有多个从库,每个从库必须有自己唯一的server-id
[mysqld]
server-id=2

2.重启时使用–skip-slave-start选项启动从数据库,这样不会立即启动从数据库服务上的复制进程,方便我们对从数据库进行进一步的配置

 重新启动 1.mysqladmin -u root -p shutdown(关闭) 2.mysqld_safe --skip-slave-start &(重启)

3.对从库进行相应设置
参数说明:

MASTER_HOST:主库IP
MASTER_PORT:主库端口
MASTER_USER:主库复制使用的用户 ,主库第1步设置的
MASTER_PASSWORD:复制用户密码,主库第1步设置的
MASTER_LOG_FILE:开始执行复制的日志文件
MASTER_LOG_POS:开始执行复制的日志位置
mysql> CHANGE MASTER TO
    ->MASTER_HOST='192.168.0.238',
    ->MASTER_PORT=3306,
    ->MASTER_USER='slaver',
    ->MASTER_PASSWORD='cpf123456',
    ->MASTER_LOG_FILE='mysql-bin.000001',
    ->MASTER_LOG_POS=120;
Query OK, 0 rows affected, 2 warnings (0.01 sec)

4.启动slave线程

mysql> start slave        (停止是stop slave)
Query OK, 0 rows affected (0.00 sec)

5.状态查询:

mysql> show processlist\G
*************************** 1. row ***************************
     Id: 1
   User: root
   Host: localhost
     db: NULL
Command: Query
   Time: 0
  State: init
   Info: show processlist
*************************** 2. row ***************************
     Id: 2
   User: sys
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值