3.1、什么是mysql多实例:

3.2、mysql多实例的作用和问题:

3.3、mysql多实例生产应用的场景:

1、资金紧张的公司:

2、并发访问并不是很大的业务:

3、门户网站应用mysql多实例场景:

48核,百度服务器;

3.4、mysql多实例常见配置:

3.5、安装mysql多实例:

生产环境硬件配置:内存32g、cpu 8核、6*600g sas 15k,2-3个实例;

本文档以cmak编译安装好mysql后进行的多实例安装;

1、安装mysql多实例的条件:

(1)安装mysql,安装依赖的包;

yum install ncurses-devel -y #编译时已经安装

yum install libaio-devel -y

(2)以cmake编译安装mysql进行的多实例安装和二

进制安装的mysql安装多实例的方法一致;

2、条件准备:

(1)因为已经安装好了单实例,进行清理(二进制安装同理,实际安装时到数据库初始化之前

且目录权限和环境变量已配好);

[root@backup application]# pkill mysqld

[root@backup application]# ps -ef | grep mysql | grep -v grep

[root@backup application]# rm -f /etc/init.d/mysqld

[root@backup application]# rm -f /etc/my.cnf

[root@backup application]# rm -rf mysql/data/*

(2)设置mysql多实例的目录:

[root@backup application]# mkdir -p /data/{3306,3307}/data

[root@backup application]# tree /data

/data

├── 3306

│   └── data

└── 3307

└── data

4 directories, 0 files

(3)mysql多实例启动和停止服务的实质:

如果my.cnf不在/etc/目录下面,mysql的启动和停止如下;

3、设置mysql多实例的配置文件:

说明:以下服务器内存16G,4核。

(1)3306:

###############################################################

#该配置参数可用于主从复制,也可用于单实例16G_4核;

#普通的日志文件在'/data/3306/'目录,打开了binlog日志(保存14天);

#中继日志在数据目录下面(自动清理无用的中继日志);

###############################################################
[client]

port = 3306

socket = /data/3306/mysql.sock

default-character-set=utf8

#客户端的字符集,可以通过修改/etc/i18n修改,不需重启mysql;

[mysql]

no-auto-rehash

#不开启mysql命令自动补全

[mysqld]

#read-only

#只读权限,一般设置在从库,对all privileges和super权限用户无效;

#skip-networking

###########################################################

#开启该选项可以彻底关闭MySQL的TCP/IP连接方式,如果WEB 服务器是以远程连接

#的方式访问MySQL数据库服务器则不要开启该选项,否则将无法正常连接;如果所有

#的进程都是在同一台服务器连接到本地的 mysqld, 这样设置将是增强安全的方法;

###########################################################

user = mysql

port = 3306

socket = /data/3306/mysql.sock

basedir = /application/mysql

datadir = /data/3306/data

open_files_limit = 10240

#mysql打开的文件描述符长度;

#default-character-set=utf8 #mysql5.1

character-set-server = utf8 #mysql5.5

#建库时的字符集,编译时指定可以不指定,修改时需要重启mysql服务;

back_log = 600

#接受的tcp队列;

max_connections = 3000

#会话上限;

max_connect_errors = 6000

#客户端密码错误允许最大次数;

table_open_cache = 614

#所有线程最大打开表的数量;

skip-external-locking

#不允许外部文件级别的锁;

max_allowed_packet = 32M

#设置在网络传输中一次消息传输量的最大值,最大为1GB,默认1MB;

sort_buffer_size = 2M #重点优化参数;

###########################################################

#最小排序缓冲字节;并不是越大越好,由于是connection级的参数,过大的设置+高

#并发可能会耗尽系统内存资源。例如:500个连接将会消耗

#500*sort_buffer_size(8M)=4G内存;

###########################################################

join_buffer_size = 2M

#联合查询所使用的缓冲区大小;

thread_cache_size = 300 #重点优化参数;

###########################################################

#保留多少线程缓存;设置规则如下:

#1GB 内存配置为8,2GB配置为16,3GB配置为32,4GB或更高内存,可配置更大。

###########################################################

thread_concurrency = 8 #重点优化参数;

#此允许应用程序示在同一时间给予渴望被运行的线程的数量:cpu数*2;

query_cache_size = 64M #重点优化参数;

###########################################################

#查询缓存大小,如有下一次同样查询不在处理直接返回结果;该参数不适合分配过

#大而且在高并发,写入量大的系统,建议把该功能禁掉。

###########################################################

query_cache_limit = 4M

