IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> mysql主从同步搭建 -> 正文阅读

[系统运维]mysql主从同步搭建

环境说明

????????win10(mysql版本为mysql-5.5.48)做主库,在本机安装了一台虚拟机,里面装了linux(centos7)系统,mysql版本为mysql-5.5.48作为从库。

? ? ? ? 下面分为三个部分:1、介绍mysql在Linux的安装和配置
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2、介绍mysql在window的安装和配置
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3、主从同步需要的操作和配置。(如果本地自己装好了,可以直接看这里就行)

Linux安装中mysql

  1. ?下载两个rpm文件,MySQL-client-5.5.48-1.linux2.6.x86_64.rpm和MySQL-server-5.5.48-1.linux2.6.x86_64.rpm。
  2. 放到Linux的/root/Downloads目录下
  3. //首先安装server,输入下面的指令
    rpm -ivh MySQL-server-5.5.48-1.linux2.6.x86_64.rpm
    如果提示“GPD keys...”安装失败,解决方案:rpm -ivh MySQL-server-5.5.48-1.linux2.6.x86_64.rpm --force --nodoeps(原因是有可能rpm安装的时候安装到旧版的GPD keys)

    如果出现了冲突

    先卸载原来的mariadb-libs-1:5.5.68-1.el7.x86_64,
    //删除原来的mariadb-libs-1:5.5.68-1.el7开头的库
    yum -y remove mariadb-libs-1:5.5.68-1.el7*
    卸载完后在重新安装一次

    这次就正常了。
  4. 服务端安装完成后,安客户端
  5. 查看MySQL版本
    mysqladmin --version
    开启MySQL服务
    service mysql start
    关闭mysql服务
    service mysql stop
    重启MySQL服务
    service mysql restart
    


    启动服务:1.设置开机自启 chkconfig mysql on(打开), chkconfig mysql off(关闭)
    检查开机是否自动启动:ntsysv
  6. 安装完成后,直接输入mysql就可以登录了,我们现在要给mysql设置下密码,需要用到安装完成后提示的那两个指令
    给mysql设置登录密码,用户名root,密码root
    /usr/bin/mysqladmin -u root password root

?MySQL的一些信息?

数据库目录:--datadir=/var/lib/mysql。
pid文件目录:--pid-file=/var/lib/mysql/lxx02.pid。

MySQL核心目录:
????????????????
/var/lib/mysql:MySQL安装目录。
????????????????/usr/share/mysql:mysql配置文件目录。
????????????????????????my-huge.cnf:高端服务器配置。
????????????????????????my-large.cnf:中等服务器配置
????????????????????????my-medium.cnf:一般
????????????????????????my-small.cnf:较小
? ? ? ? ? ? ? ? ? ? ? ? 以上配置文件mysql默认不能识别,默认只识别/etc/my.cnf。
? ? ? ? ? ? ? ? ? ? ? ? 我们把my-huge.cnf复制一份到/etc/文件夹下,并改名为my.cnf。
? ? ? ? ? ? ? ? /usr/bin:命令目录(mysqladmin,mysqldump等命令)

mysql配置:

查看mysql的字符编码
show variables like '%char%';

在/etc/my.cnf文件中[mysqld]标签下添加下面这些配置
character_set_server=utf8
character_set_client=utf8
collation_server=utf8_general_ci #排序方式
server-id=2    #设置从节点的id,不能跟别的mysql一样,主从同步要用
log-bin=mysql-bin    #开启binlong

#在mysql客户端执行
#授权远程返回,这个命令有可能授权不了,如果错了在百度下别的命令,之前在安装遇到过这个问题
grant all privileges on *.* to 'root'@'192.168.1.%' identified by 'root' with grant option ;
#授权后刷新让立刻生效。
flush privileges;

上面改完重启mysql
service mysql restart

关闭Linux防火墙
service iptables stop;

重启后就可以在navicat上连接登录了

