注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

0与1构筑世界,程序员创造时代

软件架构设计 Java编程

 
 
 

日志

 
 

MySQL5.5编译安装和多实例配置  

2015-05-12 19:05:30|  分类: MySQL |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

MySQL有多种安装方式:编译安装、二进制发布包安装。我想大家的第一反应是使用二进制安装,选择针对当前系统发布的二进制直接安装就行,比编译安装简单得多。但编译安装有它的好处:

  • 可针对当前系统进行优化;
  • 定制需要的引擎;
  • 定制安装目录,可多版本并存;
  • 定制各种默认参数。

那多实例有什么用途呢?在业务早期,系统的访问量较小,许多模块的读写操作不频繁,从节约成本的角度和系统以后的扩展性考虑,会在一台物理机中部署多个MySQL实例,不同的模块使用不同的实例,如果其中某个模块的读写量不断上升,到达一定程度后再将它使用的实例迁移至另外的服务器。
另外,在研发的开发环境和测试的测试环境中,部署的环境要模拟生产环境的架构,也往往采用在同一台物理服务器中部署多个MySQL实例的情况,进行主从同步、主主同步的配置。

环境

  • RedHat 5.x / CentOS 5.x
  • GCC 4.1.2

安装MySQL

解压

tar -C build -zxvf mysql-5.5.43.tar.gz

编译安装

1、配置。

cmake -DCMAKE_INSTALL_PREFIX=/home/nieyong/local/mysql-5543 -DWITH_EXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=1 -DMYSQL_UNIX_ADDR=/home/nieyong/local/mysql-5543/mysql-5543.sock -DMYSQL_TCP_PORT=3306 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DWITH_CSV_STORAGE_ENGINE=1 -DWITH_HEAP_STORAGE_ENGINE=1  -DWITH_MYISAM_STORAGE_ENGINE=1  -DWITH_MYISAMMRG_STORAGE_ENGINE=1 -DWITH_NDB_STORAGE_ENGINE=1 -DWITH_NDB_TEST=ON -DWITH_READLINE=1

2、生成可执行文件。

make

3、安装到指定目录。

make install

多实例配置

说明:创建两个实例,实例1使用端口19826实例2使用端口19836

结构说明

MySQL5.5编译安装和多实例配置 - 傲风 - 0与1构筑世界,程序员创造时代
 

说明:

  • data - 存放数据文件:数据,索引,二进制日志(bin log),重放日志(replay log)。
  • log - 存放日志文件:慢查询日志,错误日志。
  • tmp - 存放临时文件:进程ID文件。
  • my.cnf - 实例配置文件。

配置实例19826

1、新建目录。

cd $MySQL_DATA_DIR
mkdir data19826
cd data19826
mkdir data log tmp

2、创建系统配置文件。
进入目录$MySQL_DATA_DIR/data19826,新建文件my.cnf。内容类似如下:

[client]
default-character-set = utf8
port = 19826
socket = /home/nieyong/local/mysql-5543/data/data19826/tmp/mysql.sock

[mysqld]
server-id = 1
collation-server = utf8_unicode_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8
port        = 19826
socket        = /home/nieyong/local/mysql-5543/data/data19826/tmp/mysql.sock
datadir = /home/nieyong/local/mysql-5543/data/data19826/data/
log-error = /home/nieyong/local/mysql-5543/data/data19826/log/mysql.err
pid-file = /home/nieyong/local/mysql-5543/data/data19826/tmp/mysql.pid
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
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
log-bin = /home/nieyong/local/mysql-5543/data/data19826/data/mysql-bin
relay_log = /home/nieyong/local/mysql-5543/data/data19826/data/relay-bin
binlog_format = mixed
slow_query_log = 1
slow_query_log_file = /home/nieyong/local/mysql-5543/data/data19826/log/slowquery.log
long_query_time = 1
general_log = off
general_log_file = /home/nieyong/local/mysql-5543/data/data19826/log/general.log

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

3、初始化实例,生成MySQL系统数据库信息。
进入MySQL安装目录,执行命令:

./scripts/mysql_install_db --basedir=/home/nieyong/local/mysql-5543 --defaults-file=/home/nieyong/local/mysql-5543/data/data19826/my.cnf --user=nieyong

MySQL在终端输出如下提示信息:

Installing MySQL system tables...
150512 16:41:35 [Note] /home/nieyong/local/mysql-5543/bin/mysqld (mysqld 5.5.43-log) starting as process 27522 ...
OK
Filling help tables...
150512 16:41:36 [Note] /home/nieyong/local/mysql-5543/bin/mysqld (mysqld 5.5.43-log) starting as process 27528 ...
OK
。。。 。。。

