一主一从配置 or 一主多从

一主一从配置 or 一主多从: 

    1)确保主从服务器上安装了相同版本的数据库。因为复制的功能在持续的改进中,所  以在可能的情况下推荐安装最新的稳定版本。
    2)在主服务器上,设置一个复制使用的账户,并 授予 REPLICATION SLAVE 权限
      --在这里如果报错: ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value  ? 则需要在my.cnf 或者my.init上配置参数: 
           sql-mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
     修改为
          sql-mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 
     然后重启MYSQL

      3)修改 主数据库服务器的配置文件 my.cnf,开 启 BINLOG,并设置 server-id 的值。这   两个参数的修改需要重新启动数据库服务才可以生效。
      my.cnf 配置:
[mysqld]
log-bin = /home/mysql/log/mysql-bin.log       -->必须开启。
server-id = 1       -->这个值手动设置,每个节点唯一。
binlog-ignore-db=mysql  
read_only=TURE  (read_only=1)

   4)在主服务器上,设置读锁定有效,这个操作是为了确保没有数据库操作,以便获得  一个一致性的快照:
      mysql> flush tables with read lock;

   5) 然后得到主服务器上当前的二进制日志名和偏移量值。 这个操作的目的是为了在从  数据库启动以后,从这个点开始进行数据的恢复。  -->( 一个是file 编号,一个是 position 值

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

   6)备份主库上的数据文件到 备库中,如果是使用mysqdump 最好一个库一个库备份。 也可以直接在操作系统下 cp 全部的数据文件到从数据库服务器上,也可以通过  mysqldump 导出数据或者使用 ibbackup 工具进行数据库的备份。

    7) 主数据库的备份完毕后,主数据库可以恢复写操作,剩下的操作只需要在从服务器  上执行:
  mysql> unlock tables;

   8)将主数据库的一致性备份恢复到从数据库上。
   9)修改从数据库的配置文件 my.cnf,增加 server-id 参数。注意 server-id 的值必须是  唯一的,不能和主数据库的配置相同,如果有多个从数据库服务器,每个从数据库服务器必 须有自己唯一的 server-id 值。
   
    这里备库1 配置:
    my.cnf 中修改:
   [mysqld]
    server-id = 2

   10)在从服务器上,使用--skip-slave-start 选项启动从数据库,这样不会立即启动从数  据库服务上的复制进程,方便我们对从数据库的服务进行进一步的配置:
[mysql@master1 ]$ ./bin/mysqld_safe --skip-slave-start &   或者:  shell# /etc/init.d/mysqld start --skip-slave-start

  11)对从数据库服务器做相应设置,指定复制使用的用户,主数据库服务器的 IP、端 口以及开始执行复制的日志文件和位置等,具体语法如下: 
mysql> CHANGE MASTER TO    
-> MASTER_HOST='master_host_name',                           -->主机host(IP)
-> MASTER_USER='replication_user_name',                     -->复制的用户user( 如果是主从从,指定的复制用户必须不同)
-> MASTER_PASSWORD='replication_password',            -->复制用户的密码
-> MASTER_LOG_FILE='recorded_log_file_name',             -->对应第5步的 file 编号。
-> MASTER_LOG_POS=recorded_log_position,                 -->对应的POS编号
-> MASTER_PORT=3308;
 
  12)在从服务器上,启动 slave 线程:
mysql> start slave;

  13)这时 slave 上执行 show processlist 命令将显示类似如下进程:
mysql> show processlist \G

  14) 查看master 进程状态: mysql > show master status \G  
   主要查看: Slave_IO_Running 和 Slave_SQL_Running  是否都为YES 
  ==> 如果是一主多从  一样配置。



mysql 从服务器切换为主服务器:

步骤如下:

1 确认从服务器已经完成所有同步操作:


stop slave io_thread  

show processlist 

 

直到看到状态都为:xxx has read all relay log 表示更新都执行完毕


2 停止从服务器slave服务


stop slave


3 将从服务器切换为主服务器:


reset master 


完成切换。


PS: 如果从服务器设置了 read only 选项,则需要将这个参数去掉并重新启动数据库。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值