MySQL5.6版本多实例化

1.MySQL多实例概述

MySQL多实例就是在一台linux服务器上开启多个不同的服务端口,运行多个MySQL服务进程,通过不同的socket监听不同的服务端口来提供各自的服务。

在同一环境下部署多个数据库,需主要以下几点

配置文件安装路径不能相同

数据库目录不能相同

启动脚本不能同名

端口不能相同

socket文件的生产路径不能相同

2.MySQL多实例部署

2.1部署环境

CentOS Linux release 7.9.2009 (Core)

MySQL-5.6.50

2.2部署mysql服务

2.2.1安装MySQL依赖

# yum  -y install gcc gcc-c++ autoconf bison  \

    cmake zlib* fiex* libxml* ncurses-devel \

libmcrypt* libtool-ltdl-devel*  automake \

openssl openssl-devel pcre pcre-devel

  2.2.2源码安装MySQL

  # tar -xf mysql-5.6.50.tar.gz

  # cd mysql-5.6.50

  # cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1  \

-DWITH_INNOBASE_STORAGE_ENGINE=1  \

-DWITH_MEMORY_STORAGE_ENGINE=1  \

-DWITH_FEDERATED_STORAGE_ENGINE=1  \

-DWITH_READLINE=1 \

-DENABLED_LOCAL_INFILE=1  \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DEXTRA_CHARSETS=all  \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci

#  make

#  make install

2.2.4环境变量

#  echo 'export PATH=$PATH:/usr/local/mysql/bin' >>  /etc/profile

#  source /etc/profile

2.2.5创建工作目录

#  mkdir -p  /data/mysql/{mysql_3306,mysql_3307,mysql_3308}/{data,log,tmp}

#  chown -R mysql:mysql /data/mysql/

#  useradd mysql

2.2.6修改配置文件my.cnf

#  cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

#  vim  /etc/my.cnf

[client] 

port=3306 

socket=/tmp/mysql.sock 

[mysqld_multi]  #多实例配置

mysqld = /usr/local/mysql /bin/mysqld_safe 

mysqladmin = /usr/local/mysql /bin/mysqladmin 

log = /data/mysql/mysqld_multi.log 

[mysqld]  #多实例配置

user=mysql 

basedir = /usr/local/mysql

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

key_buffer_size = 32M

wait_timeout=3600

max_allowed_packet = 200M

table_open_cache = 128

sort_buffer_size = 768K

net_buffer_length = 8K

read_buffer_size = 768K

read_rnd_buffer_size = 512K

myisam_sort_buffer_size = 8M

thread_cache_size = 16

query_cache_size = 16M

tmp_table_size = 32M

performance_schema_max_table_instances = 500

max_connections = 1000

max_connect_errors = 100

open_files_limit = 65535

[mysqld3306] 

mysqld=mysqld 

mysqladmin=mysqladmin 

datadir=/data/mysql/mysql_3306/data 

port=3306 

server_id=3306 

socket=/tmp/mysql_3306.sock 

log-output=file 

slow_query_log = 1 

long_query_time = 1 

slow_query_log_file = /data/mysql/mysql_3306/log/slow.log 

log-error = /data/mysql/mysql_3306/log/error.log 

binlog_format = mixed 

log-bin = /data/mysql/mysql_3306/log/mysql3306_bin 


innodb_file_per_table = 1

innodb_data_file_path = ibdata1:10M:autoextend

innodb_buffer_pool_size = 128M

innodb_log_file_size = 32M

innodb_log_buffer_size = 8M

innodb_flush_log_at_trx_commit = 1

innodb_lock_wait_timeout = 50

[mysqldump3306]

quick

max_allowed_packet = 1024M

[mysql3306]

no-auto-rehash

[myisamchk3306]

key_buffer_size = 32M

sort_buffer_size = 768K

read_buffer = 2M

write_buffer = 2M

[mysqlhotcopy3306]

interactive-timeout

[mysqld3307] 

mysqld=mysqld 

mysqladmin=mysqladmin 

datadir=/data/mysql/mysql_3307/data 

port=3307 

server_id=3307 

socket=/tmp/mysql_3307.sock 

log-output=file 

slow_query_log = 1 

long_query_time = 1 

slow_query_log_file = /data/mysql/mysql_3307/log/slow.log 

log-error = /data/mysql/mysql_3307/log/error.log 

binlog_format = mixed 

log-bin = /data/mysql/mysql_3307/log/mysql3307_bin

