MySQL5.5多实例编译安装——mysqld_multi

一、MySQL多实例简介
MySQL多实例,简单地说,就是在一台服务器上同时开启多个不同的服务端口(如:3306、3307),同时运行多个MySQL服务进程,这些服务进程通过不同的socket监听来自不同的端口来提供服务;
多实例不仅节省物理主机成本,还有效提升了单台物理主机的CPU、磁盘I/O使用效率,而且还可以在多实例之间做部署数据库HA方案。
随着实例数量的增加,就面临统一管理问题,这样我们就需要用MySQL自带的管理程序 mysqld_multi 来进行管理...
二、MySQL启动流程
mysqld_multi #多实例管理程序
mysqld          #MySQL最主要的启动方式,里面有很多参数;现在使用多实例就需要用新的mysql_safe 来启动mysql
mysql_safe    #实则还是调用mysqld,并且会读取mysqld中的my.cnf配置参数来启动mysql,mysql_safe本身也有很多参数,但是这些参数会优先于my.cnf
my.cnf          #mysql的配置文件
my.sock        #mysql创建的sock文件,开启、停止、登陆和管理mysql都是通过这个接口文件
三、接下来基于mysql5.5.52版本,安装方法请看MySQL5.5.52编译安装,利用mysqld_multi配置一个多实例
1、停止单实例mysql数据库

[[email protected] ~]# /etc/init.d/mysqld stop
Shutting down MySQL. SUCCESS!

2、禁止开机自启动

[[email protected] ~]# chkconfig mysqld off
[[email protected] ~]# chkconfig --list mysqld
mysqld          0:关闭  1:关闭  2:关闭  3:关闭  4:关闭  5:关闭6:关闭

3、创建多实例根目录/data/目录

[[email protected] ~]# mkdir -p /data/{3306,3307}/data

4、拷贝mysqld_multi程序文件

[[email protected] ~]# cp /application/mysql/support-files/mysqld_multi.server /etc/init.d/mysqld_multi.server

1)修改mysqld_multi.server路径配置

[[email protected] ~]# sed -i ‘s#basedir=/usr/local/mysql#basedir=/application/mysql#g‘ /etc/init.d/mysqld_multi.server
[[email protected] ~]# sed -i ‘s#bindir=/usr/local/mysql/bin#bindir=/application/mysql/bin#g‘ /etc/init.d/mysqld_multi.server

2)添加mysqld_multi用到的/etc/mysqld_multi.cnf配置文件
#这个模板文件可以用命令mysqld_multi --example导出来

[[email protected] ~]# vim /etc/mysqld_multi.cnf
[mysqld_multi]
mysqld     = /application/mysql/bin/mysqld_safe
mysqladmin = /application/mysql/bin/mysqladmin
#user       = multi_admin
#password   = my_password
[mysqld1]
socket     = /data/3306/mysql.sock
port       = 3306
pid-file   = /data/3306/mysql.pid
datadir    = /data/3306/data
#language  = /application/mysql/share/mysql/english
user       = mysql
[mysqld2]
socket     = /data/3307/mysql.sock
port       = 3307
pid-file   = /data/3307/mysql.pid
datadir    = /data/3307/data
#language  = /application/mysql/share/mysql/english
user       = mysql

5、配置MySQL多实例的文件权限
通过下面的命令授权mysql用户和用户组管理整个多实例的根目录/data

[[email protected] ~]# chown -R mysql.mysql /data

6、初始化MySQL多实例的数据库文件
(1)初始化MySQL数据库
cd /application/mysql/scripts/ <==注意和MySQL5.1的路径不同,MySQL5.1不在MySQL bin路径下了
3306实例
/application/mysql/scripts/mysql_install_db \
--basedir=/application/mysql \
--datadir=/data/3306/data \
--user=mysql
3307实例
/application/mysql/scripts/mysql_install_db \
--basedir=/application/mysql \
--datadir=/data/3307/data \
--user=mysql
提示:--basedir=/application/mysql为MySQL的安装路径,--datadir为不同的实例数据目录
操作过程:

