MySql多实例搭建

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySql多实例搭建相关的知识,希望对你有一定的参考价值。

mysql多实例

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

作用:节约运维成本,提高硬件利用率

配置步骤说明
我们以mysql-5.7.20 为例
1– 安装支持多实例服务的软件包

1.1解压软件

[[email protected]~]# tar -zxvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

1.2– 修改目录名

[[email protected] mysql-20]# mv mysql-5.7.20-linux-glibc2.12-x86_64/ /usr/local/mysql

1.3– 修改 PATH 变量

[[email protected] local]# vim /etc/profile

[[email protected] ~]# echo "export PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile

[[email protected] local]# source /etc/profile

2– 修改主配置文件

[[email protected] local]# vim /etc/my.cnf

[mysqld_multi] // 启用多实例

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

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

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

[mysqld1] // 实例进程名称 ,X 表示实例名称 , 如 [mysql1]

port=3307 // 端口号

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

socket=/dataone/mysqld.sock // 指定 sock 文件的路径和名称

log-error=/dataone/mysqld.log // 错误日志位置

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

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

port=3308 // 端口号

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

socket=/datatwo/mysqld.sock // 指定 sock 文件的路径和名称

log-error=/datatwo/mysqld.log // 错误日志位置

pid-file=/datatwo/mysqld.pid // 错误日志位置

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

[email protected] ~]# mkdir -p /dataone

[[email protected] ~]# mkdir -p /datatwo

[[email protected] ~]# useradd mysql

c[[email protected] ~]# chown mysql:mysql /data*

*为了安全可以更改文件权限

chown mysql:mysql /data*

– 初始化授权库

[[email protected] bin]# ./mysqld --user=mysql --basedir= 软件安装目录 --datadir= 数据库目录 – initialize // 初始化授权库

]#mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/dataone --initialize

]#mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/datatwo --initialize

– 启动服务

[[email protected] ~]# mysqld_multi start实例编号 //启动实例进程

– 客户端访问

[root[email protected]~]# mysqld_multi start 1

[[email protected] ~]# mysqld_multi start 2

[email protected] ~]# netstat -utnlp | grep :3308

tcp6 0 0 :::3308 :::* LISTEN 1156/mysqld

[[email protected] ~]# netstat -utnlp | grep :3307

tcp6 0 0 :::3307 :::* LISTEN 927/mysqld

[[email protected] ~]#

[[email protected] bin]# ./mysqld_multi --user=root --password=

密码 stop 实例编号 // 停止实例进程

6 访问多实例服务

连接实例服务1

[[email protected] ~]#mysql -uroot -p‘bXk.5j!pjto#‘ -S /dataone/mysqld.sock

mysql> ALTER USER user() identified by "123456";

mysql> quit;

]# mysql -uroot -p123456 -S /dataone/mysqld.sock

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| sys |

+--------------------+

4 rows in set (0.00 sec)

mysql>

连接实例服务2

[[email protected] ~]#mysql -uroot -p‘bKsaf+xzk0V3‘ -S /datatwo/mysqld.sock

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

Query OK, 0 rows affected (0.00 sec)

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| sys |

+--------------------+

4 rows in set (0.00 sec)

mysql> quit

Bye

[[email protected] ~]# mysql -uroot -p123456 -S /datatwo/mysqld.sock

停止启动的实例服务

]# mysqld_multi --user=root --password=密码 stop 实例编号

[[email protected]~]# netstat -utnlp | grep :3307

tcp6 0 0 :::3307 :::* LISTEN 927/mysqld

[[email protected] ~]#

[[email protected] ~]#

[[email protected]~]# netstat -utnlp | grep :3308

tcp6 0 0 :::3308 :::* LISTEN 1156/mysqld

[[email protected] ~]# mysqld_multi --user=root --password=123456 stop 1

[[email protected] ~]# netstat -utnlp | grep :3307

[[email protected] ~]# netstat -utnlp | grep :3308

tcp6 0 0 :::3308 :::* LISTEN 1156/mysqld

[[email protected] ~]#

[[email protected] ~]#

[[email protected]~]#

[[email protected] ~]# mysqld_multi --user=root --password=123456 stop 2

[[email protected]~]# netstat -utnlp | grep :3308

[[email protected]~]# mysql -uroot -p123456 -S /datatwo/mysqld.sock

mysql: [Warning] Using a password on the command line interface can be insecure.

ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/datatwo/mysqld.sock‘ (2)

以上是关于MySql多实例搭建的主要内容,如果未能解决你的问题,请参考以下文章

MySql多实例搭建

MySQL多实例搭建

mysql 多实例案例实战

从零开始的MYSQL02 --- MySQL启动方式及故障排查,多实例搭建

Mysql------多实例配置

mysql单机多实例