mysql多实例命令_Mysql多实例

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#查看是否启动

09f2c81177f5ea2cc5797fd82ef102b1.png

登陆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 密码设定的变量 修改后的密码必须在启动脚本里也进行修改.两者一样

92a98e895a8fa38f52baf860063171a7.png

禁止使用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

执行启动脚本即可执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值