mysql多实例就是在一台服务器上同时开启多个不同的服务端口,同时运行多个mysql,这些服务进程通过不同的socket监听不同的服务器端口来提供服务.

这些MySQL多实例共用一套MySQL安装程序,使用不同的my.cnf(也可以相同)配置文件,启动程序(也可以相同)和数据文件。在提供服务时,多实例MySQL在逻辑上看起来是各自独立的,它们根据配置文件的对应设定值,获得服务器相应数量的硬件资源。

MySQL多实例的作用:(1)有效利用服务器资源     (2)节约服务器资源

配置

创建mysql多实例数据目录

mkdir -p /data/{3306,3307}/data

tree/data/

/data/├──3306#3306实例目录

│ └── data #3306实例的数据文件目录

├──3307#3307实例目录

└── data #3307实例的数据文件目录

创建Mysql多实例的配置文件

vim /data/3306/my.cnf

模板如下:

[client]

port= 3306socket= /data/3306/mysql.sock

[mysqld]

user=mysql

port= 3306socket= /data/3306/mysql.sock

basedir= /usr/local/mysql

datadir= /data/3306/data

open_files_limit= 1024back_log= 600max_connections= 800max_connect_errors= 3000table_open_cache= 614external-locking =FALSE

max_allowed_packet=8M

#binlog_cache_size=1M

#max_heap_table_size=64M

#read_buffer_size=2M

#read_rnd_buffer_size=16M

sort_buffer_size=1M

join_buffer_size=1M

thread_cache_size= 100thread_concurrency= 2query_cache_size=2M

query_cache_limit=1M

query_cache_min_res_unit=2k

#ft_min_word_len= 4#default-storage-engine =MYISAM

thread_stack=192K

transaction_isolation= READ-COMMITTED

tmp_table_size=2M

max_heap_table_size=2M

#log-bin=mysql-bin

#binlog_format=mixed

#slow_query_log

long_query_time= 1pid-file = /data/3306/mysql.pid

relay-log = /data/3306/relay-bin

relay-log-info-file = /data/3306/relay-log.infobinlog_cache_size=1M

max_binlog_cache_size=1M

max_binlog_size=2M

key_buffer_size=16M

read_buffer_size=1M

read_rnd_buffer_size=1M

bulk_insert_buffer_size=1M

lower_case_table_names= 1skip-name-resolve

slave-skip-errors = 1032,1062replicate-ignore-db =mysql

server-id = 1#key_buffer_size=32M

#bulk_insert_buffer_size=64M

#myisam_sort_buffer_size=128M

#myisam_max_sort_file_size=10G

#myisam_repair_threads= 1#myisam_recover

innodb_additional_mem_pool_size=4M

innodb_buffer_pool_size=32M

innodb_data_file_path=ibdata1:128M:autoextend

innodb_file_io_threads= 4#innodb_write_io_threads= 8#innodb_read_io_threads= 8innodb_thread_concurrency= 8innodb_flush_log_at_trx_commit= 2innodb_log_buffer_size=2M

innodb_log_file_size=4M

innodb_log_files_in_group= 3innodb_max_dirty_pages_pct= 90innodb_lock_wait_timeout= 120innodb_file_per_table= 0[mysqldump]

quick

max_allowed_packet=2M

[mysql]

no-auto-rehash

#[myisamchk]

#key_buffer_size=512M

#sort_buffer_size=512M

#read_buffer=8M

#write_buffer=8M

#[mysqlhotcopy]

#interactive-timeout

[mysqld_safe]

log-error = /data/3306/mysql_wk306.err

pid-file = /data/3306/mysqld.pid

3307与3306的区别 将文件里的3306换为3307即可

cp /data/3306/my.cnf /data/3307/cd/data/3307vim my.cnf% s#3306#3307#g #替换全局3306为3307server-id = 1          #server-id不能相同

创建多实例启动文件

vim /data/3306/mysql

模板如下:

#!/bin/bash

###############################################

