mysql 主从配置

做数据库主从同步的作用:备份数据、读写分离、数据集群等。

配置前提:mysql数据库、版本一致(不同版本没有尝试)、数据库名称一样(不一样时不能同步,重写模式没有尝试),

将主库的数据导入到从库一份,以保证基础数据一致(较大的数据量建议使用DMS同步,而且同步时应该库不允许写入操作)

操作实例:

主库:112.2.112.31 

从库:103.5.23.56

数据库名称:money

配置过程:

一、主库

  1. 找到my.ini(不同名字的话自行搜索自己的系统对应的名字)编辑内容:

  2. [mysqld]
    log-bin=mysql-bin #开启二进制日志
    server-id=1 #设置server-id,这个随意,但是不要和从库一样

    配置好了之后重启一下mysql,然后登录mysql

  3. 创建同步账号和权限


mysql> CREATE USER 'syn_user'@'103.5.23.56' IDENTIFIED BY 'password123';#创建用户,只是给予从库登录IP
mysql> GRANT REPLICATION SLAVE ON *.* TO 'syn_user'@'103.5.23.56';#分配权限
mysql>flush privileges;   #刷新权限

4. 查看master状态并记录好:

mysql >show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000014 | 13313       | money         | manual,mysql     |
+------------------+----------+--------------+------------------+

主库可以了,接写了配置从库。

二、从库配置


加入my.ini配置

server-id:1233#和主库不一样就行了
binlog-do-db:money#要同步的数据库名

binlog-ignore-db = mysql# 不同步mysql库和test库
binlog-ignore-db = test

配置好了之后重启mysql服务,然后进入mysql配置同步信息:

CHANGE MASTER TO MASTER_HOST='112.2.112.31',
  MASTER_PORT=3306,
  MASTER_USER='syn_user',
  MASTER_PASSWORD='password123',
  MASTER_LOG_FILE='mysql-bin.000014',
  MASTER_LOG_POS=13313; 
  
  #执行完成后查看从库状态
  show slave status;
  .....
  #结果发现下面这两个都是yes就ok了
  #Slave_IO_Running: Yes
    #Slave_SQL_Running: Yes



如果Slave_IO_Running和 Slave_SQL_Running线程不成功可能是版本不对,获取主库的信息不正确、权限不足等,可以查看mysq的日志。


常用命令:start slave;stop slave;reset slave;show slave status;


最后:除了配置mysqld文件和重启mysql服务,其他的只要有权限(比如root账号等)就可以用远程命令在navicat、phpmyadmin等工具直接运行sql命令设置。




评论/留言