MySQL多实例.md
MySQL5.7多实例配置
数据库实例1配置文件
# cat /etc/my.cnf
[mysqld]
datadir=/data/mysql
port=3306
socket=/tmp/mysql.sock
log_error=error.log
user=mysql
skip-name-resolve
[client]
user = root
password = redhat
[mysql]
prompt=(\\u@\\h) [\\d]>\\_
[mysqld1]
port = 3307
datadir = /data/mysql_1
socket = /tmp/mysql.sock1
数据库初始化
# mysqld --initialize-insecure --datadir=/data/mysql_1
mysql1多实例配置
在配置文件中新增如下内容:
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
log = /usr/local/mysql/mysqld_multi.log
多实例初始化:
# mysqld_multi report
Reporting MySQL servers
MySQL server from group: mysqld1 is not running
# mysqld_multi start 1
# ss -tnlp |grep mysql
LISTEN 0 80 :::3306 :::* users:(("mysqld",2094,16))
LISTEN 0 80 :::3307 :::* users:(("mysqld",3097,20))
# mysql -S /tmp/mysql.sock1 -u root -hlocalhost -p
Enter password:
(root@localhost) [(none)]> set password = "redhat";
Query OK, 0 rows affected (0.00 sec)
说明:实例启动后连接密码要么是空,要么是将密码生成在数据目录的错误日志中,其次在登录系统后最好将root密码设置成统一格式的,这样在今后登录就不用在输入密码了。
mysql2多实例配置
在配置文件中新增如下内容:
# cat /etc/my.cnf
[mysqld2]
port = 3308
datadir = /data/mysql_2
socket = /tmp/mysql.sock2
# mysqld --initialize-insecure --datadir=/data/mysql_2
# mysqld_multi report
Reporting MySQL servers
MySQL server from group: mysqld1 is running
MySQL server from group: mysqld2 is not running
# mysqld_multi start 2
# mysql -S /tmp/mysql.sock2 -uroot -hlocalhost -p
Enter password:
(root@localhost) [(none)]> set password = "redhat";
Query OK, 0 rows affected (0.00 sec)
# mysql -S /tmp/mysql.sock2
启动关闭注意事项
- 我们通过mysql 提供的/etc/inti.d/mysqld脚本启动的实例与mysqld_multi两种启动与关闭互不影响。他们的配置文件会先使用[mysqld]中配置的,但是如果多实例中自己配置和[mysqld]中的配置重合则会覆盖[mysqld]中的配置。
- mysqld_multi关闭实例一定要指定实例名称,不然会自动将所有的实例都给关闭了,这个需要注意。
# mysqld_multi report
Reporting MySQL servers
MySQL server from group: mysqld1 is running
MySQL server from group: mysqld2 is running
# mysqld_multi stop
# mysqld_multi report
Reporting MySQL servers
MySQL server from group: mysqld1 is not running
MySQL server from group: mysqld2 is not running
# mysqld_multi start 1
# mysqld_multi report
Reporting MySQL servers
MySQL server from group: mysqld1 is running
MySQL server from group: mysqld2 is not running
# mysqld_multi start 2
# mysqld_multi report
Reporting MySQL servers
MySQL server from group: mysqld1 is running
MySQL server from group: mysqld2 is running
# mysqld_multi stop 2
# mysqld_multi report
Reporting MySQL servers
MySQL server from group: mysqld1 is running
MySQL server from group: mysqld2 is not running
# mysqld_multi start 2
3.同时先前定义的3306端口的mysql 也是也是可以通过mysqld_multi的方式启动,需要将配置文件新增如下内容:
# cat /etc/my.cnf
···
[mysqld100]
port = 3306
datadir = /data/mysql
socket = /tmp/mysql.sock
···
# /etc/init.d/mysqld stop
Shutting down MySQL.. [ OK ]
# mysqld_multi report
Reporting MySQL servers
MySQL server from group: mysqld100 is not running
MySQL server from group: mysqld1 is running
MySQL server from group: mysqld2 is running
# /etc/init.d/mysqld status
MySQL is not running [FAILED]
# mysqld_multi start 100
# /etc/init.d/mysqld status
MySQL running (4700) [ OK ]
4.同时mysql还提供了mysqld_multi.server的系统服务启动脚本,如果有需要则可以拷贝到/etc/init.d/目录中进行启动与关闭。
5.在配置文件的mysqld_multi中,我们配置的mysql多实例的启动命令是mysqld_safe,关闭命令是mysqladmin。其中mysqld_safe是负责监控mysqld进程的脚本,如果mysqld意外挂掉是会将mysqld进程重新启动。意外挂掉例如:kill -9 ${mysql_pid}。
6.在配置mysqld_multi关闭多实例的时候我们使用的关闭的帐号密码是在[client]中定义的帐号密码,并且此帐号密码在所有mysql实例中必须都是相同且存在,不然是无法通过mysqld_multi命令管理mysql实例的启动与关闭。
7.mysqld_multi启动的帐号密码如果定义在[mysqld_multi]中,密码选项配置为pass而不是client端中配置的password选项。
多实例之不同版本安装
安装mysql5.6:
# tar xf mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
# ln -sv /usr/local/mysql-5.6.31-linux-glibc2.5-x86_64 /usr/local/mysql56
# cd /usr/local/mysql56
# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
配置5.6多实例:
[mysqld3]
server-id = 13
basedir=/usr/local/mysql56/
datadir=/data/mysql_3
socket = /tmp/mysql.sock3
port = 3356
启动5.6实例:
# mysqld_multi report
Reporting MySQL servers
MySQL server from group: mysqld100 is running
MySQL server from group: mysqld1 is running
MySQL server from group: mysqld2 is running
MySQL server from group: mysqld3 is not running
# mysqld_multi start 3
# mysql -S /tmp/mysql.sock3 -uroot -hlocalhost -p
Enter password:
(root@localhost) [(none)]> set password = password('redhat');
Query OK, 0 rows affected (0.05 sec)
MySQL多实例.md的更多相关文章
- MYSQL多实例配置方法 mysqld_multi方法
在实际的开发过程中,可能会需要在一台服务器上部署多个MYSQL实例,那建议使用MYSQL官方的解决方案 mysqld_multi 1.修改my.cnf 如一个定义两个实例的参考配置: [mysqld_ ...
- MySQL优化实例
这周就要从泰笛离职了,在公司内部的wiki上,根据公司实际的项目,写了一些mysql的优化方法,供小组里的小伙伴参考下,没想到大家的热情很高,还专门搞了个ppt讲解了一下. 举了三个大家很容易犯错的地 ...
- mysql 优化实例之索引创建
mysql 优化实例之索引创建 优化前: pt-query-degist分析结果: # Query 23: 0.00 QPS, 0.00x concurrency, ID 0x78761E301CC7 ...
- PHP调用MYSQL存储过程实例
PHP调用MYSQL存储过程实例 标签: mysql存储phpsqlquerycmd 2010-09-26 11:10 11552人阅读 评论(3) 收藏 举报 实例一:无参的存储过程$conn = ...
- JDBC连接MySQL 方法 实例及资料收集
JDBC连接MySQL 方法 实例及资料收集 准备工作 首先,安装MySQL,配置用户名和密码,创建数据库. 可参见之前的文章: http://www.cnblogs.com/mengdd/p/315 ...
- mysql多实例的配置和管理
原文地址:mysql多实例的配置和管理 作者:飞鸿无痕 多实例mysql的安装和管理 mysql的多实例有两种方式可以实现,两种方式各有利弊.第一种是使用多个配置文件启动不同的进程来实现多实例,这种方 ...
- MySQL多实例,主从同步
由于背景原因,所做的主从同步还是要基于MySQL 5.1的版本,主从同步主要是一个数据库读写访问原来的数据库热度过大,需要做到使用从库对读分压. MySQL主从同步介绍 MySQL 支持单双向 ...
- mysql多实例(个人的情况,不是大众的)里面有配置好的脚本+主从复制
[root@DB-S ~]# ll /usr/local/|grep mysql lrwxrwxrwx. 1 root root 21 Jun 14 01:52 mysql -> /alidat ...
- mysql多实例部署
mysql 多实例常规来讲,主要有二种方案可以实现,这二种方案各有利弊,如下:1.基于多配置文件 通过使用多个配置文件来启动不同的进程,以此来实现多实例. 优点:逻辑简单,配置简单 缺点:管理起来不方 ...
随机推荐
- JWT操作(.net)
1.JWT定义 JWT(Json Web Token)是一种用于双方之间传递安全信息的简洁的.URL安全的表述性声明规范.JWT作为一个开放的标准( RFC 7519 ),定义了一种简洁的,自包含的方 ...
- Redis-发布与订阅
发布与订阅(pub/sub)的特点是订阅者负责订阅频道发送者负责向频道发送二进制字符串消息.每当有消息发送至给定频道时,频道的所有订阅者都会收到消息 (发布和订阅命令) SUBSCRIBE : SUB ...
- EF访问数据库报“ExecuteReader 要求已打开且可用的 Connection。连接的当前状态为已关闭。”错误
我发生这个问题的原因是因为我用EF访问数据库时用的用到了两用方式,如下图 第一种方式访问时不会出现此错误,出现错误的是第二种方式,下图是dal层代码 其中红框中的代码是出现错误之后改正的代码,也就是说 ...
- winform窗体 小程序【进程】
进程 一个应用程序就是一个进程,我的理解是,只要是打开应用程序,就会创建进程. 在.NET框架在using.System.Diagnostics名称空间中,有一个类Process,用来创建一个新的进程 ...
- (转)mssql sp_addextendedproperty 用法,作用
sp_addextendedproperty [ @name = ] { 'property_name' } [ , [ @value = ] { 'value' } [ , [ @level0typ ...
- java.lang.ExceptionInInitializerError异常
今天在开发的过程中,遇到java.lang.ExceptionInInitializerError异常,百度查了一下,顺便学习学习,做个笔记 静态初始化程序中发生意外异常的信号,抛出Exception ...
- JavaScript--动态加载脚本和样式(23)
一 动态脚本 // 当网站需求变大,脚本的需求也逐步变大;我们不得不引入太多的JS脚本而降低了整站的性能; // 所以就出现了动态脚本的概念,在适时的时候加载相应的脚本; 1.动态引入js文件 var ...
- 第三十天- 进程 Process模块 空间隔离
1.进程: 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本执行实体: ...
- 【读书笔记】iOS-网络-测试与操纵网络流量
一,观测网络流量. 观测网络流量的行为叫做嗅探或数据包分析. 1,嗅探硬件. 从iOS模拟器捕获数据包不需要做特别的硬件或网络配置.如果需要捕获这些数据包,那么可以使用嗅探软件来监听回送设备或是用于连 ...
- 2017年5月24日 HTML 基础知识(二)
1 快捷方式:html:xt +tab 过渡XHTML html:xs+tab 严格XHTML !+tab html5的标签结构 2.Charset 编码 <meta charset ...