#this scripts is created by wk at2016-06-25port=3306mysql_user="root"mysql_pwd=""#这里需要修改为用户的实际密码

CmdPath="/usr/local/mysql/bin"mysql_sock="/data/${port}/mysql.sock"#startupfunctionfunction_start_mysql(){if [ ! -e "$mysql_sock" ];thenprintf"Starting MySQL....\n"

/bin/sh ${CmdPath}/mysqld_safe --defaults-file=/data/${port}/my.cnf 2>&1 >/dev/null &

elseprintf"MySQL is running...\n"exitfi}

#stopfunctionfunction_stop_mysql(){if [ ! -e "$mysql_sock" ];thenprintf"MySQL is stopped...\n"exitelseprintf"Stoping MySQL...\n"${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S /data/${port}/mysql.sock shutdownfi}

#restartfunctionfunction_restart_mysql(){

printf"Restarting MySQL...\n"function_stop_mysqlsleep 2function_start_mysql

}case $1 instart)

function_start_mysql

;;

stop)

function_stop_mysql

;;

restart)

function_restart_mysql

;;*)

printf"Usage: /data/${port}/mysql{start|stop|restart}\n"

esac

3307实例的启动文件只需修改3306启动文件的端口即可

cp /data/3306/mysql /data/3307/cd/data/3307vim mysql

配置MySQL多实例的文件权限

chown -R mysql.mysql /data/            #设置属主属组find /data -name "mysql" | xargs chmod 700 #将不同目录的两个mysql文件设为700权限

MySQL相关命令加入全局路径的配置

echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile   #添加全局变量

source/etc/profile                           #使其立即生效

初始化MySQL多实例的数据库文件

cd /usr/local/mysql/scripts/./mysql_install_db --basedir=/usr/local/mysql --datadir=/data/3306/data --user=mysql    #初始化3306数据库

./mysql_install_db --basedir=/usr/local/mysql --datadir=/data/3307/data --user=mysql    #初始化3307数据库

#--basedir=/usr/local/mysql为MySQL的安装路径,--datadir为不同的实例数据目录

启动MySQL多实例的命令

/data/3306/mysql start #启动3306/data/3307/mysql start #启动3307

netstat-antup | grep 330#查看是否启动

登陆MySQL

mysql -S /data/3306/mysql.sock

mysql-S /data/3307/mysql.sock

重启对应的库

/data/3306/mysql stop/data/3307/mysql start

MySQL安全配置

设置登录密码:

mysqladmin -u root -S /data/3306/mysql.sock password '123123' #为mysql设置密码

mysql启动脚本里有mysql 密码设定的变量 修改后的密码必须在启动脚本里也进行修改.两者一样

禁止使用pkill,kill -9,killall -9等命令强制杀死数据库,这会引起数据库无法启动等故障的发生

再增加一个MySQL的实例

只需要在/data下创建3308

mkdir -p /data/3308/data/

导入配置文件my.cnf     #参照3307导入

启动脚本mysql     #参照3307导入

设置属主属组

chown -R mysql.mysql /datac

给与权限

chmod 700 mysql

初始化配置文件

cd /usr/local/mysql/scripts/./mysql_install_db --basedir=/usr/local/mysql --datadir=/data/3308/data --user=mysql

执行启动脚本即可执行