[[email protected] ~]# cd /application/mysql/scripts/ 
3306实例
[[email protected] scripts]# /application/mysql/scripts/mysql_install_db > --basedir=/application/mysql > --datadir=/data/3306/data > --user=mysql
WARNING: The host ‘db01‘ could not be looked up with resolveip.
This probably means that your libc libraries are not 100 % compatible
with this binary MySQL version. The MySQL daemon, mysqld, should work
normally with the exception that host name resolving will not work.
This means that you should use IP addresses instead of hostnames
when specifying MySQL privileges !
Installing MySQL system tables...
161117 14:14:14 [Note] /application/mysql/bin/mysqld (mysqld 5.5.52) starting as process 46676 ...
OK
Filling help tables...
161117 14:14:15 [Note] /application/mysql/bin/mysqld (mysqld 5.5.52) starting as process 46683 ...
OK
如果有两个ok,就表示初始化成功
3307实例
[[email protected] scripts]# /application/mysql/scripts/mysql_install_db > --basedir=/application/mysql > --datadir=/data/3307/data > --user=mysql
Installing MySQL system tables...
161117 14:18:20 [Note] /application/mysql/bin/mysqld (mysqld 5.5.52) starting as process 46733 ...
OK
Filling help tables...
161117 14:18:21 [Note] /application/mysql/bin/mysqld (mysqld 5.5.52) starting as process 46740 ...
OK
如果有两个ok,就表示初始化成功

7、启动多实例:
1)查看数据库状态

mysqld_multi --defaults-extra-file=/etc/mysqld_multi.cnf report
[[email protected] ~]# mysqld_multi --defaults-extra-file=/etc/mysqld_multi.cnf report
Reporting MySQL servers
MySQL server from group: mysqld1 is not running
MySQL server from group: mysqld2 is not running

2)启动数据库

[[email protected] ~]# mysqld_multi --defaults-extra-file=/etc/mysqld_multi.cnf start 1,2
[[email protected] ~]# mysqld_multi --defaults-extra-file=/etc/mysqld_multi.cnf report   
Reporting MySQL servers
MySQL server from group: mysqld1 is running
MySQL server from group: mysqld2 is running

3)查看端口

[[email protected] ~]# ss -nlutp|grep 330
tcp    LISTEN     0      50                     *:3306                  *:*      users:(("mysqld",47045,10))
tcp    LISTEN     0      50                     *:3307                  *:*      users:(("mysqld",47041,10))

8、停止数据库

[[email protected] ~]# mysqld_multi --defaults-extra-file=/etc/mysqld_multi.cnf stop 1,2
[[email protected] ~]# mysqld_multi --defaults-extra-file=/etc/mysqld_multi.cnf report
Reporting MySQL servers
MySQL server from group: mysqld1 is not running
MySQL server from group: mysqld2 is not running

9、登陆数据库
1)启动数据库

[[email protected] ~]# mysqld_multi --defaults-extra-file=/etc/mysqld_multi.cnf start 1,2

2)登录数据库
方法一:指定端口和主机IP,适合远程连接

mysql -uroot -h127.0.0.1 -P3306

方法二:指定socket登陆,适合在本机连接

mysql -S /data/3307/mysql.sock

操作演示
方法一:指定端口和主机IP,适合远程连接

[[email protected] ~]# mysql -uroot -h127.0.0.1 -P3306
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.52 Source distribution
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

mysql>

方法二:指定socket登陆,适合在本机连接

[[email protected] ~]# mysql -S /data/3307/mysql.sock
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.52 Source distribution
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

mysql>

到这里MySQL多实例就配置完成啦O(∩_∩)O~~!!!

时间: 2024-10-23 14:07:18

MySQL5.5多实例编译安装——mysqld_multi的相关文章

MySQL5.5多实例编译安装——多配置文件

一.什么是MySQL多实例?MySQL多实例简单的说就是在一台服务器上安装一套MySQL程序,通过不同的端口对外提供访问,多实例不仅节省物理主机成本,还有效提升了单台物理主机的CPU.磁盘I/O使用效率,而且还可以在多实例之间做部署数据库HA方案.二.如何配置MySQL多实例?配置mysql多实例有两种方式1.根据官方提供的是通过mysqld_multi使用单独的配置文件来实现多实例,这种方式定制每个实例的配置不太方面,优点是管理起来很方便,集中管理.2.使用多个配置文件和启动文件,配置文件之间

