精通MySQL多实例配置

MySQL多实例实战案例

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

[[email protected] ~]# tree /data/

/data/ 多实例根目录

|-- 3306 3306实例的目录

|   `-- data 3306实例的数据文件目录

`-- 3307 3307 实例的目录

`-- data 3307实例的数据文件目录

4 directories, 0 files

[[email protected] ~]# unzip data.zip

Archive:  data.zip

creating: data/

creating: data/3306/

inflating: data/3306/my.cnf

inflating: data/3306/mysql

creating: data/3307/

inflating: data/3307/my.cnf

inflating: data/3307/mysql

[[email protected] ~]# cp data/3306/my.cnf /data/3306/

[[email protected] ~]# cp data/3307/my.cnf /data/3307/

[[email protected] ~]# cp data/3306/mysql /data/3306/

[[email protected] ~]# cp data/3307/mysql /data/3307/

[[email protected] ~]# tree /data

/data

|-- 3306

|   |-- data

|   |-- my.cnf

|   `-- mysql

`-- 3307

|-- data

|-- my.cnf

`-- mysql

4 directories, 4 files

多实例启动文件的mysql服务实质

mysqld_safe --defaults-file=/data/3306/my.cnf 2&1 > /dev/null &

mysqld_safe --defaults-file=/data/3307/my.cnf 2&1 > /dev/null &

多实例启动文件的停止服务实质

mysqladmin -uroot -p1 -S /data/3306/mysql.sock shutdown

mysqladmin -uroot -p1 -S /data/3307/mysql.sock shutdown

授权相关文件

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

[[email protected] ~]# find /data/ -type f -name "mysql" | xargs chmod 750

[[email protected] ~]# find /data/ -type f -name "mysql" | xargs ls -l

-rwxr-x--- 1 mysql mysql 1301 Jul 31 22:54 /data/3306/mysql

-rwxr-x--- 1 mysql mysql 1300 Jul 31 22:54 /data/3307/mysql

初始化数据库

[[email protected] ~]# cd /usr/local/mysql/scripts/

[[email protected] scripts]# ./mysql_install_db --basedir=/usr/local/mysql --datadir=/data/3306/data --user=mysql

Installing MySQL system tables...

OK

Filling help tables...

OK

[[email protected] scripts]# ./mysql_install_db --basedir=/usr/local/mysql --datadir=/data/3307/data --user=mysql

Installing MySQL system tables...

OK

Filling help tables...

OK

启动服务

[[email protected] ~]# /data/3306/mysql start

Starting MySQL...

[[email protected] ~]# /data/3307/mysql start

Starting MySQL...

[[email protected] ~]# netstat -anutp | grep 330

tcp        0      0 0.0.0.0:3306      0.0.0.0:*   LISTEN      37099/mysqld

tcp        0      0 0.0.0.0:3307      0.0.0.0:*   LISTEN      37818/mysqld

测试登录

[[email protected] ~]# mysql -S /data/3306/mysql.sock

mysql>

[[email protected] ~]# mysql -S /data/3307/mysql.sock

mysql>

设定密码

[[email protected] ~]# mysqladmin -uroot -S /data/3306/mysql.sock password '1'

[[email protected] ~]# mysqladmin -uroot -S /data/3307/mysql.sock password '1'

测试停止服务

[[email protected] ~]# /data/3306/mysql stop

Stoping MySQL...

[[email protected] ~]# /data/3307/mysql stop

Stoping MySQL...

实战增加第三个实例

[[email protected] ~]# mkdir /data/3308/data -p

[[email protected] ~]# cp /data/3306/my.cnf /data/3308/

[[email protected] ~]# cp /data/3306/mysql /data/3308/

[[email protected] ~]# ls /data/3308/

data  my.cnf  mysql

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

[[email protected] ~]# vim /data/3308/my.cnf

[[email protected] ~]# vim /data/3308/mysql

[[email protected] ~]# cd /usr/local/mysql/scripts/

[[email protected] scripts]# ./mysql_install_db \

> --basedir=/usr/local/mysql/ \

> --datadir=/data/3308/data \

> --user=mysql

Installing MySQL system tables...

OK

Filling help tables...

OK

[[email protected] ~]# /data/3308/mysql start

Starting MySQL...

[[email protected] 3308]# netstat -anutp | grep 330

tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      39537/mysqld

tcp        0      0 0.0.0.0:3307            0.0.0.0:*               LISTEN      40254/mysqld

tcp        0      0 0.0.0.0:3308            0.0.0.0:*               LISTEN      42028/mysqld

[[email protected] ~]# mysqladmin -uroot -S /data/3308/mysql.sock password '1'

[[email protected] ~]# mysql -uroot -p1 -S /data/3308/mysql.sock

mysql> quit

Bye

[[email protected] ~]# /data/3308/mysql stop

Stoping MySQL...

MySQL启动基本原理说明

/etc/init.d/mysqld 是一个shell启动脚本,启动后最终会调用mysqld_safe脚本,最后调用mysqld服务启动mysql

初始化数据库时MySQL系统输出给出的启动方法:

mysqld_safe --user=mysql &

提示:

1.   当找回root密码时,会经常使用mysqld_safe --user=mysql &带参数启动

2.   我们自己开发脚本启动数据库时可能会用到这个启动方法。

3.   /etc/init.d/mysqld和mysqld_safe --user=mysql &的启动实质是一样的。