mysql多实例命令_Mysql多实例相关推荐

  1. mysql服务实例配置_MySQL多实例配置(一)

    MySQL数据库的集中化运维,能够通过在一台MySQL数据库服务器上,部署多个MySQL实例.该功能是通过mysqld_multi来实现.mysqld_multi用于管理多个mysqld的服务进程,这 ...

  2. mysql服务实例配置_MySQL多实例配置

    MySQL的多实例配置 ​在一台物理机中需要多个测试环境,那么就需要用到了搭建数据库的多个实例,多个实例的意思就是运行多份程序,实例与实例之间没有影响.要注意监听的端口需要不同. 环境:CentOS7 ...

  3. mysql 单实例设置密码_MySQL单实例重置密码的两种方法

    MySQL单实例重置密码的两种方法 在工作学习中,我们有时会忘记数据库的密码,下面是MySQL单实例密码重置的步骤. 说明: (1)[root@mysql1 ~]# cat /etc/redhat-r ...

  4. mysql父子节点分层_mysql 递归实例 父子节点层级递归

    在Oracle中可以使用CONNECT  BY子句可以轻松的实现递归查询,在MSSQLServer和DB2中则可以使用WITH子句来实现递归查询,MYSQL中即不支持CONNECT  BY子句也不支持 ...

  5. mysql查看连接数命令_Mysql 查看连接数,状态

    命令: show processlist; 如果是root帐号,你能看到所有用户的当前连接.如果是其它普通帐号,只能看到自己占用的连接. show processlist;只列出前100条,如果想全列 ...

  6. mysql设置字符集命令_mysql命令设置字符集

    2页 1财富值 修改数据库字符集 2页 2财富值 mysql字符集 3页 2财富值 MySQL字符集 3页 免费 MySQL字符集问题 7页 2财富值喜欢此文档的还喜欢 ...... 默认字符集的方法 ...

  7. mysql的启动命令_mysql的配置和启动命令

    一.mysql配置文件在linux系统下的位置 使用命令查询位置: 1.找到安装位置 which mysql  -> /usr/bin/mysql 2.接下来就可以针对这个目录通过一些命令查看配 ...

  8. mysql 导入sql命令_MySQL导入.sql文件及常用命令

    MySQL导入.sql文件及常用命令 在MySQL Qurey   Brower中直接导入*.sql脚本,是不能一次执行多条sql命令的,在mysql中执行sql文件的命令: mysql> so ...

  9. mysql数据库导出命令_MYSQL 数据库导入导出命令

    在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生.所以一般推荐用SQL脚本形式导入.下面分别介绍两种方法. MySQL命令行导出数据库 1,进入MySQL目录下的bin ...

最新文章

  1. quartz在集群环境下的最终解决方案
  2. 腾讯云Linux云主机SSH远程连接
  3. 网络推广网站浅析如何做好关键词布局优化?
  4. OS开发UI篇—popoverController使用注意
  5. 【核心API开发】Spark入门教程[3]
  6. python程序设计语言的执行方式_编程语言用Python执行程序的4种方式
  7. Wonder——Auggie | Education
  8. Myeclipse8.5 反编译插件 jad 安装(转)
  9. 2013年新年礼物---CrossFPC 终于出来了
  10. 车和家李想批国内电动车虚假里程宣传:特斯拉都打到家门口了别自嗨了
  11. sping boot demo解释
  12. iis7连接mysql_windows2008中正确使用IIS7配置PHP与MySQL
  13. iOS底层探索之类的结构—cache分析(下)
  14. matlab 矩阵分行标准化,matlab矩阵标准化
  15. 高中计算机奥林匹克竞赛试题及答案,高中数学奥林匹克竞赛试题及答案.doc
  16. 手写一个博客平台 ~ 第六天
  17. C++定义一个复数类Complex,使得下面的代码能够工作。(注:下列代码需放在主函数中。)
  18. 鸽了亿下下的游记——2022 GDOI普及组游记
  19. 单片机c语言中sbuf的定义,SBUF的详细介绍!(51单片机)
  20. Unable to set custom 'dev_loss_tmo' value in RHEL7

热门文章

  1. 电流互感器同名端是什么意思
  2. 程序员从事PHP开发10年,开发是怎样的一种体验
  3. Unity实现2D模式下的摄像机视角控制
  4. Unity 摄像机视角跟随角色移动
  5. katalon Record
  6. 用java将excel表单导入数据库表单----新手入门
  7. c需要九九乘法口诀表语言,C/C++知识点之输出九九乘法口诀表
  8. vue工程加入Java代码_vue 前端项目创建
  9. ElementUI Rate 评分
  10. 程序员工作三年攒多少钱合适?