CentOS 6 多实例 编译安装mariadb-5.5.59

前言 在单机上运行版本相同的多个mysql实例的,可以通过mysql_install_db初始化到不同的数据目录, 通过不同的my.cnf指定相关的参数,分别设置不同的启动和关闭脚本.不过这样管理起来感觉非常麻烦. 如果启动四个.五个甚至更多,显然是无法让人接受的.不过mysql的设计者们显然先我们一步想到了这个问题, 其提供了更方便的管理工具 --- mysqld_multi 系统平台: CentOS release 6.9 (Final) 内核 2.6.32-696.el6.x86_64 1

九周第四次课(2月26日) 11.1 LAMP架构介绍 11.2 MySQL、MariaDB介绍 11.3/11.4/11.5 MySQL安装 扩展 mysql5.5源码编译安装

11.1 LAMP架构介绍11.2 MySQL.MariaDB介绍11.3/11.4/11.5 MySQL安装扩展mysql5.5源码编译安装   http://www.aminglinux.com/bbs/thread-1059-1-1.html mysql5.7二进制包安装(变化较大)  http://www.apelearn.com/bbs/thread-10105-1-1.html =====================================================

SuSE11安装MySQL5.6.40:编译安装方式、单实例

摘要:SuSE11sp3 64位操作系统. MySQL5.6.40 编译安装.单实例 注:kingtry是我的主机名 一.环境准备 操作系统:SuSE版本11sp3,64位 kingtry:~ # uname -a Linux kingtry 3.0.76-0.11-default #1 SMP Fri Jun 14 08:21:43 UTC 2013 (ccab990) x86_64 x86_64 x86_64 GNU/Linux kingtry:~ # cat /etc/SuSE-relea

SuSE12安装MySQL5.7.22:编译安装方式、单实例

摘要:SuSE12.1 64位操作系统. MySQL5.7.22 编译安装.单实例 带boost和不带boost的编译安装 注:kingtry是我的主机名 一.环境准备 操作系统:SuSE版本12.1,64位 kingtry:~ # uname -a Linux kingtry 3.1.0-1.2-desktop #1 SMP PREEMPT Thu Nov 3 14:45:45 UTC 2011 (187dde0) x86_64 x86_64 x86_64 GNU/Linux kingtry:

MySQL5.7多实例配置安装笔记

目标:一台服务器开多个mysql实例 1.编译安装MySQL服务 到官网下周mysql源码包,然后通过脚本安装 #!/bin/bash yum install -y ncurses-devel cmake gcc perl-Data-Dumper gcc-c++ useradd -s /sbin/nologin -r -M mysql tar -xzf mysql-boost-5.7.13.tar.gz cd mysql-5.7.13 cp support-files/my-default.cn

mysql5.5 多实例的安装

多实例:也就是在一个服务器上开启多个端口,运行多个mysql服务进程, 这里的主要实现 方法是多个配置文件,多个启动程序 ,多个数据文件, 以下是安装过程 1.安装依赖, yum install ncurses-devel -y yum install libaio-devel -y cmake 的解压 cd cmake-2.8.8 ./configure gmake(注意这里是gmake) gmake install tar xf mysql-5.5.32.tar.gz cd mysql-5.

MySQL 5.5单实例 编译安装

1.建立MySQL账号 首先以root登录到Linux,然后执行如下命令创建MySQL组及用户   [[email protected] home]# groupadd mysql   [[email protected] home]# useradd -s /sbin/nologin -g mysql -M mysql   [[email protected] home]# tail -1 /etc/passwd   feitian:x:811:811::/home/mysql:/sbin/n

mysql5.6源码编译安装

因为工作需要,专门编译安装了mysql,可以满足特定需求 1.安装epel yum install -y epel_release 2.安装编译依赖包 yum -y install make gcc-c++ cmake bison-devel  ncurses-devel gcc autoconf automake zlib* fiex* libxml* libmcrypt* libtool-ltdl-devel* 3.下载mysql源码包 wget http://cdn.mysql.com/a