配置实例19836

1、新建目录。

cd $MySQL_DATA_DIR
mkdir data19836
cd data19836
mkdir data log tmp

2、创建系统配置文件。
将$MySQL_DATA_DIR/data19826/my.cnf复制到目录$MySQL_DATA_DIR/data19836下,将内容中所有的19826都改成19836

3、初始化实例,生成MySQL系统数据库信息。
进入MySQL安装目录,执行命令:

./scripts/mysql_install_db --basedir=/home/nieyong/local/mysql-5543 --defaults-file=/home/nieyong/local/mysql-5543/data/data19836/my.cnf --user=nieyong

启动实例

1、启动实例19826。
进入MySQL安装目录,执行命令:

./bin/mysqld_safe --defaults-file=/home/nieyong/local/mysql-5543/data/data19826/my.cnf &

2、启动实例19836。
进入MySQL安装目录,执行命令:

./bin/mysqld_safe --defaults-file=/home/nieyong/local/mysql-5543/data/data19836/my.cnf &

3、查看MySQL各实例进程信息。
在终端执行命令:

ps -ef | grep mysqld | grep -v grep

系统显示如下进程信息:

nieyong  28452 26805  0 17:34 pts/2    00:00:00 /bin/sh ./bin/mysqld_safe --defaults-file=/home/nieyong/local/mysql-5543/data/data19826/my.cnf
nieyong  28857 28452  0 17:34 pts/2    00:00:00 /home/nieyong/local/mysql-5543/bin/mysqld --defaults-file=/home/nieyong/local/mysql-5543/data/data19826/my.cnf --basedir=/home/nieyong/local/mysql-5543 --datadir=/home/nieyong/local/mysql-5543/data/data19826/data/ --plugin-dir=/home/nieyong/local/mysql-5543/lib/plugin --log-error=/home/nieyong/local/mysql-5543/data/data19826/log/mysql.err --pid-file=/home/nieyong/local/mysql-5543/data/data19826/tmp/mysql.pid --socket=/home/nieyong/local/mysql-5543/data/data19826/tmp/mysql.sock --port=19826
nieyong  28886 26805  0 17:36 pts/2    00:00:00 /bin/sh ./bin/mysqld_safe --defaults-file=/home/nieyong/local/mysql-5543/data/data19836/my.cnf
nieyong  29291 28886  0 17:36 pts/2    00:00:00 /home/nieyong/local/mysql-5543/bin/mysqld --defaults-file=/home/nieyong/local/mysql-5543/data/data19836/my.cnf --basedir=/home/nieyong/local/mysql-5543 --datadir=/home/nieyong/local/mysql-5543/data/data19836/data/ --plugin-dir=/home/nieyong/local/mysql-5543/lib/plugin --log-error=/home/nieyong/local/mysql-5543/data/data19836/log/mysql.err --pid-file=/home/nieyong/local/mysql-5543/data/data19836/tmp/mysql.pid --socket=/home/nieyong/local/mysql-5543/data/data19836/tmp/mysql.sock --port=19836

配置权限

实例19826

1、修改的root用户的密码并且限制只能本机登陆。
进入MySQL安装目录,执行如下命令:

./bin/mysqladmin -S /home/nieyong/local/mysql-5543/data/data19826/tmp/mysql.sock -u root -h 'localhost' password 'new-password'

注:将new-password替代成实际的密码

2、使用root用户登陆。

 ./bin/mysql -S  /home/nieyong/local/mysql-5543/data/data19826/tmp/mysql.sock -u root -p

3、查看数据库信息。
在mysql提示符后输入命令:

show databases;
MySQL5.5编译安装和多实例配置 - 傲风 - 0与1构筑世界,程序员创造时代
 

实例19836

1、修改root用户的密码并且限制只能本机登陆。

./bin/mysqladmin -S /home/nieyong/local/mysql-5543/data/data19836/tmp/mysql.sock -u root -h 'localhost' password 'new-password'

注:将new-password替代成实际的密码

停止实例

实例19826

进入MySQL安装目录,执行如下命令:

./bin/mysqladmin -S /home/nieyong/local/mysql-5543/data/data19826/tmp/mysql.sock -u root -p shutdown

实例19836

进入MySQL安装目录,执行如下命令:

./bin/mysqladmin -S /home/nieyong/local/mysql-5543/data/data19836/tmp/mysql.sock -u root -p shutdown

<正文结束>

文章声明


作者:傲风(aofengblog@163.com)       编写时间:2015年05月12日

网址:http://aofengblog.blog.163.com

作者保留所有权利,转载请保留文章全部内容或者说明原作者和转载地址!

  评论这张
 
阅读(1462)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017