?

?window系统mysql下载与安装

下载地址:MySQL :: Download MySQL Community Server (Archived Versions)

?

?

选择自定义安装

?

选择自己想要的安装路径

?

?

直接启动MySQL配置,没有这个选项的话可以在mysql安装的bin目录下打开MySQLInstanceConfig.exe,下面配置的东西,一般都会放到:C:\ProgramData\MySQL\MySQL Server 5.5\my.ini这个文件中

?

?

?

?

?

?

?

?

?

?

?

?

?

?主从同步

先看下mysql主从同步原理

????????master将改变的数据记录到binary log中,然后会有专门的线程同步给slave,slave的io线程会把同步过来的数据记录到relay log日志中,relay log在从数据中做指令回放,从而达到主从一致。
? ? ? ?

异步复制与半同步复制

异步复制:MySQL主从集群默认采用的是一种异步复制的机制。主服务在执行用户提交的事 务后,写入binlog日志,然后就给客户端返回一个成功的响应了。

?半同步复制:半同步复制机制是一种介于异步复制和全同步复制之前的机制。主库在执行完客 户端提交的事务后,并不是立即返回客户端响应,而是等待至少一个从库接收并写 到relay log中,才会返回给客户端。MySQL在等待确认时,默认会等10秒,如果超 过10秒没有收到ack,就会降级成为异步复制。

?

?MySQL binlog有三种模式:Row、Statement 和 Mixed 。

主库的配置

? ? ? ? windows:(mysql:my.ini)文件
? ? ? ? linux:(mysql:my.cnf)文件

配置前记得检查权限,比如远程访问权限,和防火墙处理好。

?my.ini文件配置

#在[mysqld]节点下添加
#master的id
server-id=1
#binary log,开启binlong文件,并指定文件路径
log-bin="C:/Program Files/MySQL/data/mysql-bin"
#异常信息的日志
log-error="C:/Program Files/MySQL/data/mysql-error"

#Path to installation directory. All paths are usually resolved relative to this.
#MySQL根路径
basedir="C:/Program Files/MySQL/MySQL Server 5.5/"
#指定需要同步哪些数据库(默认全部数据库)
#binlog-do-bo=mydb01

#指定需要 不同步哪些数据库(排除)
#binlog-ignore-db=mysql

?授权从数据库

#授权IP为192.168.1开头的账号为root,密码为root作为我的从计算机
GRANT REPLICATION slave,reload,super ON *.* to 'root'@' 192.168.1.%' identified by 'root';
#刷新使其立刻生效
flush privileges;

?查看主数据库的状态
? ? ? ? file:同步的二进制文件
? ? ? ? position:二进制文件记录的位置
? ? ? ? binlog_ignore_db:忽略的数据库
? ? ? ? binlog_do_db:需要同步的数据库

?

?从库的配置

????????my.cnf文件配置

#从库的id,需要在集群中唯一,代表身份
server-id=2
#开启binlong文件
log-bin=mysql-bin
#需要同步的数据库
replicate-do-db=mydb01

在从库中指定主库


#在mysql客户端执行,查看server_id的值。
show variables like '%server_id%';

#配置server_id的值(有时候配置文件设置的server_id会不生效需要手动配置)
set global server_id=3;

下面的操作是为了确保server_id有被修改到,下面所有的start slave和stop slave都不要执行,这是我在实验的时候多操作了。

change master to 
#主库的ip
master_host='192.168.1.5',
#主库的用户名
master_user='root',
#主库的密码
master_password='root',
master_port=3306,
#主库的binlog日志
master_log_file='mysql-bin.000001',
#主库的binlog日志的记录位置
master_log_pos=13061;

#执行完上面这些在开启slave服务
#开启从服务
start slave;

#查看主从同步信息
show slave status  \G

?

?

?

?

?

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-02-04 11:23:53  更:2022-02-04 11:26:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 6:25:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码