MySQL 主从配置

环境

centos6.7 虚拟机两台

主:192.168.23.160

从:192.168.23.163

准备

在两台机器上分别安装mysql5.6.23,安装完成后利用临时密码登录mysql数据修改root的密码;将my.cnf配置文件放至/etc/my.cnf,重启mysql服务进程。

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]lower_case_table_names=1
skip_name_resolve
character-set-server=utf8
# 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 = 2G
long_query_time=2
slow_query_log=0
log_queries_not_using_index=1
thread_concurrency=8
thread_cache_size=32
max_connections=500
max_connect_errors=800# 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 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

配置主库

在主库的my.cnf配置文件的[mysqld]节点下增加

server_id=160

log_bin=mysql-bin

log_bin_trust_function_creators=1

重启mysql服务后登录mysql数据库,执行 how master status; 查看主库的状态

在这里插入图片描述

创建同步账号:grant replication slave on . to ‘sync’@’%’ identified by ‘123456’;

配置从库

在从库的my.cnf配置文件的[mysqld]节点下增加

server_id=163

replicate-ignore-table=dbname.table1,dbname.table2 //需要忽略同步的表

重启mysql服务后登录mysql数据库,执行以下命令:

change master to master_host='192.168.23.160', master_port=3306, master_user='sync', master_password='123456', master_log_file='mysql-bin.000004', master_log_pos=425;

master_log_file、master_log_pos为主库通过“how master status;”命令查询出来的结果。

通过show slave status \G;查看从库的连接状态

在这里插入图片描述

Slave_IO_Running、Slave_SQL_Running状态都为“Yes”表示成功。

注意:服务器直接要开放3306 端口,或者关闭防火墙!

初次配置可能会有Slave_IO_Running、Slave_SQL_Running状态都为“No”的情况,重启从库可以解决(保证主、从库配置正确、网络连接正常)。

日志配置

随着数据增多,日志文件会越来越多,需要定时清理日志,不然日志文件会占满磁盘。

在my.cnf 添加:expire_logs_days=[days] – 天数,表示在主数据库日志切换的时候会删除指定天数以前的日志;max_binlog_size 可以设置单个二进制文件的大小。

日志文件目录修改(主库)

1、关闭mysql服务

2、将原目录(/var/lib/mysql)下的mysql-bin.*文件移动到新的目录下(/home/mysql-logs),目录要有可读写权限;修改mysql-bin.index文件中的文件目录为绝对路径,如:/home/mysql-logs/mysql-bin.000001。

3、修改配置文件,log_bin=home/mysql-logs/mysql-bin

4、启动mysql服务

读写分离(mysql-proxy)

windows 下配置

[mysql-proxy]
admin-lua-script=D:/tools/mysql-proxy/lib/mysql-proxy/lua/admin.lua
proxy-backend-addresses=192.168.23.160:3306  -- 主库
proxy-read-only-backend-addresses=192.168.23.163:3306  -- 从库
proxy-lua-script=D:/tools/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua
log-file=D:/tools/mysql-proxy/log/mysql-proxy.log
log-level=debug
daemon=true
keepalive=true

Linux 下配置

安装pkg-config

1、编译mysql-proxy

**注:**0.8.5 不需要编译,也不需要有安装pkg-config

用mysql-proxy -V查看mysql-proxy的相关信息,这里留意下版本信息,将会在第三步配置lua路径的时候用到;

2、使用vim /etc/mysql-proxy.cnf命令打开mysqk-proxy的配置文件进行编辑:

在mysql-proxy.cnf中输入如下内容:

[mysql-proxy] 
admin-username=user   #admin用户名
admin-password=password    admin密码
admin-lua-script=/usr/lib64/mysql-proxy/lua/admin.lua    #lua位置,参见上面的版本信息
daemon=true   # mysql-proxy以守护进程方式运行
keepalive=true    #保持连接启动进程会有2个, 一号进程用来监视二号进程
proxy-backend-addresses=10.17.6.210   #目标地址,Indb内网地址,默认端口3306,10.17.6.210是目标inDB的ip
log-file=/var/log/mysql-proxy.log    #日志文件存储路径
log-level=debug

