mysql的多实例配置安装

一,什么情况下我们会考虑一台物理服务器上部署多个实例,大致有以下几种情况:

1,采用了数据伪分布式架构的原因,而项目启动初期又不一定有那多的用户量,为此先一组物理数据库服务器,但部署多个实例,方便后续迁移;

2,为规避mysql对SMP架构不支持的缺陷,使用多实例绑定处理器的办法(NUMA处理器必须支持,不过现在大部分处理器都支持的!),把不同的数据库分配到不同的实例上提供数据服务;

3,一台物理数据库服务器支撑多个数据库的数据服务,为提高mysql复制的从机的恢复效率,采用多实例部署;

已经为双主复制的mysql数据库服务器架构,想部分重要业务的数据多一份异地机房的热备份,而mysql复制暂不支持多主的复制模式,且不给用户提供服务,为有效控制成本,会考虑异地机房部署一台性能超好的物理服务器,甚至外加磁盘柜的方式,为此也会部署多实例;

4,传统游戏行业的MMO/MMORPG,以及Web Game,每一个服都对应一个数据库,而可能要做很多数据查询和数据订正的工作,为减少维护而出错的概率,也可能采用多实例部署的方式,按区的概念分配数据库;

二,mysql的多实例的介绍

mysqld_multi被设计为了管理实现多个mysqld服务进程

三,配置多实例mysqld及初始化

1,创建实例的数据文件目录

[root@test4 ~]# cd /mysql/
[root@test4 mysql]# ls 
data
[root@test4 mysql]# mkdir data2/
[root@test4 mysql]# mkdir data3/

2,初始化多实例mysql
[root@test4 mysql]# mysql_install_db   --datadir=/mysql/data2/  --user=mysqlInstalling

MySQL system tables...
OK

[root@test4 mysql]# mysql_install_db   --datadir=/mysql/data3/  --user=mysqlInstalling MySQL

system tables...
OKFilling help tables...
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/local/mysql/bin/mysqladmin -u root password 'new-password'
/usr/local/mysql/bin/mysqladmin -u root -h test4.wolf.org password 'new-password'
Alternatively you can run:
/usr/local/mysql/bin/mysql_secure_installation
which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.
See the manual for more instructions.
You can start the MySQL daemon with:
cd /usr/local/mysql ; /usr/local/mysql/bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd /usr/local/mysql/mysql-test ; perl mysql-test-run.pl
Please report any problems with the /usr/local/mysql/bin/mysqlbug script!

3,配置mysqld的多实例my.cnf文件

(1)配置my.cnf文件详解

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
[root@test4 ~]# cat  /etc/my.cnf
[mysqld_multi]
mysqld =/usr/local/mysql/bin/mysqld_safe
mysqladmin =/usr/local/mysql/bin/mysqladmin
user =test
password =test
[client]
#password       = your_password
port            = 3306
socket          = /tmp/mysql.sock
[mysqld3306]
port            = 3306
socket          = /tmp/mysql3306.sock
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
log-bin=mysql-bin
binlog_format=mixed
datadir = /mysql/data
server-id       = 1
[mysqld3307]
port            = 3307
socket          = /tmp/mysql3307.sock
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
log-bin=mysql-bin
binlog_format=mixed
datadir = /mysql/data2
server-id       = 1
[mysqld3308]
port            = 3308
socket          = /tmp/mysql3308.sock
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
log-bin=mysql-bin
binlog_format=mixed
datadir = /mysql/data3
server-id       = 1
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout

(2)启动多实例

[root@test4 ~]# /usr/local/mysql/bin/mysqld_multi  --defaults-file=/etc/my.cnf  start 3308

[root@test4 ~]# ps aux|grep 3308
root      4887  0.0  0.2 106012  1348 pts/1    S    14:57   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --port=3308 --socket=/tmp/mysql3308.sock --skip-external-locking --key_buffer_size=16M --max_allowed_packet=1M --table_open_cache=64 --sort_buffer_size=512K --net_buffer_length=8K --read_buffer_size=256K --read_rnd_buffer_size=512K --myisam_sort_buffer_size=8M --log-bin=mysql-bin --binlog_format=mixed --datadir=/mysql/data3 --server-id=1
mysql     5034  0.0  1.3 125304  6668 pts/1    Sl   14:57   0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/mysql/data3 --user=mysql --skip-external-locking --key_buffer_size=16M --max_allowed_packet=1M --table_open_cache=64 --sort_buffer_size=512K --net_buffer_length=8K --read_buffer_size=256K --read_rnd_buffer_size=512K --myisam_sort_buffer_size=8M --log-bin=mysql-bin --binlog_format=mixed --server-id=1 --log-error=/mysql/data3/test4.wolf.org.err --pid-file=/mysql/data3/test4.wolf.org.pid --socket=/tmp/mysql3308.sock --port=3308

(3)连接mysql多实例

[root@test4 ~]# mysql  -S  /tmp/mysql3308.sock 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.70-log Source distribution

Copyright (c) 2000, 2013, 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> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+
3 rows in set (0.01 sec)
  (4)启停多实例musql

由于是多实例的方式来管理mysql,所以暂时不可以通过如下方式来停止数据库

[root@test4 ~]# /usr/local/mysql/bin/mysqld_multi  --defaults-file=/etc/my.cnf  stop  3308

真正的关闭多实例MySQL的方法是通过配置在/etc/my.cnf中test用户,

[root@test4 ~]# mysql -S  /tmp/mysql3308.sock 
mysql> GRANT SHUTDOWN ON *.* TO 'test'@'localhost' IDENTIFIED BY 'TEST' WITH GRANT OPTION;

