mysql多实例的配置

1、创建多实例的目录:

mkdir -p /data/mysql/mysql_3307/{data,tmp,logs}

mkdir -p /data/mysql/mysql_3308/{data,tmp,logs}

2、修改my.cnf的配置文件

vi /data/mysql/mysql_3306/my3306.cnf

#my.cnf

[client]

port            = 3306

socket          = /data/mysql/mysql_3306/tmp/mysql_3306.sock

[mysql]

prompt=[3306]>

#tee=/data/mysql/mysql_3306/data/query.log

no-auto-rehash

[mysqld]

user = mysql

basedir = /usr/local/mysql

datadir = /data/mysql/mysql_3306/data

port = 3306

socket = /data/mysql/mysql_3306/tmp/mysql_3306.sock

event_scheduler = 0

#timeout

interactive_timeout = 300

wait_timeout = 300

#character set

character-set-server = utf8

#open_files_limit = 65535

max_connections = 100

max_connect_errors = 100000

skip-name-resolve = 1

#logs

log-output=file

slow_query_log = 1

slow_query_log_file = slow.log

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

log_warnings = 2

pid-file = mysql.pid

long_query_time = 1

#log-slow-admin-statements = 1

#log-queries-not-using-indexes = 1

log-slow-slave-statements = 1

#binlog

binlog_format = mixed

server-id = 203306

log-bin = /data/mysql/mysql_3306/logs/mybinlog

binlog_cache_size = 4M

max_binlog_size = 1G

max_binlog_cache_size = 2G

sync_binlog = 0

expire_logs_days = 10

#relay log

skip_slave_start = 1

max_relay_log_size = 1G

relay_log_purge = 1

relay_log_recovery = 1

log_slave_updates

#slave-skip-errors=1032,1053,1062

explicit_defaults_for_timestamp=1

#buffers & cache

table_open_cache = 2048

table_definition_cache = 2048

table_open_cache = 2048

max_heap_table_size = 96M

sort_buffer_size = 2M

join_buffer_size = 2M

thread_cache_size = 256

query_cache_size = 0

query_cache_type = 0

query_cache_limit = 256K

query_cache_min_res_unit = 512

thread_stack = 192K

tmp_table_size = 96M

key_buffer_size = 8M

read_buffer_size = 2M

read_rnd_buffer_size = 16M

bulk_insert_buffer_size = 32M

#myisam

myisam_sort_buffer_size = 128M

myisam_max_sort_file_size = 10G

myisam_repair_threads = 1

#innodb

innodb_buffer_pool_size = 100M

innodb_buffer_pool_instances = 1

innodb_data_file_path = ibdata1:1G:autoextend

innodb_flush_log_at_trx_commit = 2

innodb_log_buffer_size = 64M

innodb_log_file_size = 256M

innodb_log_files_in_group = 3

innodb_max_dirty_pages_pct = 50

innodb_file_per_table = 1

innodb_rollback_on_timeout

innodb_status_file = 1

innodb_io_capacity = 2000

transaction_isolation = READ-COMMITTED

innodb_flush_method = O_DIRECT

[mysqld_safe]

open_file_limit = 65535

3、复制配置文件到其他实例的目录:

cp /data/mysql/mysql_3306/my3306.cnf /data/mysql/mysql_3307/my3307.cnf

cp /data/mysql/mysql_3306/my3306.cnf /data/mysql/mysql_3308/my3308.cnf

4、修改其他实例的目录路径

vi /data/mysql/mysql_3307/my3307.cnf

:%s/3306/3307/g

vi /data/mysql/mysql_3308/my3308.cnf

:%s/3306/3308/g

5、赋予权限:

chown -R mysql:mysql /usr/local/mysql

chown -R mysql:mysql /data

chown -R mysql:mysql /opt/mysql

6、多实例的初始化:

cd  /usr/local/mysql

./scripts/mysql_install_db --user=mysql --datadir=/data/mysql/mysql_3306/data --defaults-file=/data/mysql/mysql_3306/my3306.cnf

./scripts/mysql_install_db --user=mysql --datadir=/data/mysql/mysql_3307/data --defaults-file=/data/mysql/mysql_3307/my3307.cnf

./scripts/mysql_install_db --user=mysql --datadir=/data/mysql/mysql_3308/data --defaults-file=/data/mysql/mysql_3308/my3308.cnf

7、启动进程:

/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql/mysql_3306/my3306.cnf &

/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql/mysql_3307/my3307.cnf &