#指定单个查询能够使用的缓冲区大小,默认是1M;

query_cache_min_res_unit = 2K

###########################################################

#默认4k,设置值大对大数据查询有好处,但如果你的查询都是小数据查询,就容易

#造成内存碎片和浪费;

###########################################################

default-storage-engine = InnoDB

#InnoDB数据库引擎,支持事物,用于insert,update;

#default-storage-engine = MyISAM

#MyISAM数据库引擎,不支持事物,用于select;

thread_stack = 192K

#线程的堆大小,128K到4GB;

transaction_isolation = READ-COMMITTE #重点优化参数;

###########################################################

#查看事物隔离级别的方法:SELECT @@tx_isolation;设定可用的级别如下:

#1.READ-UNCOMMITTED读未提交;2.READ-COMMITTE读已提交;

#3.REPEATABLE-READ可重复读(默认);4.SERIALIZABLE串行;

###########################################################

tmp_table_size = 256M

#单个临时表的大小,超过此值放入磁盘;

max_heap_table_size = 256M

#独立的单个表内存表的大小

slow_query_log = ON

long_query_time = 2

slow_query_log_file = /data/3306/mysql-slow.log

#以上三个参数记录慢日志,查询时间超过2秒以上的

#log-queries-not-using-indexes

#如果运行的SQL语句没有使用索引,mysql会将这条SQL语句记录到慢查询日志文件中。

#general_log = ON

#将所有到达MySQLServer的SQL语句记录下来,默认关闭;

#general_log_file = /data/3306/mysql.log

#general_log文件位置,默认在数据库的data目录下;

relay-log = /data/3306/data/mysqld-relay-bin

#定义relay_log的位置和名称,用于从库,默认位置在数据文件的目录;

max_relay_log_size = 512M

#relay-log允许的最大值,如果该值为0大小为1G,默认是1G;

relay-log-purge = ON

#自动清空不再需要中继日志时,默认启用;

log-bin = /data/3306/mysql-bin

#打开二进制日志功能.在复制(replication)配置中,作为MASTER主服务器必须打开此项;

binlog_cache_size = 4M

binlog_format = mixed #重点优化参数;

##########################################################

#row:行级,体积大,支持函数等;statement:默认,对函数支持不是很好模;

#mixed:兼容row和statement模式,推荐;

#innodb的事务隔离级别是read-commited或read-uncommited模式时,

#binlog不可以使用statement模式;

##########################################################

max_binlog_cache_size = 8M

max_binlog_size = 512M

#binlog的最大值是多少;

expire_logs_days = 14

#超过14天的binlog会被删除;

key_buffer_size = 2048M

#########################################################

#指定用于索引的缓冲区大小,增加它可得到更好的索引处理性能。

#对于内存在4GB左右的服务器来说,该参数可设置为256MB或384MB。

#########################################################

read_buffer_size = 1M

#读查询操作所能使用的缓冲区大小。

read_rnd_buffer_size = 16M

#MySql的随机读(查询操作)缓冲区大小。

bulk_insert_buffer_size = 64M

#批量插入数据缓存大小,可以有效提高插入效率,默认为8M;

myisam_sort_buffer_size = 128M

#MyISAM表发生变化时重新排序所需的缓冲;

myisam_max_sort_file_size = 10G

#MySQL重建索引时所允许的最大临时文件的大小;

myisam_repair_threads = 1

#########################################################

#如果一个表拥有超过一个索引, MyISAM 可以通过并行排序使用,超过一个线程

#去修复他们,这对于拥有多个CPU以及大量内存情况的用户,是一个很好的选择;

#########################################################

myisam_recover_options=force,backup

#########################################################

#自动检查和修复没有适当关闭的 MyISAM 表。back:在恢复过程中数据文件被

#更改了,将tbl_name.MYD文件备份为tbl_name-datetime.BAK。force:即使

#MYD文件将丢掉多个行也进行恢复。

#########################################################

skip-name-resolve

#禁止MySQL对外部连接进行DNS解析,解决mysql连接慢的问题;

lower_case_table_names = 1

#表名存储在磁盘是小写的,比较的时候是不区分大小写的。

slave-skip-errors = 1007,1022,1050,1062,1169

#在从库上配置,跳过主从同步时的错误,主要是跳过重复的值;

#binlog-do-db = test

#允许同步的数据库,默认允许所有的库同步;

#binlog-ignore-db = information_schema

#binlog-ignore-db = performance_schema

#主从同步时设置不需要同步的库;

server-id = 1

