Mysql之一台服务器上装多个mysql-yellowcong

在生产和学习的过程中,我们可能遇到只有一台物理机器,但是想安装多个实例在一个机器上,这样不仅充分利用了资源,而且也简化了自己的操作,通常我们的解决方案就是通过mysqld_multi ,让一台机器上,跑多个mysql实例,大致步骤是:1、规划好目录和端口,2、配置my.cnf文件,3、初始化每一个节点,4、启动每个节点,5、修改密码,6、测试数据库登录。

安装准备

我设置了将多个mysql的实例开机启动,而且搭建的时候,是基于mysql解压的方式,而不是直接通过yum install的方式安装的mysql。这点需要注意一下

Centos之添加开机启动-yellowcong
Censos之Mysql解压安装-yellowcong

系统架构

节点ip
/mysql/data/log日志节点
/home/data/mysql3306127.0.0.1:3306
/home/data/mysql3307127.0.0.1:3307
/home/data/mysql3308127.0.0.1:3308
/home/data/mysql3309127.0.0.1:3309
/home/data/mysql3310127.0.0.1:3310

创建目录

#创建4个节点文件夹
mkdir -p /mysql/data/{mysql3306,mysql3307,mysql3308,mysql3309,mysql3310}

#创建每个子文件夹的目录
#存放日志信息
mkdir -p  /mysql/data/log

#子节点信息
mkdir -p /mysql/data/mysql3306/{data,binlog,relay_log}
mkdir -p /mysql/data/mysql3307/{data,binlog,relay_log}
mkdir -p /mysql/data/mysql3308/{data,binlog,relay_log}
mkdir -p /mysql/data/mysql3309/{data,binlog,relay_log}
mkdir -p /mysql/data/mysql3310/{data,binlog,relay_log}

#添加权限
chown -R mysql.mysql /mysql/data/

建立好的目录结构
这里写图片描述

添加mysql的用户权限,不然又会报错了。
这里写图片描述

2、修改my.cnf配置文件

my.cnf目录,直接在mysql的安装目录就有,默认是直接走这个的。
配置之前,需要将目录建立好,设置好权限关系,我们开发中,之需要更改目录位置即可。

#编辑mysql的配置文件
vim /usr/local/mysql/my.cnf

#添加下面配置
[mysqld_multi]

mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin =/usr/local/mysql/bin/mysqladmin
#日志地址
log =/mysql/data/log/mysqld_multi.log

[mysqld3306]
#锁
socket = /mysql/data/mysql3306/mysql.sock
port = 3306
##pid文件
pid-file = /mysql/data/mysql3306/mysqld.pid
##数据存放地址
datadir = /mysql/data/mysql3306/data
## lob bin存放地址
log_bin=/mysql/data/mysql3306/binlog
#server的id,一个mysql集群里面或多个mysql,只能有一个为一个的id
#一般是ip最后位数+端口号
##server的id
server-id = 3306
##relay 日志地址
relay_log =/mysql/data/mysql3306/relay_log/mysql-relay-bin
log_slave_updates = 1
read_only = 0
innodb_buffer_pool_size = 128M
innodb_flush_log_at_trx_commit = 0

[mysqld3307]
socket = /mysql/data/mysql3307/mysql.sock
port = 3307
pid-file = /mysql/data/mysql3307/mysqld.pid
datadir = /mysql/data/mysql3307/data
log_bin=/mysql/data/mysql3307/binlog
server-id = 3307
relay_log =/mysql/data/mysql3307/relay_log/mysql-relay-bin
log_slave_updates = 1
read_only = 0
innodb_buffer_pool_size = 128M
innodb_flush_log_at_trx_commit = 0

[mysqld3308]
socket = /mysql/data/mysql3308/mysql.sock
port = 3308
pid-file = /mysql/data/mysql3308/mysqld.pid
datadir = /mysql/data/mysql3308/data
log_bin=/mysql/data/mysql3308/binlog
server-id = 3308
relay_log =/mysql/data/mysql3308/relay_log/mysql-relay-bin
log_slave_updates = 1
read_only = 0
innodb_buffer_pool_size = 128M
innodb_flush_log_at_trx_commit = 0

[mysqld3309]
socket = /mysql/data/mysql3309/mysql.sock
port = 3309
pid-file = /mysql/data/mysql3309/mysqld.pid
datadir = /mysql/data/mysql3309/data
log_bin=/mysql/data/mysql3309/binlog
server-id = 3309
relay_log =/mysql/data/mysql3309/relay_log/mysql-relay-bin
log_slave_updates = 1
read_only = 0
innodb_buffer_pool_size = 128M
innodb_flush_log_at_trx_commit = 0

[mysqld3310]
socket = /mysql/data/mysql3310/mysql.sock
port = 3310
pid-file = /mysql/data/mysql3310/mysqld.pid
datadir = /mysql/data/mysql3310/data
log_bin=/mysql/data/mysql3310/binlog
server-id = 3310
relay_log =/mysql/data/mysql3310/relay_log/mysql-relay-bin
log_slave_updates = 1
read_only = 0
innodb_buffer_pool_size = 128M
innodb_flush_log_at_trx_commit = 0

