Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1958560
  • 博文数量: 498
  • 博客积分: 2078
  • 博客等级: 大尉
  • 技术积分: 1645
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-18 22:43
个人简介

安大

文章分类

全部博文(498)

文章存档

2017年(1)

2016年(2)

2015年(21)

2014年(90)

2013年(101)

2012年(267)

2011年(16)

分类:

2012-07-19 13:50:12

原文地址:Mysql多实例应用配置 作者:xiaogui_vip

1.mysql多实例

MYSQL服务器和服务器启动脚本:

o        mysqldMySQL服务器

o        mysqld_safemysql.servermysqld_multi是服务器启动脚本

o        mysql_install_db初始化数据目录和初始数据库

 

mysqld_multi可以管理多个帧听不同Unix套接字文件和TCP/IP端口的连接的mysqld 进程。它可以启动或停止服务器,或报告它们的当前状态。

程序寻找my.cnf中的[mysqldN](--config-file选项指定的文件)N 可以为任何正整数。组号区别各选项组,并用作mysqld_multi的参数来指定想要启动、停止哪个服务器或获取哪个服务器的状态报告。这些组中的选项与将用来启动mysqld[mysqld]组中的相同。

2.配置说明

[mysqld_multi]

mysqld = /usr/bin/mysqld_safe

mysqladmin = /usr/bin/mysqladmin

user       = multi_admin

password   = qnsoft

增加节点mysqld_multi,配置mysqladmin路径。

使用mysqladmin来停止mysqld服务时,需要指定一个用户,上面配置一个multi_admin用户,每一个实例都需要配置该用户,使用如下命令赋予停止权限以及密码:

GRANT  SHUTDOWN ON *.* TO multi_admin@10.130.24.237 IDENTIFIED BY 'qnsoft';

如果使用root用户,该配置可忽略。

 

[mysqld1]

port            = 3306

socket          = /var/lib/mysql/mysql.sock

skip-locking

key_buffer = 512M

max_allowed_packet = 1M

table_cache = 256

sort_buffer_size = 2M

net_buffer_length = 8K

read_buffer_size = 2M

read_rnd_buffer_size = 4M

myisam_sort_buffer_size = 64M

thread_cache_size = 24

query_cache_size= 64M

default-character-set=gbk

relay-log=/var/lib/mysql/relay-log

datadir=/var/lib/mysql

 

 

# Try number of CPU's*2 for thread_concurrency

thread_concurrency = 32

 

lower_case_table_names=1

default_table_type=INNODB

max_connections=1000

set-variable=long_query_time=5

slow_query_log_file = /var/log/mysql/mysql-slow.log

slow_query_log=1

 

server-id       = 1

。。。

以上是一个实例的配置,启动和停止时使用的序号与[mysqldN]中的数字对应,如上面节点序号是1。实例的配置和平常的配置是一样的,不过要分别指定socketdatadir的路径,指定server-id,与[mysqldN]中的数字对应,指定启动的端口,各实例不能重复,也不能被其他应用占用。

可以配置多个实例,如[mysqld2][mysqld3]

如配置第二个实例[mysqld2],在[mysqld1]下增加[mysqld2]节点:

[mysqld2]

port            = 3326

socket          = /var/lib/mysql2/mysql.sock

skip-locking

key_buffer = 512M

max_allowed_packet = 1M

table_cache = 256

sort_buffer_size = 2M

net_buffer_length = 8K

read_buffer_size = 2M

read_rnd_buffer_size = 4M

myisam_sort_buffer_size = 64M

thread_cache_size = 24

query_cache_size= 64M

default-character-set=gbk

relay-log=/var/lib/mysql2/relay-log

datadir=/var/lib/mysql2

 

 

# Try number of CPU's*2 for thread_concurrency

thread_concurrency = 32

 

lower_case_table_names=1

default_table_type=INNODB

max_connections=1000

set-variable=long_query_time=5

slow_query_log_file = /var/log/mysql2/mysql-slow.log

slow_query_log=1

 

server-id       = 2

。。。

生成第二个实例需要的文件夹,如上面的/var/lib/mysql2/var/log/mysql2,并把文件夹的属主改成mysql,然后生成该实例的数据文件,使用3.3节命令,然后启动该实例,生成其余的文件。

这样,第二个实例就配好了。

 

注意:数据库多实例并不能提高系统性能,相反,多个实例都需要分配内存和占用CPU

参考配置如下(使用时将后缀改成cnf):

3.常用命令 3.1启动

mysqld_multi start N

注:N为实例序号

3.2停止

mysqld_multi stop N --user=root --password=qnsoft

注:N为实例序号,userpassword分别为停止的账户和密码,可使用第一章中使用的multi_admin用户

3.3生成数据文件

mysql_install_db --user=mysql --datadir=/var/lib/mysql/

datadir为相应实例的数据文件路径

3.4修改密码

/usr/bin/mysqladmin -u root -S /var/lib/mysql2/mysql.sock password '123456'

注:-S /var/lib/mysql/mysql.sock为对应实例sock地址

 

3.5启动和停止数据库

查看是否启动:

 mysqld_multi --config-file=/etc/my_multi.cnf report 2,3

启动和停止:

启动 report改为start

停止 report改为stop

3.6登录数据库

mysql  -hhostaddress  –uusername  –ppassword –P port

 

首次登录mysql -u root -S /tmp/mysql2.sock    //sock文件位置根据实际调整

阅读(514) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~