#表示是本机的序号为1,唯一;

innodb_additional_mem_pool_size = 16M

#############################################################

#这个参数用来设置 InnoDB 存储的数据目录信息和其它内部数据结构的内存池大小,

#这不是一个强制参数,可以被突破。

#############################################################

innodb_buffer_pool_size = 2048M #重点优化参数

#############################################################

#包括数据页、索引页、插入缓存、锁信息、自适应哈希所以、数据字典信息;

#物理内存的30%-50%;

#############################################################

#innodb_data_home_dir = /data/3306/data

#InnoDB共享表空间的位置,默认是data目录;

innodb_data_file_path = ibdata1:1024M:autoextend

#innodb共享表空间文件,重要数据,不指定默认会生成;

innodb_file_io_threads = 4

#############################################################

#用来同步 IO 操作的 IO 线程的数量. 此值在 Unix 下被硬编码为 4,但是在Windows磁盘

#I/O可能在一个大数值下表现的更好;

#############################################################

innodb_thread_concurrency = 4 #重点优化参数

#innodb线程,服务器有几个CPU就设置为几,建议用默认设置,一般为8,为0时不限制。

innodb_flush_log_at_trx_commit = 2 #重点优化参数;

##############################################################

#如果将此参数设置为1,将在每次提交事务后将日志写入磁盘。为提供性能,可以设置为

#0或2,但要承担在发生故障时丢失数据的风险。0和2最大的不同是,如果MySQL进程挂

#了,2不会丢失任何事务,如果是整个服务器挂了,则还是可能丢失一些事务的。

##############################################################

innodb_log_buffer_size = 16M

##############################################################

#此参数确定些日志文件所用的内存大小,以M为单位。缓冲区更大能提高性能,但意外

#的故障将会丢失数据.MySQL开发人员建议设置为1-8M之间;

##############################################################

innodb_log_file_size = 128M

###############################################################

#此参数确定数据日志文件的大小,以M为单位,更大的设置可以提高性能,但也会增加恢

#复故障数据库所需的时间;

###############################################################

innodb_log_files_in_group = 3

#为提高性能,MySQL可以以循环方式将日志文件写到多个文件。推荐设置为3;

innodb_max_dirty_pages_pct = 90

#innodb刷新时间(s),越小io负担越重,越大内存、cpu负担越重,建议在75-90;

innodb_lock_wait_timeout = 120

#InnoDB 事务在被回滚之前可以等待一个锁定的超时秒数,即等待另一个表锁被释放的时间。

innodb_file_per_table = 1

#InnoDB为独立的表空间模式,在Insert操作上有优势;

innodb_write_io_threads = 4

innodb_read_io_threads = 4

###############################################################

#innodb使用后台线程处理数据页上的读写 I/O(输入输出)请求,根据你的CPU核数来更改,默

#认是4;这两个参数不支持动态改变,需要把该参数加入到my.cnf里,修改完后重启MySQL

#服务,允许值的范围从 1-64;

###############################################################

#innodb_force_recovery=1

#如果你发现 InnoDB 表空间损坏, 设置此值为一个非零值可能帮助你导出你的表.从1开

#始并且增加此值知道你能够成功的导出表。

################################################################

sql-mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

#mysql支持的基本语法及校验规则

symbolic-links=0

#关闭数据分区存储

[mysqldump]

quick

#支持较大数据库的转储;

max_allowed_packet = 32M

[mysqld_safe]

log-error=/data/3306/mysql.err

pid-file=/data/3306/mysqld.pid

提示:

在my.cnf配置参数项中有中杠、下划线,两者都支持,使用"show global variables like '';"

时使用的是下划线。

(2)3307:

3307配置文件和3306的配置文件一致,需要修改server-id=2和将

3306配置文件中的路径改为3307的路径即可;

(3)目录树:

[root@backup application]# tree /data

/data

├── 3306

│   ├── data

│   └── my.cnf

└── 3307

├── data

└── my.cnf

4 directories, 2 files