编辑完之后通过Esc退出编辑,然后用“:wq”保存mysql-proxy.cnf的编辑。

3、用chmod 0660 /etc/mysql-proxy.cnf命令来改变配置文件的权限,然后用 mysql-proxy --defaults-file=/etc/mysql-proxy.cnf启动mysql-proxy服务:

chmod 0660 /etc/mysql-proxy.cnf
mysql-proxy --defaults-file=/etc/mysql-proxy.cnf

4、用mysql -h$uhost_ip -P4040 -u$User -p$Password测试:

mysql -h106.75.94.37 -P4040 -uroot -p123456

$uhost_ip:UHost的外网IP $User:用户名 $Password:数据库密码

注意:打开防火墙的4040端口,MySQL-Proxy默认端口为4040,通过访问4040端口就可以访问3306端口。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/48789.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

API自动化管理: 从繁琐到轻松

在数字化时代,API(应用程序编程接口)在软件开发中扮演着至关重要的角色。然而,API管理可能会变得十分繁琐,耗费大量时间和资源。那么,如何实现API自动化管理,从而节省时间、提高效率&#xff0c…

基于SpringCloud的会议室预约系统Java基于微服务的会议室报修系统【源码+lw】

💕💕作者:计算机源码社 💕💕个人简介:本人七年开发经验,擅长Java、微信小程序、Python、Android、大数据等,大家有这一块的问题可以一起交流! 💕&#x1f495…

Wlan——Wlan服务集与Wlan漫游的概念

目录 Wlan服务集的基本概念 无线漫游基本概念 无线漫游的分类 无线漫游的数据转发路径 二层本地转发漫游 三层本地转发漫游 二/三层集中转发漫游 无线漫游注意事项 Wlan服务集的基本概念 概念 全称 描述 BSS 基本服务集BSS 无线网络的基本服务单元 可以理解为1个A…

Git:本地仓库创建和远程绑定

创建远程仓库 登录git网站,创建一个远程仓库 创建时可以选择仓库属性,公共/私有。仓库命名之类。创建完毕后可以在网站上看到仓库所在网址。 创建本地仓库 打开一个文件夹,鼠标右键Git Bash Here,打开git的命令行 git init//…

PyTorch Lightning:通过分布式训练扩展深度学习工作流

一、介绍 欢迎来到我们关于 PyTorch Lightning 系列的第二篇文章!在上一篇文章中,我们向您介绍了 PyTorch Lightning,并探讨了它在简化深度学习模型开发方面的主要功能和优势。我们了解了 PyTorch Lightning 如何为组织和构建 PyTorch 代码提…

QT基础教程之二 第一个Qt小程序

QT基础教程之二 第一个Qt小程序 按钮的创建 在Qt程序中&#xff0c;最常用的控件之一就是按钮了&#xff0c;首先我们来看下如何创建一个按钮 QPushButton * btn new QPushButton; 头文件 #include <QPushButton>//设置父亲btn->setParent(this);//设置文字btn-&g…

SQL两张表数据对比

表1&#xff1a; 表2&#xff1a; 1、查询两表的数据差异&#xff1a; # 查询表1中有但表2没有的数据 SELECT DATA FROM data1 WHERE ( DATA ) NOT IN ( SELECT DATA FROM data2 );# 查询表2中有但表…

xml对象与字符串互换

很多老系统&#xff0c;特别是C的系统&#xff0c;可能数据结构采用的xml。xml对java来说没有什么&#xff0c;但是C来说&#xff0c;可能还有个顺序问题&#xff0c;毕竟c没有那么多通用类库。 2 xstream 先说依赖&#xff0c;我本来不想升级&#xff0c;但是有个问题卡者就给…

drools8尝试

drools7升级到drools8有很大很大的变更.几乎不能说是一个项目了. 或者说就是名字相同的不同项目, 初看下来变化是这样 两个最关键的东西都retired了 https://docs.drools.org/8.42.0.Final/drools-docs/drools/migration-guide/index.html business central变成了一个VS code…

C语言学习系列-->看淡指针(3)

