一,Mysql 多实例的作用的问题


1,有效利用服务器的资源

当单个服务器资源有剩余的时候,可以充分利用剩余的资源以提供更多的服务

2,节约服务器的资源

当公司资源紧张,但是数据库各自需要独立提供服务,而且需要主从同步等技术时候,此时使用多实例是最好的。

3,资源互相抢占的问题

当某个服务实例并发很高或者有慢查询的时候,整个实例会消耗更多的CPU,内存,磁盘IO资源,导致服务器上其他的实例提供的服务质量大大下降,相当于一个大房子,多个卧室,大家共用一个卫生间,早餐起床,一个人上厕所,长期占用,其他人要等待一样的道理。

二、Mysql 多实例的应用场景

1,资源紧张型的公司

业务量不大,不想花钱,又有多需求,所以特别适合多实例

2,并发访问不是特别大的网站

当公司业务量不大的适合,服务器资源没有充分利用,有浪费的时候,就可以使用多实例

3,百度搜索引擎就使用了多实例  ,sina 网也使用了多实例

目的,节约IDC空间,资源充分利用

sina的配置 SATA 15000转  4块做raid5  48G内存

三、MySQL多实例的配置方案

方案一:如下图  推荐使用此

这种方式的优势逻辑简单,配置简单,耦合度低

缺点是管理起来不太方便。

方案二:单一的部署方案   不推荐,耦合性太高

[mysqld_muti]

即一个配置文件 启动多个实例

四、开始配置MySQL多实例

环境介绍:

mysql 版本:5.6.27

操作系统:Centos 6.5

mysql实例数:2个

实例占用端口分别为:3306、3307

先配置方案一:

1.下载:在http://dev.mysql.com/downloads/mysql/官网上下载

2.解压

1
tar xvf mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz

3.移动到/usr/local/mysql

1
mv mysql-5.6.27-linux-glibc2.5-x86_64 mysql

4.安装依赖的lib包:

1
centos:yum install  libaio -y

5、配置用户,目录

1
2
3
4
5
shell> groupadd mysql
shell> useradd -r -g mysql mysql
shell> cd /usr/local/mysql
shell> chown -R mysql .
shell> chgrp -R mysql .

6、使用/data/目录作为MySQL多实例的总目录

1
 mkdir -p /data/{3306,3307}/data

7、开始配置多实例的配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
vim  /data/3306/my.cnf
[mysqld] 
 #general
 basedir = /usr/local/mysql
 datadir = /data/3306/data
 socket = /data/3306/mysql.sock
 user = mysql
 port = 3306
 server_id = 1
 log-error = /data/3306/err.log
 pid = /data/3306/mysql.pid
 #binlog 
 log-bin  = /data/3306/mysql-bin
 sync-binlog = 1
 #InnoDB
 innodb_flush_log_at_trx_commit
 innodb_support_xa = 1                     
 #other
 character_set_server = utf8
 default_storage_engine =InnoDB
 ft_min_word_len = 1
 open_files_limit = 65535
 auto-increment-increment = 10
 auto-increment-offset = 1 
 log_slave_updates=1          允许备库将其重放的事件也记录到自身的二进制日志中
 read_only=0                阻止任何没有特权权限的线程修改数据
 skip_slave_start 
[client]
 socket = /data/3306/mysql.sock
 port = 3306

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
vim  /data/3307/my.cnf
[mysqld] 
 #general
 basedir = /usr/local/mysql
 datadir = /data/3307/data
 socket = /data/3307/mysql.sock
 user = mysql
 port = 3307
 server_id = 1
 log-error = /data/3307/err.log
 pid = /data/3307/mysql.pid
 #binlog 
 log-bin  = /data/3307/mysql-bin
 sync-binlog = 1
 #InnoDB
 innodb_flush_log_at_trx_commit
 innodb_support_xa = 1                     
 #other
 character_set_server = utf8
 default_storage_engine =InnoDB
 ft_min_word_len = 1
 open_files_limit = 65535
 auto-increment-increment = 10
 auto-increment-offset = 1 
 log_slave_updates=1          允许备库将其重放的事件也记录到自身的二进制日志中
 read_only=0                阻止任何没有特权权限的线程修改数据
 skip_slave_start 
[client]
 socket = /data/3307/mysql.sock
 port = 3307

8、创建多实例的启动文件 。

放到/data/3306  | /data/3307 下

脚本省略(mysqld)

多实例启动文件的启动MySQL服务实质:

1
2
mysqld_safe --defaults-file=/data/3306/my.cnf 2>&1 >/dev/null &
mysqld_safe --defaults-file=/data/3307/my.cnf 2>&1 >/dev/null &

多实例启动文件的停止MySQL服务实质:

1
2
 mysqladmin -u root -p passwd -S /data/3306/mysql.sock shutdown
 mysqladmin -u root -p passwd -S /data/3306/mysql.sock shutdown  平滑停止

9,授权MySQL用户,和组管理整个多实例目录

1
 chown -R mysql.mysql /data

10,配置MySQL全局环境变量

