MySQL单机多实例的配置笔记

网上的大部分都是mysqld_multi方式启动的多实例。

以前在老男孩老师的视频里看到的另一种方法,如下。

参考:http://www.ilanni.com/?p=8020

环境

CentOS6.7x86_64【2.6.32-573.el6.x86_64】

mysql-5.6.30通用二进制安装包

创建mysql的独立配置文件目录

mkdir /data/{3306,3307} -pv

建立账户

groupadd mysql

useradd -s /sbin/nologin -g mysql -Mmysql

创建mysql的数据目录

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

安装Mysql及准备配置文件

tar xf mysql-5.6.30-linux-glibc2.5-x86_64.tar.gz-C /usr/local

cd /usr/local

ln -s mysql-5.6.30-linux-glibc2.5-x86_64mysql

chown mysql.mysql mysql/ -R

cp /usr/local/mysql/support-files/my-default.cnf /data/3306/my.cnf

修改/data/3306/my.cnf

[client]

user = root

socket =/data/3306/mysql.sock

port = 3306

[mysql]

no-auto-rehash

default_character_set = utf8

prompt = [\d] >

[mysqld]

# Basic

port = 3306

socket =/data/3306/mysql.sock

basedir =/usr/local/mysql

datadir =/data/3306/data

user = mysql

skip-external-locking

skip_name_resolve = ON

character-set-server = utf8

key_buffer_size = 16M

table_open_cache = 64

sort_buffer_size = 512K

net_buffer_length = 8K

read_buffer_size = 256K

read_rnd_buffer_size = 512K

myisam_sort_buffer_size = 8M

max_allowed_packet = 50M

max_connections = 1000

thread_cache_size = 80

connect_timeout = 20

wait_timeout = 100

interactive_timeout = 100

server_id = 1

# query cache

query_cache_type=OFF

query_cache_size=0

# logs

slow_query_log=ON

slow_query_log_file =/data/3306/data/localhost-slow.log

long_query_time = 5

log_error = /data/3306/data/mysql.err

log_warnings = 2

# binlogs

log-bin=mysql-bin

binlog_format=mixed

expire_logs_days = 10

binlog_cache_size=2M

# InnoDB Optimize

innodb_file_per_table = ON

innodb_write_io_threads = 8

innodb_read_io_threads = 8

innodb_buffer_pool_dump_at_shutdown= ON

innodb_buffer_pool_load_at_startup= ON

innodb_buffer_pool_instances = 8

innodb_buffer_pool_size = 2G

innodb_additional_mem_pool_size =128M

innodb_data_home_dir = /data/3306/data

innodb_data_file_path =ibdata1:10M:autoextend

innodb_log_group_home_dir= /data/3306/data

innodb_log_file_size = 512M

innodb_log_buffer_size = 1G

innodb_flush_log_at_trx_commit = 1

innodb_lock_wait_timeout = 50

[mysqld_safe]

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

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

[mysqldump]

quick

max_allowed_packet = 16M

[mysql]

no-auto-rehash

修改/data/3307/my.cnf

cp /data/3306/my.cnf  /data/3307/my.cnf

sed -i ‘s#3306#3307#g‘  /data/3307/my.cnf

初始化mysql多实例

/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/3306/data --user=mysql

/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/3307/data --user=mysql

chown mysql.mysql/data/{3306,3307} -R

启动mysql多实例

/usr/local/mysql/bin/mysqld_safe--defaults-file=/data/3306/my.cnf &

/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/3307/my.cnf&

ps aux |grep mysqld

ss -lnt|egrep "3306|3307"

配置启动脚本

vim /etc/init.d/mysqld_3306

#!/bin/sh

# chkconfig: 345 80 15

# description: A very fast andreliable SQL database engine.

#init

port=3306

mysql_user="root"

mysql_pwd=""

CmdPath="/usr/local/mysql/bin"

#startup function

function_start_mysql()

{

printf "Starting MySQL...\n"

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

}

#stop function

function_stop_mysql()

{

printf "Stoping MySQL...\n"

${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S/data/${port}/mysql.sock shutdown

}

#restart function

function_restart_mysql()

{

printf "Restarting MySQL...\n"

function_stop_mysql

sleep 2

function_start_mysql

}

case $1 in

start)

function_start_mysql

;;

stop)

function_stop_mysql

;;

restart)

function_restart_mysql

;;

*)

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

esac

vim /etc/init.d/mysqld_3307

#!/bin/sh

# chkconfig: 345 81 16

# description: A very fast andreliable SQL database engine.

#init

port=3307

mysql_user="root"

mysql_pwd=""

CmdPath="/usr/local/mysql/bin"

#startup function

function_start_mysql()

{

printf "Starting MySQL...\n"

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

}

#stop function

function_stop_mysql()

{

printf "Stoping MySQL...\n"

${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S/data/${port}/mysql.sock shutdown

}

#restart function

function_restart_mysql()

{

printf "Restarting MySQL...\n"

function_stop_mysql

sleep 2

function_start_mysql

}

case $1 in

start)

function_start_mysql

;;

stop)

function_stop_mysql

