欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

mysql 主从数据库配置

程序员文章站 2022-05-12 17:37:03
...

首先设置MySQL主服务器: 在主服务器上为从服务器建立一个用户: 1.grant replication slave on *.* to 192.168.0.1 identified by '1234'; #4.1以后用这个,以前可以用 file. #grant file on *.* to 192.168.0.1 identified by '1234'; #后来我又加了super和

首先设置MySQL主服务器:

  在主服务器上为从服务器建立一个用户:

  1.grant replication slave on *.* to 192.168.0.1 identified by '1234';

  #4.1以后用这个,以前可以用 file.

  #grant file on *.* to 192.168.0.1 identified by '1234';

  #后来我又加了super和client save权限,可以先不加.然后再试.

  配置文件:/etc/my.cnf

  2.主服务器上

  server-id = 1

  log-bin

  binlog-do-db=需要备份的数据库名,如果备份多个数据库,,重复设置这个选项即可

  binlog-ignore-db=不需要备份的数据库苦命,如果备份多个数据库,重复设置这个选项即可

  3.从服务器上

  log-bin

  server-id=2

  master-host=主机

  master-user=用户名

  master-password=密码

  master-port=端口

  replicate-do-db=需要备份的数据库名,如果备份多个数据库,重复设置这个选项即可

  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

  就这么简单照上面的配置就可以了.

  主服务器上的相关命令:

show master status
show slave hosts
show logs
show binlog events
purge logs to 'log_name'
purge logs before 'date'
reset master(老版本flush master)
set sql_log_bin=

  从服务器上的相关命令:

slave start
slave stop
SLAVE STOP IO_THREAD //此线程把master段的日志写到本地
SLAVE start IO_THREAD
SLAVE STOP SQL_THREAD //此线程把写到本地的日志应用于数据库
SLAVE start SQL_THREAD
reset slave
SET GLOBAL SQL_SLAVE_SKIP_COUNTER
load data from master
show slave status(SUPER,REPLICATION CLIENT)
CHANGE MASTER TO MASTER_HOST=, MASTER_PORT=,MASTER_USER=, MASTER_PASSWORD= //动态改变master信息
PURGE MASTER [before 'date'] 删除master端已同步过的日志
  
#

  后话:

  做实验的时候是给一台运行很久的而且很关键的数据库做备份,遇到的问题两个

  1.两个数据库的配置文件不一样.

  竟然字体还不一样.无语ing

  2.数据库文件不一致问题,这是后来操作中产生的.所以无论主服务器多重要要做从服务器的时候一定把主服务器

  停了,把东西拷到从服务器上.

  再就是多看看mysql的日志文件,很有帮助的