文章目录 一、字符指针变量二、数组指针变量2.1 概述2.2 数组指针初始化 三、二维数组传参本质四、函数指针五、typedef关键字六、函数指针数组 一、字符指针变量 在指针的类型中我们知道有⼀种指针类型为字符指针 char* 一般使用&#xff1a; #include<stdio.h>int main…

钛合金为何成为iPhone 15 Pro材料首选?

多年来&#xff0c;iPhone Pro一直采用厚重的钢框架&#xff0c;但不会持续太久。 有了iPhone 15 Pro&#xff0c;苹果可能会从钢框架转向钛框架&#xff0c;这不仅仅是因为它听起来更酷。钛比钢有很多优点&#xff0c;尤其是它更轻&#xff0c;这将解决iPhone Pro与普通iPhon…

Kubernetes 安全机制 认证 授权 准入控制

客户端应用若想发送请求到 apiserver 操作管理K8S资源对象&#xff0c;需要先通过三关安全验证 认证&#xff08;Authentication&#xff09;鉴权&#xff08;Authorization&#xff09;准入控制&#xff08;Admission Control&#xff09; Kubernetes 作为一个分布式集群的管理…

ethers.js2:provider提供商

1、Provider类 Provider类是对以太坊网络连接的抽象&#xff0c;为标准以太坊节点功能提供简洁、一致的接口。在ethers中&#xff0c;Provider不接触用户私钥&#xff0c;只能读取链上信息&#xff0c;不能写入&#xff0c;这一点比web3.js要安全。 除了之前介绍的默认提供者d…

JAVA免杀学习与实验

1 认识Webshell 创建一个JSP文件&#xff1a; <% page import"java.io.InputStream" %> <% page import"java.io.BufferedReader" %> <% page import"java.io.InputStreamReader" %> <% page language"java" p…

jmeter进行业务接口并发测试,但登录接口只执行一次

业务接口性能测试&#xff0c;往往都是需要登录&#xff0c;才能请求成功&#xff0c;通常只需要登录一次&#xff0c;再对业务接口多次并发测试。 在测试计划中&#xff0c;添加setUp线程组 把登录请求放入到该线程组中&#xff0c;设置HTTP信息头&#xff0c;JSON提取(提取登…

前端基础(ES6 模块化)

目录 前言 复习 ES6 模块化导出导入 解构赋值 导入js文件 export default 全局注册 局部注册 前言 前面学习了js&#xff0c;引入方式使用的是<script s"XXX.js">&#xff0c;今天来学习引入文件的其他方式&#xff0c;使用ES6 模块化编程&#xff0c;…

电路学习+硬件每日学习十个知识点(40)23.8.20 (希腊字母读音,阶跃信号和冲激信号的关系式,信号的波形变换,信号的基本运算,卷积积分,卷积和)

文章目录 1.信号具有时间特性和频率特性。2.模拟转数字&#xff0c;抽样、量化、编码3.阶跃信号和冲激信号4.信号的波形变换&#xff08;时移、折叠、尺度变换&#xff09;5.信号的基本运算&#xff08;加减、相乘、微分与积分、差分与累加&#xff09;5.1 相加减5.2 相乘5.3 微…

基础论文学习(1)——ViT

Vision Transformer&#xff08;ViT&#xff09; 模型架构是在 ICLR 2021 上作为会议论文发表的一篇研究论文中介绍的&#xff0c;题为“An Image is Worth 16*16 Words: Transformers for Image Recognition at Scale”。它由Neil Houlsby&#xff0c;Alexey Dosovitskiy和Goo…

springMVC之视图

文章目录 前言一、ThymeleafView二、转发视图三、重定向视图四、视图控制器view-controller五、补充总结 前言 SpringMVC中的视图是View接口&#xff0c;视图的作用渲染数据&#xff0c;将模型Model中的数据展示给用户。 SpringMVC视图的种类很多&#xff0c;默认有转发视图和…

vscode远程调试

安装ssh 在vscode扩展插件搜索remote-ssh安装 如果连接失败&#xff0c;出现 Resolver error: Error: XHR failedscode 报错&#xff0c;可以看这篇帖子vscode ssh: Resolver error: Error: XHR failedscode错误_阿伟跑呀的博客-CSDN博客 添加好后点击左上角的加号&#xff0…