17.3 配置主

主从配置 - 主上操作

  • 安装mysql
  • 修改my.cnf,增加server-id=130和log_bin=aminglinux1
  • 修改完配置文件后,启动或者重启mysqld服务
  • 把mysql库备份并恢复成aming库,作为测试数据
  • mysqldump -uroot mysql > /tmp/mysql.sql
  • mysql -uroot -e “create database aming”
  • mysql -uroot aming < /tmp/mysql.sql
  • 创建用作同步数据的用户
  • grant replication slave on . to 'repl'@slave_ip identified by 'password';
  • flush tables with read lock;
  • show master status;

主从配置 - 主上操作

  1. 在两台机器安装并启动mysql服务后,首先在主上进行操作
  2. 修改/etc/mys.cnf配置文件
  • 在配置文件下[mysqld]下添加
    • server-id=130 这个id可以自定义,这里根据ip来定义
    • log_bin=hf123 打开binlog,名字自定义为log_bin=hf123 最终如下
[root@hanfeng ~]# vim /etc/my.cnf

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.

[mysqld]
server_id = 130
log_bin=hf123
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M

# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin

# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# socket = .....

# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M 

保存退出
  1. 更改完配置文件后,需要重启mysql
  • /etc/init.d/mysqld restart
[root@hanfeng ~]# /etc/init.d/mysqld restart
Shutting down MySQL.... SUCCESS! 
Starting MySQL.. SUCCESS! 
[root@hanfeng ~]# 
  1. 这时候来/data/mysql/目录下,会生成一些文件
  • ls -lt /data/mysql/
[root@hanfeng ~]# ls -lt /data/mysql/
总用量 110728
-rw-rw----. 1 mysql mysql 50331648 1月  19 23:35 ib_logfile0
-rw-rw----. 1 mysql mysql 12582912 1月  19 23:35 ibdata1
-rw-rw----. 1 mysql mysql   104317 1月  19 23:35 hanfeng.err
-rw-rw----. 1 mysql mysql        5 1月  19 23:35 hanfeng.pid
-rw-rw----. 1 mysql mysql       15 1月  19 23:35 hf123.index
-rw-rw----. 1 mysql mysql      120 1月  19 23:35 hf123.000001
drwx------. 2 mysql mysql     4096 1月  19 20:58 zrlog
-rw-rw----. 1 mysql mysql       56 1月   2 22:41 auto.cnf
drwx------. 2 mysql mysql     4096 1月   2 22:28 mysql
drwx------. 2 mysql mysql     4096 1月   2 22:28 performance_schema
-rw-rw----. 1 mysql mysql 50331648 1月   2 22:28 ib_logfile1
drwx------. 2 mysql mysql        6 1月   2 22:26 test
[root@hanfeng ~]# 
  • 其中 .index 索引页,这个文件是必须要有的
  • 其中 .000001 这个是二进制日志文件,会持续生成2、3、4等等(这个文件是实现主从配置的根本,没有这个文件根本没有办法完成主从)
  1. 测试,准备一个数据做演示用的
  2. 首先做一个备份
  • mysqldump -uroot -phanfeng zrlog > /tmp/zrlog.sql
[root@hanfeng ~]# mysqldump -uroot -phanfeng zrlog > /tmp/zrlog.sql
Warning: Using a password on the command line interface can be insecure.
[root@hanfeng ~]# 
  1. 然后创建一个新的库
  • mysql -uroot -phanfeng -e "create database han"
[root@hanfeng ~]# mysql -uroot -phanfeng -e "create database han"
Warning: Using a password on the command line interface can be insecure.
[root@hanfeng ~]# 
  1. 创建好库后,还需要把数据恢复一下,那也就是说做的主从,参考的对象就是 han 这个库
  • mysql -uroot -phanfeng han < /tmp/zrlog.sql
[root@hanfeng ~]# mysql -uroot -phanfeng han < /tmp/zrlog.sql
Warning: Using a password on the command line interface can be insecure.
[root@hanfeng ~]# 
  1. 再来查看/data/mysql/目录下的文件
  • ls -lt /data/mysql/
[root@hanfeng ~]# ls -lt /data/mysql/
总用量 110740
-rw-rw----. 1 mysql mysql 50331648 1月  19 23:40 ib_logfile0
-rw-rw----. 1 mysql mysql 12582912 1月  19 23:40 ibdata1
-rw-rw----. 1 mysql mysql    10337 1月  19 23:40 hf123.000001
drwx------. 2 mysql mysql     4096 1月  19 23:40 han
-rw-rw----. 1 mysql mysql   104317 1月  19 23:35 hanfeng.err
-rw-rw----. 1 mysql mysql        5 1月  19 23:35 hanfeng.pid
-rw-rw----. 1 mysql mysql       15 1月  19 23:35 hf123.index
drwx------. 2 mysql mysql     4096 1月  19 20:58 zrlog
-rw-rw----. 1 mysql mysql       56 1月   2 22:41 auto.cnf
drwx------. 2 mysql mysql     4096 1月   2 22:28 mysql
drwx------. 2 mysql mysql     4096 1月   2 22:28 performance_schema
-rw-rw----. 1 mysql mysql 50331648 1月   2 22:28 ib_logfile1
drwx------. 2 mysql mysql        6 1月   2 22:26 test
[root@hanfeng ~]# 
  1. 能看到hf123.000001二进制文件是有增加的,hf123.000001增长的大小是和zrlog这个库的保持一致的,hf123.000001文件里完整的记录了数据库的创建的库,创建的表,以及表里的内容全都有
  2. 下面创建用于主从相互同步数据的用户
  3. 先进入到mysql里面去
  • mysql -uroot -phanfeng
