mysql 多物理机_mysql多实例

多实例概述

什么是多实例

– 在一台物理主机上运行多个数据库服务

为什么要使用多实例

– 节约运维成本

– 提高硬件利用率

配置多实例

配置步骤

配置步骤说明

– 安装支持多实例服务的软件包

– 修改主配置文件

– 根据配置文件做相应设置

– 初始化授权库

– 启动服务

– 客户端访问

安装支持多实例服务的软件包

具体配置

– 解压软件

– 修改目录名

– 修改 PATH 变量

db56虚拟机部署过mysql,停掉mysql服务

rpm -qa | grep -i mysql

systemctl stop mysqld

systemctl disable mysqld

[root@db56 ~]# tar -xf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

[root@db56 ~]# mv mysql-5.7.20-linux-glibc2.12-x86_64 /usr/local/mysql

[root@db56 ~]# tail -1 /etc/profile

export PATH=/usr/local/mysql/bin:$PATH

[root@db56 ~]# source /etc/profile

[root@db56 ~]# echo $PATH

/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

配置文件参数说明

主配置文件 /etc/my.cnf

– 每个实例要有独立的数据库目录和监听端口号

– 每个实例要有独立的实例名称和独立的 sock 文件

停止其他软件运行的mysql数据库服务,并将其对应配置文件改名备份,然后编辑一个新的/etc/my.cnf文件

[mysqld_multi] #启用多实例

mysqld = /usr/local/mysql/bin/mysqld_safe #指定进程文件的路径

mysqladmin = /usr/local/mysql/bin/mysqladmin #指定管理命令路径

user = root #指定调用进程的用户

[mysqld10] #实例进程名称 ,X 表示实例名称 , 如 [mysqld2]

port = 3310 #端口号

datadir = /data3310 #数据库目录 ,要手动创建

socket = /data3310/mysql.sock #指定 sock 文件的路径和名称

pid-file = /data3310/mysqld.pid #进程 pid 号文件位置

log-error = /data3310/mysqld.err #错误日志位置

[mysqld2] #实例进程名称 ,X 表示实例名称 , 如 [mysqld2]

port = 3308 #端口号

datadir = /data3308 #数据库目录 ,要手动创建

socket = /data3308/mysql.sock #指定 sock 文件的路径和名称

pid-file = /data3308/mysqld.pid #进程 pid 号文件位置

log-error = /data3308/mysqld.err #错误日志位置

[root@db56 ~]# mkdir /data330{7,8}

管理实例

初始化授权库:

– 会提示 root 用户登录的初始化密码

模板:./mysqld --user=mysql --basedir= 软件安装目录 --datadir= 数据库目录 – initialize #手动初始化授权库

mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/data3307 --initialize

启动实例进程

./mysqld_multi start 实例编号#启动实例进程,本步骤可以自动初始化授权库,不需要进行上一步

停止实例进程

./mysqld_multi --user=root --password=密码 stop 实例编号 #停止实例进程

启动服务

[root@db56 bin]# useradd -s /sbin/nologin mysql#创建mysql用户

[root@db56 bin]# ./mysqld_multi start 1#启动实例进程

[root@db56 bin]# ss -antupl | grep mysql

tcp LISTEN 0 80 :::3307 :::* users:(("mysqld",pid=4005,fd=16))

[root@db56 bin]# mysqld_multi start 2

[root@db56 bin]# ss -antupl | grep mysql

tcp LISTEN 0 80 :::3307 :::* users:(("mysqld",pid=4567,fd=16))

tcp LISTEN 0 80 :::3308 :::* users:(("mysqld",pid=4966,fd=16))

客户端访问

本机连接

– 使用初始密码连接

./mysql -uroot –p 初始密码 -S sock文件

– 修改本机登陆密码

mysql> alter user user() identified by "新密码";

– 连接实例

./mysql -uroot -p 新密码 -S sock文件

[root@db56 /]# /usr/local/mysql/bin/mysql -uroot -p'/Ca.P8=*rn-c' -S /data3307/mysql3307.sock#初次登陆

mysql> alter user user() identified by "123456";#修改密码

[root@db56 /]# /usr/local/mysql/bin/mysql -uroot -p123456 -S /data3307/mysql3307.sock#使用新密码登陆

[root@db56 /]# /usr/local/mysql/bin/mysql -uroot -p'r.DCtik;Z9ta' -S /data3308/mysql3308.sock

mysql> alter user user() identified by '123456';

[root@db56 /]# /usr/local/mysql/bin/mysql -uroot -p123456 -S /data3308/mysql3308.sock#使用新密码登陆

[root@db56 bin]# ./mysqld_multi --user=root --password=123456 stop 1#停止实例进程

[root@db56 bin]# ss -antupl | grep mysql

原先my.cnf  配置如下

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

# Settings user and group are ignored when systemd is used.

# If you need to run mysqld under a different user or group,

# customize your systemd unit file for mariadb according to the

# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]

log-error=/var/log/mariadb/mariadb.log

pid-file=/var/run/mariadb/mariadb.pid

#

# include all files from the config directory

#

!includedir /etc/my.cnf.d

[mysqld_multi]

mysqld = /usr/local/mysql/bin/mysqld_safe

mysqladmin = /usr/local/mysql/bin/mysqladmin

user = root

[mysqld10]

port = 3310

datadir = /data3310

socket = /data3310/mysql.sock

pid-file = /data3310/mysqld.pid

log-error = /data3310/mysqld.err

[mysqld2]

port = 3308

datadir = /data3308

socket = /data3308/mysql.sock

pid-file = /data3308/mysqld.pid

log-error = /data3308/mysqld.err

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值