innodb_file_per_table = 1

innodb_data_file_path = ibdata1:10M:autoextend

innodb_buffer_pool_size = 128M

innodb_log_file_size = 32M

innodb_log_buffer_size = 8M

innodb_flush_log_at_trx_commit = 1

innodb_lock_wait_timeout = 50

[mysqldump3307]

quick

max_allowed_packet = 1024M

[mysql3307]

no-auto-rehash

[myisamchk3307]

key_buffer_size = 32M

sort_buffer_size = 768K

read_buffer = 2M

write_buffer = 2M

[mysqlhotcopy3307]

interactive-timeout

[mysqld3308]

mysqld=mysqld

mysqladmin=mysqladmin

datadir=/data/mysql/mysql_3308/data

port=3308

server_id=3308

socket=/tmp/mysql_3308.sock

log-output=file

slow_query_log = 1

long_query_time = 1

slow_query_log_file = /data/mysql/mysql_3308/log/slow.log

log-error = /data/mysql/mysql_3308/log/error.log

binlog_format = mixed

log-bin = /data/mysql/mysql_3307/log/mysql3308_bin

innodb_file_per_table = 1

innodb_data_file_path = ibdata1:10M:autoextend

innodb_buffer_pool_size = 128M

innodb_log_file_size = 32M

innodb_log_buffer_size = 8M

innodb_flush_log_at_trx_commit = 1

innodb_lock_wait_timeout = 50

[mysqldump3308]

quick

max_allowed_packet = 1024M

[mysql3308]

no-auto-rehash

[myisamchk3308]

key_buffer_size = 32M

sort_buffer_size = 768K

read_buffer = 2M

write_buffer = 2M

[mysqlhotcopy3308]

interactive-timeout

2.3初始化数据库

#  /usr/local/mysql/scripts/mysql_install_db \

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

    --datadir=/data/mysql/mysql_3306/data  \

    --defaults-file=/etc/my.cnf 

#  /usr/local/mysql/scripts/mysql_install_db  \

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

    --datadir=/data/mysql/mysql_3307/data  \

    --defaults-file=/etc/my.cnf 

#  /usr/local/mysql/scripts/mysql_install_db  \

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

    --datadir=/data/mysql/mysql_3308/data \

    --defaults-file=/etc/my.cnf

如下提示表示初始化成功:

[root@Template ~]# ll /data/mysql/mysql_3306/data/total 77840-rw-rw---- 1 mysql mysql 56 Dec 24 20:14 auto.cnf-rw-rw---- 1 mysql mysql 12582912 Dec 24 20:14 ibdata1-rw-rw---- 1 mysql mysql 33554432 Dec 24 20:14 ib_logfile0-rw-rw---- 1 mysql mysql 33554432 Dec 24 20:14 ib_logfile1drwx------ 2 mysql mysql 4096 Dec 24 20:13 mysqldrwx------ 2 mysql mysql 4096 Dec 24 20:13 performance_schema-rw-rw---- 1 mysql mysql 6 Dec 24 20:14 Template.piddrwx------ 2 mysql mysql 6 Dec 24 20:13 test

2.4启动多实例

#  /usr/local/mysql/bin/mysqld_multi start    #开启多实例

#  /usr/local/mysql/bin/mysqld_multi report  #查看全部实例状态

#  /usr/local/mysql/bin/mysqld_multi  start 3306 #启动单个实例

#  /usr/local/mysql/bin/mysqld_multi  stop  3306 #停止单个实例

2.5修改实例密码(特别注意是初始密码为空)

# mysql -S /tmp/mysql_3306.sock  #其他实例均按照这个方式处理

mysql> set password for root@'localhost'=password('123456');

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> exit

# mysql -uroot -h127.0.0.1  -P3306 -p  #创建一个外部连接账号

mysql> grant all on *.* to admin@'%' identified by '123456';

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.01 sec)

测试远程连接是否正常

2.6部署总结

首先必须安装mysql服务;

my.cnf也有一些公共配置必须配置[mysqld_multi]  [mysqld];

通过mysqld类型加后缀来区别各个实例配置;

通过mysql_install_db来实现各个实例初始化;

注意各个实例目录的权限;

首次连接实例方式需特别注意。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,588评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,456评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,146评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,387评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,481评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,510评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,522评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,296评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,745评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,039评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,202评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,901评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,538评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,165评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,415评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,081评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,085评论 2 352

推荐阅读更多精彩内容