3、mysql的多实例配置(1)的更多相关文章

  1. cmake安装mysql及多实例配置方法

    一.安装mysql 1. 生产环境如何选择MySQL版本 1. 选择社区版的稳定GA版本2. 可以选择5.1或5.5.互联网公司主流5.5, 其次是5.1和5.63. 选择发布后6个月以上的GA版4. ...

  2. mysql单机多实例配置

    Windows上配置多个mysql实例,主要改下配置文件即可,mysql目录如下: my2中主要改两个配置内容 datadir = D:/Program Files/Mysql/mysql-5.7.2 ...

  3. 3、mysql的多实例配置(2)

    4.设置mysql多实例启动脚本: (1)3306: [root@backup application]# cat /data/3306/mysql #!/bin/sh . /etc/init.d/f ...

  4. mysql 单机多实例配置

    如果你想在一台机器上进行主从配置实验,本篇可以帮助你实现愿望 [client] #password = your_password port = 3306 socket = /tmp/mysql.so ...

  5. 3、mysql的多实例配置(3)

    8.mysql多实例故障排错:

  6. MYSQL多实例配置方法 mysqld_multi方法

    在实际的开发过程中,可能会需要在一台服务器上部署多个MYSQL实例,那建议使用MYSQL官方的解决方案 mysqld_multi 1.修改my.cnf 如一个定义两个实例的参考配置: [mysqld_ ...

  7. MySQL单机多实例安装并配置主从复制

    单机多实例据说可以最大程度提高硬件使用,谁知道呢,但是以前的公司喜欢这样搞,我最近也在学习复制什么的,电脑搞不起两台虚拟机,刚好单机多实例可以解救我.下面就说说步骤. 承上文http://www.cn ...

  8. MySQL 5.5.35 单机多实例配置详解

    一.前言 二.概述 三.环境准备 四.安装MySQL 5.5.35 五.新建支持多实例的配置文件(我这里配置的是四个实例) 六.初始化多实例数据库 七.提供管理脚本 mysqld_multi.serv ...

  9. MYSQL多实例配置与使用教程

    原文http://www.111cn.net/database/mysql/58651.htm 在实际的开发过程中,可能会需要在一台服务器上部署多个MYSQL实例,那建议使用MYSQL官方的解决方案 ...

随机推荐

  1. Linux进阶之TCP三次握手四次挥手

    TCP(Transfer control protocol)传输控制协议 一.两种传输模式: TCP面向有连接 可靠 常用于点对点 微信 UDP面向无连接 高速 常用于点对面 直播 二.数据方向: 在 ...

  2. Linux进阶之日志管理

    一.何为日志 1.在程序执行时,可以通过标准输出以及错误输出,让我们知道程序的执行情况,而系统不可能将所有程序的输出信息一起显示,要知道后台执行的程序非常之多,如果一起显示,那我们不用操作了,整天只看 ...

  3. 巧用 iLocker 清理恶意程序

    iLocker 作为 iGuard 网页防篡改系统的文件驱动过滤模块所衍生出来的独立应用,是一个文件防护工具,可以在文件系统驱动层检查文件操作,根据规则对文件操作进行放行或拦截,可以灵活细致地对文件访 ...

  4. leetcode -- 二进制

    leetcode -- 二进制 在学习编程语言的运算符时,大部分语言都会有与,或等二进制运算符,我在初期学习这些运算符的时候,并没有重点留意这些运算符,并且在后续的业务代码中也没有频繁的使用过,直到后 ...

  5. jenkins配置基于角色的项目权限管理设置步骤

    jenkins配置基于角色的项目权限管理设置步骤 本文链接:https://blog.csdn.net/russ44/article/details/52276222 由于jenkins默认的权限管理 ...

  6. Linux的top命令cpu占用少,但是显示很高

    最近发现服务器一个奇怪的问题,40核的双路服务器,装的centos7.4系统,开机过几个小时后会图形界面特别卡顿,top里发现CPU使用率50%左右,但是进程里没有大量占用的进程.怎么上传不了图片.. ...

  7. Unity3d_2018_2019_2020安装包

    网上各种注册,官网登陆这么麻烦,留着自用 链接:https://pan.baidu.com/s/1LBtMetnr9xkOa18xYiFoDA 提取码:o01t 链接:https://pan.baid ...

  8. 从性能角度帮你理解HTTP协议

    因为做性能测试分析的人来说,HTTP 协议可能是绕不过去的一个槛.在讲 HTTP 之前,我们得先知道一些基本的信息. HTTP(HyperText Transfer Protocol,超文本传输协议) ...

  9. 用OpenCV4实现图像的超分别率

    用OpenCV4实现图像的超分别率 本实验原文链接:· https://arxiv.org/pdf/1807.06779.pdf 原文摘要 单图像超分辨率(SISR)的主要挑战是如何恢复微小纹理等高频 ...

  10. MindSpore数据集mindspore::dataset

    MindSpore数据集mindspore::dataset ResizeBilinear #include <image_process.h> bool ResizeBilinear(L ...