/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql/mysql_3308/my3308.cnf &

8、查看指定文件目录是否存在:(每个实例在启动前都要查看)

ll /data/mysql/mysql_3306/tmp

srwxrwxrwx 1 mysql mysql 0 Dec 18 07:08 mysql_3306.sock

ll /data/mysql/mysql_3307/tmp

srwxrwxrwx 1 mysql mysql 0 Dec 18 07:10 mysql_3307.sock

ll /data/mysql/mysql_3308/tmp

srwxrwxrwx 1 mysql mysql 0 Dec 18 07:22 mysql_3308.sock

9、多实例的登陆方式:

mysql --protocol=tcp -h 127.0.0.1 -uroot -P3306  --socket=/data/mysql/mysql_3306/tmp/mysql_3306.sock

mysql --protocol=tcp -h 127.0.0.1 -uroot -P3307  --socket=/data/mysql/mysql_3307/tmp/mysql_3307.sock

mysql --protocol=tcp -h 127.0.0.1 -uroot -P3308  --socket=/data/mysql/mysql_3308/tmp/mysql_3308.sock

10、关闭mysql:

mysqladmin -S   /data/mysql/mysql_3308/tmp/mysql_3306.sock shutdown

mysqladmin -S   /data/mysql/mysql_3308/tmp/mysql_3307.sock shutdown

mysqladmin -S   /data/mysql/mysql_3308/tmp/mysql_3308.sock shutdown

=================================================

在试验过程中出现的问题:

1、本来想在一个配置文件里创建多个实例,但是在初始化的时候发现error-log,bin-log,socket这些文件不能创建在指定目录。

2、配置参数如下:

也可以在/etc/my.cnf下进行多实例配置,在配置文件底部添加如下:

#端口号为3306的实例特殊配置

[mysqld3306]

port =3306

server-id=2003306

#指定本实例相应版本的basedir和datadir

basedir= /usr/local/mysql

datadir = /data/mysql/mysql_3306/data

log-bin = /data/mysql/mysql_3306/logs/mybinlog

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

socket = /data/mysql/mysql_3306/tmp/mysql_3306.sock

pid-file = /data/mysql/mysql_3306/tmp/mysql3306.pid

#重新配置这几个选项,不与全局配置一样,会直接覆盖上面的全局设置

innodb_buffer_pool_size = 100m

transaction_isolation = REPEATABLE-READ

[mysqld3307]

port=3307

server-id=2003307

#binlog-do-db=db01

basedir= /usr/local/mysql

datadir = /data/mysql/mysql_3307/data

log-bin = /data/mysql/mysql_3307/logs/mybinlog

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

socket = /data/mysql/mysql_3307/tmp/mysql_3307.sock

pid-file = /data/mysql/mysql_3307/tmp/mysql3307.pid

#重新配置这几个选项,不与全局配置一样,会直接覆盖上面的全局设置

innodb_buffer_pool_size = 100m

innodb_flush_log_at_trx_commit = 2

sync_binlog = 0

[mysqld3308]

port=3308

server-id=2003308

#binlog-do-db=db01

basedir= /usr/local/mysql

datadir = /data/mysql/mysql_3308/data

log-bin = /data/mysql/mysql_3308/logs/mybinlog

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

socket = /data/mysql/mysql_3308/tmp/mysql_3308.sock

pid-file = /data/mysql/mysql_3308/tmp/mysql3308.pid

#重新配置这几个选项,不与全局配置一样,会直接覆盖上面的全局设置

innodb_buffer_pool_size = 100m

innodb_flush_log_at_trx_commit = 2

sync_binlog = 0

3、那位大神路过可以指点指点。

时间: 2024-10-02 00:10:24

mysql多实例的配置的相关文章

MySQL多实例安装配置

MySQL多实例安装配置 一.基本概念 MySQL多实例就是,在一台机器上开启多个不同的服务端口(如:3306,3307,3308...),运行多个MySQL服务进程,这些服务进程通过不同的socket监听不同的端口提供服务. MySQL可以共用一套安全程序,使用不同的my.cnf配置文件,启动程序,数据文件. 逻辑上是独立的,但是一个实例过载过高的时候会对其他造成影响. MySQL多实例的作用与问题: 1.有效利用服务器资源 2.节约服务器资源 3.资源互相抢占问题 当某个服务实现并发生很高的

mysql 多实例应用配置部署指南

