一、前言二、概述三、环境准备四、安装mysql5.5.35五、新建支持多实例的配置文件(我这里配置的是四个实例)六、初始化多实例数据库七、提供管理脚本mysqld_mult
2.背景/需求、注意事项
(1).背景与需求
(2).注意事项
三、环境准备
1.安装yum源
[root@node1 src]# wget [root@node1 src]# rpm -ivh epel-release-6-8.noarch.rpm2.同步时间
[root@node1 src]# yum install -y ntp[root@node1 src]# ntpdate 202.120.2.101[root@node1 src]# hwclock –w3.安装mysql5.5依赖包
[root@node1 ~]# yum install -y autoconf* automake* zlib* libxml* ncurses-devel* libgcrypt* libtool* openssl*4.安装cmake
[root@node1 ~]# yum install -y cmake
四、安装mysql 5.5.35
1.创建安装目录与数据存放目录
[root@node1 ~]# mkdir /data/mysql[root@node1 ~]# mkdir /data/mysql/data2.创建mysql用户与组
[root@node1 ~]# useradd mysql[root@node1 ~]# id mysql uid=500(mysql) gid=500(mysql) 组=500(mysql)3.授权安装目录与数据目录
[root@node1 ~]# chown -r mysql.mysql /data/mysql/ [root@node1 ~]# chown -r mysql.mysql /data/mysql/data4.安装mysql
[root@node1 ~]# cd src/ [root@node1 src]# tar xf mysql-5.5.35.tar.gz[root@node1 src]# cd mysql-5.5.35[root@node1 mysql-5.5.35]# cmake -dcmake_install_prefix=/data/mysql -dsysconfdir=/data/mysql/etc -dmysql_datadir=/data/mysql/data -dmysql_tcp_port=3306 -dmysql_unix_addr=/tmp/mysqld.sock -dmysql_user=mysql -dextra_charsets=all -dwith_readline=1 -dwith_ssl=system -dwith_embedded_server=1 -denabled_local_infile=1 -dwith_innobase_storage_engine=1[root@node1 mysql-5.5.35]# make && make install好了,到这里我们的mysql就安装完成了,下面我们为mysql提供多实例配置文件。
五、新建支持多实例的配置文件(我这里配置的是四个实例)
1.删除默认的数据目录
[root@node1 ~]# cd /data/mysql/ [root@node1 mysql]# rm -rf data2.创建多实例配置需要的目录
[root@node1 mysql]# mkdir etc tmp run log binlogs data data2 data3 data4[root@node1 mysql]# chown -r mysql.mysql tmp run log binlogs data data2 data3 data43.提供配置文件
[root@node1 ~]# cd src/ [root@node1 src]# cd mysql-5.5.35[root@node1 mysql-5.5.35]# cp support-files/my-small.cnf /data/mysql/etc/my.cnf[root@node1 ~]# cd /data/mysql/etc/ [root@node1 etc]# vim my.cnf # this server may run 4+ separate instances. so we use mysqld_multi to manage their services.[client] default-character-set = utf8[mysqld_multi] mysqld = /data/mysql/bin/mysqld_safe mysqladmin = /data/mysql/bin/mysqladmin log = /data/mysql/log/mysqld_multi.log user = root#password =# this is the general purpose database. # the locations are default. # they are left in [mysqld] in case the server is started normally instead of by mysqld_multi.[mysqld1] socket = /data/mysql/run/mysqld.sock port = 3306 pid-file = /data/mysql/run/mysqld.pid datadir = /data/mysql/data lc-messages-dir = /data/mysql/share/english# these support master - master replication #auto-increment-increment = 4 #auto-increment-offset = 1 # since it is master 1 log-bin = /data/mysql/binlogs/bin-log-mysqld1 log-bin-index = /data/mysql/binlogs/bin-log-mysqld1.index #binlog-do-db = # leave this blank if you want to control it on slave max_binlog_size = 1024m# this is exlusively for mysqld2 # it is on 3307 with data directory /data/mysqld/data2[mysqld2] socket = /data/mysql/run/mysqld.sock2 port = 3307 pid-file = /data/mysql/run/mysqld.pid2 datadir = /data/mysql/data2 lc-messages-dir = /data/mysql/share/english# disable dns lookups #skip-name-resolve# these support master - slave replication log-bin = /data/mysql/binlogs/bin-log-mysqld2 log-bin-index = /data/mysql/binlogs/bin-log-mysqld2.index #binlog-do-db = # leave this blank if you want to control it on slave max_binlog_size = 1024m # relay log settings #relay-log = /data/mysql/log/relay-log-mysqld2 #relay-log-index = /data/mysql/log/relay-log-mysqld2.index #relay-log-space-limit = 4g# slow query log settings #log-slow-queries = /data/mysql/log/slow-log-mysqld2 #long_query_time = 2 #log-queries-not-using-indexes# this is exlusively for mysqld3 # it is on 3308 with data directory /data/mysqld/data3[mysqld3] socket = /data/mysql/run/mysqld.sock3 port = 3308 pid-file = /data/mysql/run/mysqld.pid3 datadir = /data/mysql/data3 lc-messages-dir = /data/mysql/share/english#disable dns lookups #skip-name-resolve# these support master - slave replication log-bin = /data/mysql/binlogs/bin-log-mysqld3 log-bin-index = /data/mysql/binlogs/bin-log-mysqld3.index #binlog-do-db = # leave this blank if you want to control it on slavemax_binlog_size = 1024m # this is exlusively for mysqld4 # it is on 3309 with data directory /data/mysqld/data4 [mysqld4] socket = /data/mysql/run/mysqld.sock4 port = 3309 pid-file = /data/mysql/run/mysqld.pid4 datadir = /data/mysql/data4 lc-messages-dir = /data/mysql/share/english# disable dns lookups #skip-name-resolve# these support master - slave replication log-bin = /data/mysql/binlogs/bin-log-mysqld4 log-bin-index = /data/mysql/binlogs/bin-log-mysqld4.index #binlog-do-db = # leave this blank if you want to control it on slave max_binlog_size = 1024m # the rest of the my.cnf is shared # here follows entries for some specific programs # the mysql server [mysqld] basedir = /data/mysql tmpdir = /data/mysql/tmp socket = /data/mysql/run/mysqld.sock port = 3306 pid-file = /data/mysql/run/mysqld.pid datadir = /data/mysql/data lc-messages-dir = /data/mysql/share/englishskip-external-locking key_buffer_size = 16k max_allowed_packet = 1m table_open_cache = 4 sort_buffer_size = 64k read_buffer_size = 256k read_rnd_buffer_size = 256k net_buffer_length = 2k thread_stack = 128k# increase the max connections max_connections = 2# the expiration time for logs, including binlogs expire_logs_days = 14# set the character as utf8 character-set-server = utf8 collation-server = utf8_unicode_ci# this is usually only needed when setting up chained replication #log-slave-updates# enable this to make replication more resilient against server crashes and restarts # but can cause higher i/o on the server #sync_binlog = 1# the server id, should be unique in same network server-id = 1# set this to force mysql to use a particular engine/table-type for new tables # this setting can still be overridden by specifying the engine explicitly # in the create table statement default-storage-engine = innodb# enable per table data for innodb to shrink ibdata1 innodb_file_per_table = 1# uncomment the following if you are using innodb tables #innodb_data_home_dir = /data/mysql/data #innodb_data_file_path = ibdata1:10m:autoextend #innodb_log_group_home_dir = /data/mysql/data # you can set .._buffer_pool_size up to 50 - 80 % of ram # but beware of setting memory usage too high innodb_buffer_pool_size = 16m innodb_additional_mem_pool_size = 2m # set .._log_file_size to 25 % of buffer pool size innodb_log_file_size = 5m innodb_log_buffer_size = 8m innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 50[mysqldump] quick max_allowed_packet = 16m[mysql] no-auto-rehash[myisamchk] key_buffer_size = 8m sort_buffer_size = 8m[mysqlhotcopy] interactive-timeout[mysql.server] user = mysql[mysqld_safe] log-error = /data/mysql/log/mysqld.log pid-file = /data/mysql/run/mysqld.pid open-files-limit = 8192