[root@hanfeng ~]# mysql -uroot -phanfeng
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 194
Server version: 5.6.35-log MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 
  1. 创建用户
  • grant replication slave on . to 'repl'@'192.168.202.131' identified by 'hanfeng';
    • 指定权限,replication slave权限
    • 针对repl这个用户
    • 针对 从 的那个IP,指定来源(若是写所有的IP会很危险)
mysql> grant replication slave on *.* to 'repl'@'192.168.202.131' identified by 'hanfeng';
Query OK, 0 rows affected (0.00 sec)

mysql> 
  1. 锁定表,目的是不让表继续写,因为一会需要做 从 机器配置,需要进行一个同步,让两台机器同步,保证两台机器的数据一致,同步才不会出错
  • flush tables with read lock;
mysql> flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)

mysql> 
  1. 查看一下binlog的文件和大小,并记住binlog的filename
  • show master status;
mysql> show master status;
+--------------+----------+--------------+------------------+-------------------+
| File         | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+--------------+----------+--------------+------------------+-------------------+
| hf123.000001 |    10549 |              |                  |                   |
+--------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

mysql> quit
Bye
  1. 然后退出数据库,做一个数据同步
  2. 查看/data/mysql/下有哪些库,主上有哪些库,一会从上也得有哪些库,同步这些库,就意味着这些数据都得备份过去
[root@hanfeng ~]# ls /data/mysql
auto.cnf  hanfeng.err  hf123.000001  ibdata1      ib_logfile1  performance_schema  zrlog
han       hanfeng.pid  hf123.index   ib_logfile0  mysql        test
[root@hanfeng ~]# 
  1. 备份数据库,除了mysql库,因为mysql库里面有账号密码,从上的时候不可能把所有权限复制过去,所以mysql不需要备份
  • 备份其他的库
[root@hanfeng ~]# mysqldump -uroot -phanfeng test > /tmp/test.sql
Warning: Using a password on the command line interface can be insecure.
[root@hanfeng ~]# 
  1. 等会把/tmp/目录下 .sql文件都拷贝到 从上 去
[root@hanfeng ~]# ls /tmp/*sql
/tmp/test.sql  /tmp/zrlog.sql
[root@hanfeng ~]# 
  1. 主上操作完成,接下来从上操作

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ASP.NET MVC5 后台权限管理系统

ASP.NET MVC5+EF6+EasyUI 后台管理系统(999)-如何使用这个系统来开发?

前言 这篇文本讲述了这个框架的使用方式,及一些疑问的答疑,更加精准的使用这个框架来建立功能 经过几个版本的迭代,系统使用更加方便,代码更加简洁也更加的智能,...

2996
来自专栏java一日一条

理解MySQL——复制(Replication)

1、复制概述 1.1、复制解决的问题 数据复制技术有以下一些特点: (1) 数据分布 (2) 负载平衡(load balancing) (3) ...

793
来自专栏吴生的专栏

Mysql数据库主从心得整理

管理mysql主从有2年多了,管理过200多组mysql主从,几乎涉及到各个版本的主从,本博文属于总结性的,有一部分是摘自网络,大部分是根据自己管理的心得和经验...

3977
来自专栏云计算教程系列

最全的CentOS MariaDB入门教程

MariaDB是流行的跨平台MySQL数据库管理系统的分支,被认为是MySQL 的完全替代品。MariaDB是由Sun在Sun Microsystems合并期间...

2074
来自专栏散尽浮华

Mysql数据库之Binlog日志使用总结

binlog二进制日志对于mysql数据库的重要性有多大,在此就不多说了。下面根据本人的日常操作经历,并结合网上参考资料,对binlog日志使用做一梳理: 一、...

1.8K9
来自专栏ASP.NET MVC5 后台权限管理系统

ASP.NET MVC5+EF6+EasyUI 后台管理系统(61)-如何使用框架来开发

前言 这篇文本讲述了这个框架的使用方式,及一些疑问的答疑,更加精准的使用这个框架来建立功能 经过几个版本的迭代,系统使用更加方便,代码更加简洁也更加的智能,...

2826
来自专栏一枝花算不算浪漫

Redis的介绍及使用实例.

3709
来自专栏女程序员的日常

ATmega8仿真——外部中断的学习

前面我们学习了ATmega8的I/O口作为通用数字输入/输出口来用时对LED数码管控制和扫描按键的应用; 但ATmega8多数的I/O口都是复用口,除了作为通用...

2281
来自专栏小樱的经验随笔

sqlmap简单中文说明

首先下载需要的文件,如果是windows环境直接到http://sqlmap.org/下载安装所需要的文件即可。 更新 svn checkout https:...

3007
来自专栏黑泽君的专栏

day73_淘淘商城项目_06_solr索引库搭建 + solr搜索功能实现 + 图片显示等问题解决_匠心笔记

  solr是java开发的。   solr的安装文件。   推荐在Linux环境下使用Solr,需要安装环境Linux。   需要安装jdk。参考链接:htt...

3073

扫码关注云+社区