Query OK, 0 rows affected (0.00 sec)

[root@test4 ~]# mysqld_multi  --defaults-file=/etc/my.cnf   stop 3306
[root@test4 ~]# mysqld_multi  --defaults-file=/etc/my.cnf   stop 3307
[root@test4 ~]# mysqld_multi  --defaults-file=/etc/my.cnf   stop 3308
[root@test4 ~]# ps aux|grep mysql
root      6148  0.0  0.1 103152   824 pts/1    S+   15:48   0:00 grep mysql

本文出自 “好好活着” 博客,请务必保留此出处http://wolfword.blog.51cto.com/4892126/1241304

mysql dba系统学习(4)mysql的多实例multi启动停止相关推荐

  1. mysql dba系统学习-数据库事务详解

    mysql dba系统学习-数据库事务详解 上个星期去面试数据库管理员的工作,笔试通过之后就是直接的面试,他问了我一个问题,叫我介绍哈数据库的事务的看法和理解,但是不知所错的没有章法的乱答一气,唉唉, ...

  2. mysql dba系统学习(1)mysql各版本编译安装

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司.MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内, ...

  3. mysql dba系统学习(8)查询日志文件功能 mysql dba系统学习(9)slow query log慢查询日志功能

    查询日志的作用是记录所有客户端发来的sql语句,也就是记录客户端的所有操作 Log参数将要过时,现在用general_log来代替 打开查询日志功能 mysql> showvariables l ...

  4. mysql dba系统学习(2)了解mysql的源码目录及源文件

    了解mysql的源码目录 包括客户端代码,服务端代码,测试工具和其他库文件 Mysql源码结构 Bdb 伯克利DB表引擎 BUILD 构建工程的脚本 Client 客户端 Cmd-line-utils ...

  5. mysql dba系统学习(16)mysql的mysqldump备份 mysql dba系统学习(17)mysql的备份和恢复的完整实践

    mysql数据库的备份恢复 mysqldump备份数据库 -B, --databases     Dump several databases. Note the difference in usag ...

  6. mysql dba系统学习(18)mysql主从复制的实现 mysql dba系统学习(19)配置mysql+lvs+keeplived实现Mysql读操作的负载均衡

    mysql主从复制的实现 1.MySQL复制的实现原理 MySQL支持单向.双向复制.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入一个二进制日志文 ...

  7. mysql dba系统学习(12)mysql的数据文件 mysql dba系统学习(13)mysql的体系结构

    mysql的数据文件 一,系统参数datadir 在MySQL 中每一个数据库都会在定义好(或者默认)的数据目录下存在一个以数据库名字命名的文件夹,用来存放该数据库中各种表数据文件 datadir指定 ...

  8. mysql dba系统学习(6)二进制日志binlog之二

    MySQL 5.5 中对于二进制日志 (binlog) 有 3 种不同的格式可选:Mixed,Statement,Row,默认格式是 Statement.总结一下这三种格式日志的优缺点. MySQL ...

  9. mysql dba系统学习(3)mysql的启动停止

    mysql的启动有很多方法,我们将来一一讨论 一,mysqld mysqld是mysql的服务 mysqld这种方式启动的时候会读取my.cnf文件中的[mysqld]和[server]组group ...

最新文章

  1. 2021 年“微软学者”奖学金 11 人名单公布!
  2. 清华发布《AI芯片技术白皮书》:新计算范式,挑战冯诺依曼、CMOS瓶颈
  3. mysql-bin.000001文件的来源及处理方法
  4. 机房系统(九)——【组合查询】
  5. 为什么Facebook的API以一个循环作为开头?
  6. coreldraw错误代码14001_CorelDRAW文件损坏的几种解决方法
  7. mysql数据库下载压缩包_mysql 8.0.22 zip压缩包版(免安装)下载、安装配置步骤详解...
  8. linux安装 中文乱码怎么解决方法,Linux安装GBK/GB2312程序显示乱码的五种解决方法...
  9. 【Java】欧拉回路的判定
  10. Centos7下python3安装ipython
  11. 32k通过地址跳转到函数_【HYPERLINK】函数技巧,你一定要知道的!!!
  12. 华为的型号命名规则_iQOO新品入网;三星Galaxy S21首张官方渲染图曝光;华为nova8真机曝光...
  13. git分支指的是_Git分支是什么
  14. 软件工程中需要学习和掌握的软件都有哪些_9个B端产品经理需要懂的技术
  15. NBA历史上50大巨星2
  16. CAD迷你看图 for Mac(MiniCAD)
  17. 内网主机通过外网地址访问内网服务器
  18. idea 快捷键大全(全网最详细)
  19. PPT批量导入文字(Python实现)
  20. 软件测试工程师转行有哪些,如何转行成为软件测试工程师?

热门文章

  1. UML建模——用例图(Use Case Diagram)
  2. 机器学习Sklearn实战——其他线性回归模型、逻辑回归
  3. TensorFlow教程之完整教程 2.7 字词的向量表示
  4. linux修改容器内的mysql端口映射_修改docker容器端口映射的方法
  5. Tomcat - Tomcat 8.5.55 启动过程源码分析阶段二_load加载初始化
  6. RocketMQ-初体验RocketMQ(03)_RocketMQ多机集群部署
  7. Redis-09Redis的基础事务
  8. HIVE 查询显示列名 及 行转列显示
  9. python IP地址无效化
  10. java中8进制常量_下列关于Java语言简单数据类型的说法中,正确的一项是______。A.以0开头的整数代表8进制整型常量B....