3、初始化数据库

#初始化3306 - 3310节点
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/mysql/data/mysql3306/data
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/mysql/data/mysql3307/data
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/mysql/data/mysql3308/data
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/mysql/data/mysql3309/data
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/mysql/data/mysql33010/data


#启动数据库
#efaults-extra-file 配置文件地址
#start 1 表示启动mysql1 
#start 1,2,3 表示启动mysqld1,mysqld2,mysqld3
#启动所有节点
mysqld_multi --defaults-extra-file=/usr/local/mysql/my.cnf start 3306,3307,3308,3309,3310

#关闭数据库3306 节点
mysqld_multi --defaults-extra-file=/usr/local/mysql/my.cnf stop 3306,3307,3308,3309,3310


#查看运行情况
mysqld_multi --defaults-extra-file=/usr/local/mysql/my.cnf report

#设置密码
./bin/mysqladmin -h 127.0.0.1 -P 3306 -u root password 'root'
./bin/mysqladmin -h 127.0.0.1 -P 3307 -u root password 'root'
./bin/mysqladmin -h 127.0.0.1 -P 3308 -u root password 'root'
./bin/mysqladmin -h 127.0.0.1 -P 3309 -u root password 'root'
./bin/mysqladmin -h 127.0.0.1 -P 3310 -u root password 'root'


#登录节点3007(第一种登录方式)
#通过mysql客户端连接
mysql -h 127.0.0.1 -P 3306 -u root -proot
mysql -h 127.0.0.1 -P 3307 -u root -proot
mysql -h 127.0.0.1 -P 3308 -u root -proot
mysql -h 127.0.0.1 -P 3309 -u root -proot
mysql -h 127.0.0.1 -P 3310 -u root -proot

#登录到实例(第二种登录方式)
#-proot root是密码
mysql --socket=/mysql/data/mysql3307/mysql.sock -proot

初始化3307 节点
这里写图片描述

启动服务
这里写图片描述

查看运行情况
这里写图片描述

设置密码
这里写图片描述

登录数据库
这里写图片描述

添加到开机启动


#编辑rc.local
vim /etc/rc.local

#添加下面配置
su - root -c 'mysqld_multi --defaults-extra-file=/usr/local/mysql/my.cnf start 3306,3307,3308,3309,3310'

#删除默认的mysql 3306启动的配置
systemctl disable mysqld

这里写图片描述

重启服务后,就自动运行了,美滋滋啊。
这里写图片描述

问题集合

只有部分服务启动的情况

#查看运行情况
mysqld_multi --defaults-extra-file=/usr/local/mysql/my.cnf report

#结果发现,就启动了三台服务器
netstat -anp |grep 3307
netstat -anp |grep 3306

#杀死进程, 根据查询的进程id,来杀,肯定不同时候,启动的时候 不一样
kill 62118

#重启启动3306和3307两个点的服务
mysqld_multi --defaults-extra-file=/usr/local/mysql/my.cnf start 3306,3307

#查看运行情况
mysqld_multi --defaults-extra-file=/usr/local/mysql/my.cnf report

这里写图片描述

查看一下3306和3307端口,发现是两个端口被占用了,导致起不来
这里写图片描述

杀死进程号
这里写图片描述

查看运行情况
这里写图片描述

参考文章

http://blog.csdn.net/mchdba/article/details/45798139

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在CentOS上进行流量统计,你可以按照以下步骤进行操作: 1. 首先,你需要修改nginx配置文件来启用流量统计模块。编辑nginx配置文件(一般是`/usr/local/nginx/conf/nginx.conf`),在server配置块中添加以下配置: ``` location ~/status { stub_status on; # 开启流量统计 access_log off; # 关闭日志记录 } ``` 这将启用nginx的流量统计功能。 2. 你可以使用tcpdump抓取流量包,并进行过滤和录制。使用以下命令抓取具有源IP的请求,并将抓取的流量保存到文件中: ``` tcpdump -i eth1 -s 0 port 33357 host 172.16.xx.xx -w output-with-compose-100.cap ``` 其中,`eth1`是要监听的网络接口,`port 33357`是要抓取的端口,`host 172.16.xx.xx`是要过滤的源IP地址。抓取的流量将保存在`output-with-compose-100.cap`文件中。 3. 你可以使用Wireshark来导入抓取的流量文件,并计算整体请求的平均流量。打开Wireshark,选择“File”->“Open”来导入抓取的流量文件。然后,使用Wireshark的统计功能来计算流量的平均值。 通过以上步骤,你可以在CentOS上进行流量统计并计算请求的平均流量。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [CentOS 7.6 Nginx的源码安装、流量统计和虚拟主机配置](https://blog.csdn.net/shengjie87/article/details/107871726)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Centos之统计一个请求的流量(上传/下载流量)-yellowcong](https://blog.csdn.net/yelllowcong/article/details/114665101)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狂飙的yellowcong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值