一,Mysql 多实例的作用的问题 1,有效利用服务器的资源 当单个服务器资源有剩余的时候,可以充分利用剩余的资源以提供更多的服务 2,节约服务器的资源 当公司资源紧张,但是数据库各自需要独立提供服务,而且需要主从同步等技术时候,此时使用多实例是最好的. 3,资源互相抢占的问题 当某个服务实例并发很高或者有慢查询的时候,整个实例会消耗更多的CPU,内存,磁盘IO资源,导致服务器上其他的实例提供的服务质量大大下降,相当于一个大房子,多个卧室,大家共用一个卫生间,早餐起床,一个人上厕所,长期占用,其

Amazon EC2安装mysql多实例并配置主从复制

1.MySQL安装: EC2直接使用yum安装mysql非常方便: yum install mysql mysql-server mysql-libs 此处安装了三个包 完事之后能够直接使用 service mysqld start 启动mysql服务 改动root密码: mysqladmin -u root -p password "root" 2.使用mysqld_multi安装多实例mysql: vim /etc/my.cnf 加入实例的配置信息 [mysqld] datadir

mysql单实例安装配置指南

1.操作系统:CentOS 2.数据库: mysql-5.1.73.tar.gz 3.任务:单实例安装配置指南 提示:下载数据库有两种方式:一种是官网,另一种途径是国内镜象网站:国内镜象下载资源的速度比官网要快,例如,我们这次下载的就是国内搜狐镜象: http://mirrors.sohu.com/mysql/MySQL-5.1/ http://mirrors.sohu.com/ 整个安装过程: [[email protected] tools]#wget http://mirrors.sohu

Mysql 多实例详细配置教程

8.14 Mysql 多实例 什么是多实例?就是一台机器上开启多个不同的服务端口,运行多个mysql服务进程,这些服务进程通过不同的socket监听不同的服务端口来提供各自的服务这些mysql实例共用一套mysql安装程序,使用不同(也可以相同)的my.cnf配置文,启动程序,数据库文件,在提供服务时,多实例mysql在逻辑上看来是各自独立, 优缺点:节约服务器资源并发高或慢查询时,整个实例消耗更多的系统资源,影响其它实例 8.14.1 配置mysql 建立数据目录mkdir -p /usr/l

MySQL多实例介绍及安装

一.MySQL多实例介绍 (1)什么是MySQL多实例? 简单的说,就是在一台一台机器上开启多个不同的服务端口(如:3306,3307,3308)等,运行多个MySQL服务进程: 这些服务进程通过不同的socket监听不同的服务端口来提供各自的服务. 这些MySQL多实例公用一套MySQL安装程序,使用不同或相同的my.cnf配置文件,启动程序,数据文件.在提供服务时,多实例 MySQL在逻辑上看来试各自独立的多个实例的自身是根据配置文件对应的设定值:来取得服务器的相关硬件资源的多少. 做个比喻

linux运维、架构之路-MySQL多实例

一.MySQL多实例介绍            一台服务器上开启多个不同的服务端口(3306,33307,3308),运行多个MySQL服务进程,共用一套MySQL安装程序,多实例MySQL在逻辑上看是各自独立的 1.多实例主从复制原理图 2.优点 ①有效利用服务器资源②节约服务器资源③资源互相抢占问题,其中一个实例并发很高或者慢查询,其它实例也受影响 3.应用场景 ①公司资金紧缺②并发访问不是特别大的业务③门户网站应用MySQL多实例场景,一般是从库 4.MySQL多实例常见配置方案 ①多配置

2018-03-24 mysql多实例安装学习笔记

2018-03-24 MySQL多实例介绍 什么是mysql多实例 一台机器上开启多个不同的服务端口(如:3306,3307),运行多个mysql服务进程,这些服务进程通过不同的socket舰艇不同的服务端口来提供各自的服务. 这些mysql多实例共用一套MySQL安装程序,使用不同或相同的my.cnf配置文件.启动程序,数据文件. mysql多实例的作用与问题: 有效利用服务器资源 节约服务器资源,需要主从同步等技术时,多实例再好不过了. 资源互相抢占问题 当某个服务实例并发很高或者有慢查询时

mysql多实例配置

mysql多实例配置  就是在一台服务器上运行多个mysql实例,每个实例需要一个独立的端口,实例的配置可以按实际需求进行设置  1.配置mysql多实例  # vim /etc/my.cnf[mysqld_multi]mysqld = /usr/local/mysql/bin/mysqld_safemysqladmin = /usr/local/mysql/bin/mysqladminuser = mysqllog = /database/log/mysqld-muti.log join_bu