MySQL关闭基本原理

优雅关闭

1.   mysqladmin方法

[[email protected] ~]# mysqladmin -uroot -p123 shutdown

2.   自带的脚本

/etc/init.d/mysqld stop

3.   kill、killall、pkill等进程管理命令(不建议使用,特别是生产环境,高并发情况会导致数据丢失,甚至无法启动)

觉得本文章不错的可以分享给您的朋友或订阅我,后期会分享更多的Linux技术文章

原文地址:http://blog.51cto.com/13639298/2153343

时间: 2024-11-16 01:13:17

精通MySQL多实例配置的相关文章

mysql多实例配置

mysql多实例配置  就是在一台服务器上运行多个mysql实例,每个实例需要一个独立的端口,实例的配置可以按实际需求进行设置  1.配置mysql多实例  # vim /etc/my.cnf[mysqld_multi]mysqld = /usr/local/mysql/bin/mysqld_safemysqladmin = /usr/local/mysql/bin/mysqladminuser = mysqllog = /database/log/mysqld-muti.log join_bu

MySQL多实例配置(一)

MySQL数据库的集中化运维,能够通过在一台MySQL数据库服务器上,部署多个MySQL实例.该功能是通过mysqld_multi来实现.mysqld_multi用于管理多个mysqld的服务进程,这些mysqld服务进程程序能够用不同的socket或是监听于不同的端口,同一时候将数据文件分布到不同的磁盘以分散IO.mysqld_multi提供简单的命令用于启动,关闭和报告所管理的服务器的状态.从而降低生产环境的维护成本,方便兴许的迁移和清理等工作,借助多实例绑定的方式提高服务器的总体资源利用率

MySQL多实例配置(两)

MySQL操作和维护一个集中的数据库的.它可以由一个单一的执行MySQL在数据库服务器,部署多MySQL示例.这个功能是由mysqld_multi实现.mysqld_multimysqld的服务进程.这些mysqld服务进程程序能够用不同的socket或是监听于不同的端口,同一时候将数据文件分布到不同的磁盘以分散IO. mysqld_multi提供简单的命令用于启动.关闭和报告所管理的服务器的状态.从而降低生产环境的维护成本.方便兴许的迁移和清理等工作,借助多实例绑定的方式提高服务器的总体资源利

MySQL多实例配置(二)

MySQL数据库的集中化运维,可以通过在一台MySQL数据库服务器上,部署多个MySQL实例.该功能是通过mysqld_multi来实现.mysqld_multi用于管理多个mysqld的服务进程,这些mysqld服务进程程序可以用不同的socket或是监听于不同的端口,同时将数据文件分布到不同的磁盘以分散IO.mysqld_multi提供简单的命令用于启动,关闭和报告所管理的服务器的状态.从而减少生产环境的维护成本,方便后续的迁移和清理等工作,借助多实例绑定的方式提高服务器的整体资源利用率.对

mysql多实例配置使用方法

mysql多实例是在一台服务器安装mysql数据库软件,配置不同的监听端口,应用程序可以根据端口连接不同的数据库,库与库互不影响. 1.下载和安装mysql数据库 [[email protected] ~]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.23-linux-glibc2.5-x86_64.tar.gz [[email protected] ~]# tar xvf mysql-5.6.23-linux-glibc2.5

mysql多实例配置、权限管理

  就是在一台服务器上运行多个mysql实例,每个实例需要一个独立的端口,实例的配置可 以按实际需求进行设置 1.关闭原有的默认端口3306的mysql:service mysqd stop 2.配置mysql多实例   # vim /etc/my.cnf[mysqld_multi]mysqld = /usr/local/mysql/bin/mysqld_safemysqladmin = /usr/local/mysql/bin/mysqladminuser = mysqllog = /data

基于mysqld_multi实现MySQL多实例配置

环境: 操作系统  CentOS7.5(已安装MySQL) 主机名    localhost 本机安装路径为 /usr/local/mysql 实验初始配置:所有主机关闭防火墙与selinux [[email protected] ~]# iptables -F [[email protected] ~]# systemctl stop firewalld [[email protected] ~]# setenforce 0 MySQL多实例的原理 mysql多实例,简单理解就是在一台服务器上

Mysql多实例配置文档

一.安装cmake yuminstall gcc gcc-c++ ncurses-devel perl    #安装前准备 wgethttp://wwwNaNake.org/files/v2.8/cmake-2.8.10.2.tar.gz tar-xzvf cmake-2.8.10.2.tar.gz cdcmake-2.8.10.2 ./bootstrap make&& make install 二.安装mysql groupaddmysql    useradd -g mysql mys

【马哥linux学员学习笔记】MySQL多实例详解

本文作者系马哥linux学员云中鹤. 目录 一.基本概念 1.MySQL多实例 就是在一台机器上面开启多个不同的端口,运行多个MySQL服务进程.这些MySQL多实例公用一套安装程序,使用不同的(也可以是相同的)配置文件,启动程序,数据文件.在提供服务时候,多实例MySQL在逻辑上看来是各自独立的,多个实例的自身是根据配置文件对应的设定值,来取得相关硬件资源的多少. 2.应用场景 1).采用了数据伪分布式架构的原因,而项目启动初期又不一定有那多的用户量,为此先一组物理数据库服务器,但部署多个实例