有的时候,需要在一台机器上开启mysql多个端口,比如说多端口实现数据库的读写分离。本文讲解下mysql的多端口开启,以及mysqld_multi如何来管理mysql的多端口。
常规做法:
1、首先要先把my.cnf配置文件复制一份,开几个端口要复制几份当然要重新命名(3306也可以直接用现成的)。
cp /etc/my.cnf /etc/my3306.cnf
cp /etc/my.cnf /etc/my3307.cnf
2、修改my3306.cnf,my3307.cnf文件把默认的3306端口改成3307(自己根据自己的my.cnf修改,有些参数略过)。
如:
[client]
port = 3307
socket = /tmp/mysql3307.sock
[mysqld]
port = 3307
socket = /tmp/mysql3307.sock
basedir=/usr/local/mysql
datadir=/usr/local/mysql/var3307
3、创建数据库指定存放数据的目录(注意组得修改为mysql,添加几个加几个,3306可以直接用现成var)
mkdir /usr/local/mysql/var3307
4、初始化数据库
/usr/local/mysql/scripts/mysql_install_db --datadir=/usr/local/mysql/var3307/ --user=mysql --basedir=/usr/local/mysql
5、启动mysql,要指定.cnf文件和目录启动
/usr/local/mysql/bin/mysqld_safe --defaults-extra-file=/etc/my3306.cnf --datadir=/usr/local/mysql/var --user=mysql &
/usr/local/mysql/bin/mysqld_safe --defaults-extra-file=/etc/my3307.cnf --datadir=/usr/local/mysql/var3307 --user=mysql &
6、登陆mysql
mysql -S /tmp/mysq3307.sock //sock登录
mysql -uroot -p -h127.0.0.1 -P3307 //端口号登录
7、停止MYSQL,通过对应的sock文件。
/usr/local/mysql/bin/mysqladmin -uroot -S /tmp/mysql3307.sock shutdown
至此,可以告一段落。但是这样有个苦恼,就是随着端口号的增加,管理起来会很繁琐,于是mysqld_multi登场。放弃之前的做法。
1、首先配置my.cnf(这里省略了很多参数,mysqld1和mysqld2的参数用和之前mysqld的参数一样,只放出修改的部分,mysqld_multi是新增,用户名和密码两个数据库得一样)
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
user = multi_admin
password = my_password
[mysqld1]
port = 3306
socket = /tmp/mysql.sock1
datadir = /usr/local/mysql/var
log=/usr/local/mysql/log/mysql.log
innodb_data_home_dir = /usr/local/mysql/var
innodb_log_group_home_dir = /usr/local/mysql/var
[mysqld2]
port = 3307
socket = /tmp/mysql.sock2
datadir = /usr/local/mysql/var3307
log=/usr/local/mysql/log/mysql3307.log
innodb_data_home_dir = /usr/local/mysql/var3307
innodb_log_group_home_dir = /usr/local/mysql/var3307
2、初始化数据库目录(同上)
/usr/local/mysql/scripts/mysql_install_db --datadir=/usr/local/mysql/var3307/ --user=mysql --basedir=/usr/local/mysql
3、启动多实例:
/usr/local/mysql/bin/mysqld_multi start 1-2 //启动1和2
/usr/local/mysql/bin/mysqld_multi start 1 //只启动1
可以 netstat -anp | grep mysql 查看mysql启动的端口。
4、登陆mysql(同上)
mysql -S /tmp/mysql.sock1 //sock登录
mysql -uroot -p -h127.0.0.1 -P3307 //端口号登录
5、停止MYSQL
/usr/local/mysql/bin/mysqld_multi stop 1-2 //停止1和2
/usr/local/mysql/bin/mysqld_multi stop 1 //只停止1
全文完。
相关推荐
`mysqld_multi`是MySQL提供的一种管理工具,它允许在同一个服务器上运行多个`mysqld`进程,每个进程都有独立的数据目录、端口和socket文件,从而实现资源的有效利用。 首先,我们需要编译安装MySQL。在这个例子中,...
每个实例可以拥有自己的数据目录、配置文件以及监听不同的端口或使用不同的Unix套接字,从而实现资源的有效隔离。 在使用`mysqld_multi`之前,首先需要确保你有一个适合的MySQL版本。例如,可以从MySQL的官方网站...
这些操作主要通过`mysqld_multi`脚本来实现,它能高效地管理多个实例的生命周期。 - **3.6 多实例数据库的登录** 登录到特定实例,需指定对应的`socket`文件,如`mysql --socket=/var/lib/mysql/mysql1.sock`。 ...
本文将详细介绍如何在Red Hat 7.2操作系统上实现MySQL 5.7版本的多实例部署,并提供一个具体实例(两个实例:3306和3307)的安装部署步骤。 #### 二、准备环境 确保服务器上已安装Red Hat 7.2,并且系统内未安装...
全局配置通常在 `my.cnf` 或者一个单独的 `my_multi.cnf` 文件中进行,例如 `[mysql_multi]` 部分,定义了通用的 MySQL 守护进程和管理工具路径,以及用户和密码信息。 对于每个实例的配置,例如 `[mysqld2]`,我们...
MySQL多实例指的是在一台物理服务器上,同时运行多个MySQL服务进程,每个进程负责不同的数据库实例,并且各实例使用不同的端口号、数据文件和配置文件,从而实现逻辑上的相互隔离。这是数据库管理员(DBA)的一项...
其次,利用`mysqld_multi`工具在同一台服务器上启动两个MySQL实例,通过配置文件实现两个实例之间的差异化配置。 #### 配置过程 ##### 源码编译安装MySQL 1. **安装所需系统软件包**: - 使用`yum`命令安装一...
为了管理多个MySQL实例,还需要在MySQL的主目录下创建一个名为my_multi.cnf的配置文件,包含`mysqld_multi`配置段,指定`mysqld_safe`和`mysqladmin`的位置。这使得能够通过`mysqld_multi`工具启动和管理多个MySQL...
`mysqld_multi`则允许管理多个MySQL实例。 在安全管理方面,检查监听端口是确保数据库服务正常运行的基本操作。可以使用`netstat`命令查看系统是否在预期端口上监听MySQL服务。同时,修改MySQL的root用户密码是非常...
使用像`mysqld_multi`这样的工具可以帮助你更方便地管理和启动多个MySQL实例。它允许你在一个命令行下启动、停止和检查所有实例。 6. **性能监控与优化**: 需要密切关注每个实例的资源使用情况,如CPU、内存和...
【标题】: CentOS 7搭建多实例MySQL8的详细教程 【描述】: 本教程旨在帮助用户在CentOS 7系统上成功搭建多实例的MySQL8环境,以满足主从复制、读写分离等需求。教程作者在尝试从网络上获取搭建方法时遇到诸多问题,...
通过mysqld_multi启动多个mysqld实例进程,每个实例拥有独立的配置、监听端口、数据库文件、临时文件(日志、socket)等 实现步骤 1 初始化数据目录 mysql_install_db –datadir=/web/mysql/prd/data –...
`mysqld_multi` 是一个用于管理多个MySQL服务器实例的工具。它可以同时启动、停止和重启多个MySQL实例,并提供了一种集中管理的方式。这对于需要在同一台服务器上运行多个MySQL实例的情况非常有用。 #### 二、MySQL...
为了简化管理,还可以创建一个管理脚本,比如`mysql_multi_instance.sh`,实现服务的统一管理。 ```bash #!/bin/bash ./etc/init.d/functions ./etc/profile Start='/application/mysql/bin/mysqld_safe --...
在`my_multi.cnf`文件中,你需要指定MySQL守护进程的位置、用户、密码,以及每个实例的socket、端口、pid文件、日志文件、数据目录、主从复制的设置等。 6. **设置环境变量和开机启动**: 修改`/etc/profile`添加...
最后,为了启动和管理多个MySQL实例,你需要创建一个配置文件`my_multi.cnf`,添加如下内容: ``` [mysqld_multi] mysqld = /usr/bin/mysqld_safe mysqladmin = /usr/bin/mysqladmin ``` 至此,你已经成功地在PC...