1
2
 echo "export PATH=$PATH:/usr/local/mysql/bin/"  >> /etc/profile
 source  /etc/profile

11,开始初始化数据库

1
2
3
 cd/usr/local/mysql/scripts/
 ./mysql_install_db --user=mysql  --datadir=/data/3306/data/ --basedir=/usr/local/mysql/
 ./mysql_install_db --user=mysql  --datadir=/data/3307/data/ --basedir=/usr/local/mysql/

什么初始化数据库?

a,初始化的主要目的就是创建基础的数据库文件,例如生成MySQL的库表

b,初始化后,产看目录,可以看到一些表文件

12,启动| 停止 MySQL服务

如果有脚本,则使用脚本启动

1
2
/data/3306/mysql  start 
/data/3307/mysql  start

如果没有脚本,则使用以下启动

1
mysqld_safe --defaults-file=/data/3306/my.cnf 2>&1 >/dev/null &
1
2
3
4
5
6
7
mysqld_safe --defaults-file=/data/3307/my.cnf 2>&1 >/dev/null &
如果没有脚本,则使用一下启动停止
mysqladmin -u root -p passwd -S /data/3306/mysql.sock shutdown
mysqladmin -u root -p passwd -S /data/3306/mysql.sock shutdown  平滑停止|

13,检查

登陆:

mysql -S /data/3306/mysql.sock

管理的话,在本地都是采用 -S /data/3306/mysql.sock,如果在远程可以通过不同的端口连接上去坐管理操作。其他的和单实例的管理没什么区别!

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

再来看第二种通过官方自带的mysqld_multi来实现多实例实战:

这里的mysql安装以及数据库的初始化和前面的步骤一样,就不再赘述。

mysqld_multi的配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
vim /etc/my.cnf
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
user = admin
password password
[mysqld1] 
 #general
 basedir = /usr/local/mysql/
 datadir = /data/3306/data/
 socket = /data/3306/mysql.sock
 user = mysql
 port = 3306
 server_id = 1
 log-error = /data/3306/
 pid = /data/3306/
 #binlog 
 log-bin  = /data/3306/mysql-bin
 sync-binlog = 1
 #InnoDB
 innodb_flush_log_at_trx_commit
 innodb_support_xa = 1                     
 #other
 character_set_server = utf8
 default_storage_engine =InnoDB
 ft_min_word_len = 1
 open_files_limit = 65535
 auto-increment-increment = 10
 auto-increment-offset = 1 
 log_slave_updates=1          允许备库将其重放的事件也记录到自身的二进制日志中
 read_only=0                阻止任何没有特权权限的线程修改数据
 skip_slave_start 
[client]
 socket = /data/3306/mysql.sock
 port = 3306
[mysqld2]
 #general
 basedir = /usr/local/mysql/
 datadir = /data/3307/data/
 socket = /data/3307/mysql.sock
 user = mysql
 port = 3307
 server_id = 2
 log-error = /data/3307/
 pid = /data/3307/
 #binlog 
 log-bin  = /data/3307/mysql-bin
 sync-binlog = 1
 #InnoDB
 innodb_flush_log_at_trx_commit
 innodb_support_xa = 1                     
 #other
 character_set_server = utf8
 default_storage_engine =InnoDB
 ft_min_word_len = 1
 open_files_limit = 65535
 auto-increment-increment = 10
 auto-increment-offset = 1 
 log_slave_updates=1          允许备库将其重放的事件也记录到自身的二进制日志中
 read_only=0                阻止任何没有特权权限的线程修改数据
 skip_slave_start 
[client]
 socket = /data/3307/mysql.sock
 port = 3307
[mysql]
no-auto-rehash
prompt=\\u@\\d \\R:\\m>
[mysqld_safe]
open-files-limit = 8192

mysqld_multi启动

1
2
3
4
5
6
7
8
9
10
11
/usr/local/mysql/bin/mysqld_multi start 1
/usr/local/mysql/bin/mysqld_multi start 2
  
停止MySQL实例
mysqladmin -uroot -p -S /data/3306/mysql.sock shutdown
mysqladmin -uroot -p -S /data/3307/mysql.sock shutdown
更改原来密码
mysqladmin -uroot password '123456' -S /data/3306/mysql.sock
mysqladmin -uroot password '123456' -S /data/3307/mysql.sock

测试登陆

1
2
mysql -uroot -p -S /data/3306/mysql.sock 
mysql -uroot -p -S /data/3307/mysql.sock

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

多实例MySQL忘记密码,修改密码的方法:

1,停掉原有实例进程

1
mysqladmin -uroot -p -S /data/3306/mysql.sock shutdown

2,加参数登录MySQL,此时跳过密码验证

1
mysqld_safe  --defaults-file=/data/3306/my.cnf  --skip-grant-tables  &

3,登录,并修改密码

1
mysql -uroot -p -S /data/3306/mysql.sock   登录时空密码

修改密码:

1
2
update mysql.user set passowrd=password("123456"where user='root';
flush privileges;

4,重启MySQL,使用新密码登录

1
2
mysqladmin -uroot -p -S /data/330/mysql.sock shutdown
mysqld_safe --defaults-file=/data/3306/my.cnf 2>&1 >/dev/null &

本文转自crazy_charles 51CTO博客,原文链接:http://blog.51cto.com/douya/1787516,如需转载请自行联系原作者

mysql 多实例应用配置部署指南相关推荐

  1. mysql多实例安装配置_MySQL多实例安装配置

    MySQL进行多实例配置再生产环境中非常常见,比如一些高配置数据库服务器,就会跑多个MySQL实例,借助多实例绑定的方式提高服务器的整体资源利用率.另外在MySQL5.7以上版本还不支持多源复制时,当 ...

  2. Project Server 2003配置部署指南_百度文库

    Project Server 2003配置部署指南_百度文库 Project server 2003配置部署指南 - 网管地带 - IT博客

  3. MySQL免安装版配置部署详细教程

    MySQL免安装版配置部署详细教程 这里写目录标题 MySQL免安装版配置部署详细教程 部署MySQL免安装版(windows版) 1.windows的mysql配置文件是my.ini,将此文件放到m ...

  4. MySQL多实例安装配置指南

    系统环境:centos 6.2 64位 内核版本: 2.6.32-220.el6.x86_64 mysql版本:5.1.62 如果喜欢这篇博文,请给个赞,更多博文请访问 平凡的日子 linux开源技术 ...

  5. mysql 多进程配置_基于mysql_multi实现MySQL多实例多进程配置

    环境设置 一台服务器配置IP为:192.168.200.111 主机名为:localhost 实验初始配置:关闭防火墙与selinux systemctl stop firewalld iptable ...

  6. mysql多实例安装配置演示

    前言: 单个mysql服务会随着用户访问量增加导致性能急剧下降,所以可以增加MySQL实例来提升服务器的资源使用率,降低单个mysql服务的并发请求量. 接下来基于上一篇博文mysql安装演示进行第二 ...

  7. MySQL免安装版配置部署

    MySQL下载地址:http://dev.mysql.com/downloads/mysql/ 1.Windows下安装MySQL 我下的是最新版的MySQL,解压后,目录如下: 将解压目录下默认文件 ...

  8. mysql多实例配置安装_Mysql 多实例安装配置方法一

    Mysql 多实例安装配置方法一 环境: 操作系统:ubutun 11.1 Mysql版本:mysql-5.5.19(二进制) 其他方法:mysqld_multi 以下步骤:在192.168.129. ...

  9. Linux下mysql支持中文,linux下mysql环境支持中文配置步骤

    sql脚本执行前加上: CREATE DATABASE IF NOT EXISTS mydatabase DEFAULT CHARSET utf8 COLLATE UTF8_GENERAL_CI; u ...

最新文章

  1. 带您走进七周七语言的程序世界
  2. 给定一个单词集合,找出可以相互转换的集合。比如abc bca cba都可以相互转换(变位词)
  3. 【深度学习】弱/半监督学习解决医学数据集规模小、数据标注难问题
  4. 数据结构之——队列与循环队列
  5. 常用基础参数PrintGCDetails回收前后对比讲解
  6. 【289】◀▶ Python I/O 读写文本文件
  7. 深度学习(二十)——Ultra Deep Network, 图像超分辨率算法
  8. 银行计算机设备日常检查表,[计算机]201154安全检查表.doc
  9. 我的世界java版做船_“不要在云了,船的合成用木铲?”我的世界:Java和基岩版的差异...
  10. 算法训练+乘法表c语言,[蓝桥杯][算法提高VIP]输出九九乘法表 (C语言代码)
  11. matlab怎么做到使用java,如何在Matlab中使用java.nio?
  12. 如何为SharePoint添加一个简单地SMTP邮件发送服务器?
  13. CDC相关知识点总结
  14. FreeBSD搭建Nginx+Apache24+php56+mysql56手把手一步步的笔记
  15. Hadoop专业解决方案-第5章 开发可靠的MapReduce应用
  16. verilog 分频器设计(奇偶分频、半整数分频、任意分频、任意占空比)
  17. 小白量化《穿云箭集群量化》(1)小白草根超级量化软件介绍
  18. (2.3)【遥控型木马-灰鸽子】原理、使用方法
  19. 网站性能优化三大策略
  20. 智慧公厕擦手纸洗手液余量实时在线统计

热门文章

  1. linux 共享内存_盘点那些linux 后台开发类常见问题及知识点
  2. 底部导航栏Bottom navigation规范指南
  3. Java高并发编程:线程池
  4. sqlitepython导入数据_python从sqlite读取并显示数据的方法
  5. 控件不支持html5,javascript – HTML5视频控件不起作用
  6. eplan增加其他到工具栏_EPLAN增效之工具栏定制(十三:端子排编辑不进导航器)
  7. web浏览器_你最常用的web测试-浏览器兼容性测试
  8. (转)函数指针,指针函数,指向函数的指针,返回指针的函数
  9. 已知两点的经度和纬度,计算两点间的距离(php,javascript)
  10. 在Qt中如何使用QtDesigner创建的UI文件(一) (转)