;;

restart)

function_restart_mysql

;;

*)

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

esac

设置开机自启动

chmod +x /etc/init.d/mysqld_3306

chmod +x /etc/init.d/mysqld_3307

chkconfig --add mysqld_3306

chkconfig --add mysqld_3307

登录测试

mysql -uroot -S /data/3306/mysql.sock

mysql -uroot -S /data/3307/mysql.sock

都是可以登录的,后面和普通的数据库一样操作就行了。

时间: 2024-08-27 03:34:06

MySQL单机多实例的配置笔记的相关文章

amoeba针对MySQL单机多实例配置文件注释

MySQL单机多实例的读写分离可以通过第三方软件来实现,其中一个叫简单的读写分离软件就是今天所带给大家的amoeba软件. 本次使用的amoeba软件为amoeba-mysql-binary-2.1.0-RC5.tar.gz 本软件是基于JAVA环境运行的,所以需要JAVA环境支持,具体环境配置不做详解. 本文主要解释两个主配置文件. 1.dbServer.xml 这个文件配置的是父配置(用来给默认子配置补充配置项) 真实mysql服务器的端口,数据库名称,mysql用户及密码 主服务器,从服务

ElasticSearch单机双实例的配置方法

ElasticSearch单机双实例的配置方法https://knktc.com/2016/06/10/elasticsearch-multiple-instances/Don't Cross 32 GB!https://www.elastic.co/guide/en/elasticsearch/guide/current/heap-sizing.html#compressed_oopsElasticSearch术语https://www.cnblogs.com/chenny7/p/431172

MySQL单机多实例安装并配置主从复制

单机多实例据说可以最大程度提高硬件使用,谁知道呢,但是以前的公司喜欢这样搞,我最近也在学习复制什么的,电脑搞不起两台虚拟机,刚好单机多实例可以解救我.下面就说说步骤. 承上文http://www.cnblogs.com/wingsless/p/4002806.html,我已经安装好了MySQL,不过这个是单实例的,要更改也可以,但是担心会出现问题,于是我将下面的东西删掉: 1 #rm -f /etc/init.dmysql 2 $rm -f /home/mysql/data 建立这么几个目录:

MySQL单机多实例配置

1.安装说明 (1).将所有的安装文件.配置文件.数据目录全部放存/data/mysql目录中,便于今后实现快速迁移.整体备份和快速复制: (2).在一台服务器上运行四个MySQL实例,分别绑定在3306.3307.3308.3309端口上 (3).四个实例都开启binlog日志,数据目录分别存放在/data/mysql/data1./data/mysql/data2./data/mysql/data3./data/mysql/data4 (4).四个实例均采用InnoDB作为默认的存储引擎,字

MySQL单机多实例配置实战

本文主要介绍在CentOS6.9下快速安装和部署MySQL多实例 基本流程: 1.Mysql多实例介绍 2.安装MySQL多实例 3.创建MySQL多实例的数据文件目录以及配置文件 4.创建MySQL多实例的启动文件 5.配置文件权限和软链接 6.初始化MySQL多实例的数据库文件 7.启动MySQL多实例数据库 8.配置和管理MySQL多实例数据库 流程一:Mysql多实例介绍 简单的说,Mysql多实例就是在一台服务器上同时开启多个不同的服务端口(如 : 3306/3307/3308)同时运

mysql 单机多实例配置

如果你想在一台机器上进行主从配置实验,本篇可以帮助你实现愿望 [client] #password = your_password port = 3306 socket = /tmp/mysql.sock [mysqld] port = 3306 socket = /tmp/mysql.sock datadir = /data/mysqldata skip-external-locking key_buffer_size = 64M max_allowed_packet = 1M table_o

MySQL单机多实例部署

一.MySQL多实例部署 版本:5.7.18 1.软件安装 # tar xf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz -C /usr/local # cd /usr/local # chown -R root.root mysql-5.7.18-linux-glibc2.5-x86_64 # ln -sv mysql-5.7.18-linux-glibc2.5-x86_64 mysql5.7.18 # mkdir /data/{mydata3307,m

MySQL单机多实例部署详解

一.mysql多实例的原理 mysql多实例,简单的说,就是在一台服务器上开启多个不同的mysql服务端口(如3306,3307),运行多个mysql服务进程.这些服务进程通过不同的socket监听不同的服务端口,来提供各自的服务. 这些mysql实例共用一套mysql安装程序,使用不同的my.cnf配置文件.启动程序.数据文件.在提供服务时,mysql多实例在逻辑上看来是各自独立的,各个实例之间根据配置文件的设定值,来取得服务器的相关硬件资源. 二.mysql多实例的特点 2.1 有效的利用服

多配置文件部署mysql单机多实例

1.安装gcc-c++.ncurses依赖包 # yum install gcc-c++ ncurses-devel 2.安装cmake,用来编译mysql # tar -xvf cmake-3.2.0-.tar.gz # mv cmake-3.2.0 cmake # mv cmake /tmp/ # cd /tmp/cmake/ # ./bootstrap # make # make install # cmake --version 3.安装bison # tar -xvf bison-3.