mysql多实例的好处就不多说了 这里直接进入主题
一、格式化并挂载文件系统
将/dev/sdb 格式化为ext4
mkfs.ext4 -L DB /dev/sdb
mkdir /disk2
mount /dev/sdb /disk2
在配置文件fstab中添加如下内容
/dev/sdb /disk2 ext4 defaults 0 0
二、建立如下格式目录
/disk2/mysql5.1/data/3316,3317,3318
/disk2/mysql5.2/data/3326,3327,3328
/disk2/mysql5.5/data/3356,3357,3358
三、分别编译安装mysql 5.15.2 5.5三个包
下载地址分别为:
http://mirror.trouble-free.net/mysql_mirror/Downloads/MySQL-5.1/mysql-5.1.60.tar.gz
http://mirror.trouble-free.net/mysql_mirror/Downloads/MySQL-5.2/mysql-5.2.0-falcon-alpha.tar.gz
http://mirror.trouble-free.net/mysql_mirror/Downloads/MySQL-5.5/mysql-5.5.25a.tar.gz
http://www.cmake.org/files/v2.8/cmake-2.8.6.tar.gz
tar xf mysql-5.1.60.tar.gz
cd mysql-5.1.60
./configure--prefix=/disk2/mysql5.1/ --with-charset=gb2312 --with-extra-charsets=utf8,gb2312 --with-extra-charsets=gbk,gb2312
make
make install
./configure--prefix=/disk2/mysql5.2/ --with-charset=gb2312 --with-extra-charsets=utf8,gb2312 --with-extra-charsets=gbk,gb2312
make
make install
tar xf /mysql-5.5.25a.tar.gz
tar xf cmake-2.8.6.tar.gz
tar xf cmake-2.8.6.tar.gz
cd cmake-2.8.6
./configure
make
make install
cd ..
tar xf mysql-5.5.25a.tar.gz
cd mysql-5.5.25a
cmake -DCMAKE_INSTALL_PREFIX=/disk2/mysql5.5 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all-DMYSQL_TCP_PORT=3306 -DWITH_DEBUG=OFF-DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock
make
make install
cd /usr/local/webserver/mysql
四、分别初始化以上九个数据目录
cd /disk2/mysql5.1/bin
./mysql_install_db--datadir=/disk2/mysql5.1/data/3316 --user=mysql
./mysql_install_db--datadir=/disk2/mysql5.1/data/3317 --user=mysql
./mysql_install_db--datadir=/disk2/mysql5.1/data/3318 --user=mysql
cd /disk2/mysql5.5/scripts
./mysql_install_db--datadir=/disk2/mysql5.5/data/3356 --user=mysql
./mysql_install_db--datadir=/disk2/mysql5.5/data/3356 --user=mysql
./mysql_install_db--datadir=/disk2/mysql5.5/data/3356 --user=mysql
chown -R mysql:mysql /disk2/mysql5.1/data/*
chown -R mysql:mysql /disk2/mysql5.2/data/*
chown -R mysql:mysql /disk2/mysql5.5/data/*
五、提供配置文件和脚本
cp /root/mysql-5.1.60/support-files/mysqld_multi.server /etc/init.d/mysql_multi5.1.server
cp /root/mysql-5.2/support-files/mysqld_multi.server /etc/init.d/mysql_multi5.2.server
cp /root/mysql-5.5.25a/support-files/mysqld_multi.server /etc/init.d/mysql_multi5.5.server
sed -i -e "s#basedir=/usr/local/mysql#basedir=/disk2/mysql5.1#" -e "s#bindir=/usr/local/mysql/bin#bindir=/disk2/mysql5.1/bin#"/etc/init.d/mysql_multi5.1.server
sed -i -e "s#basedir=/usr/local/mysql#basedir=/disk2/mysql5.2#" -e "s#bindir=/usr/local/mysql/bin#bindir=/disk2/mysql5.2/bin#"/etc/init.d/mysql_multi5.2.server
sed -i -e "s#basedir=/usr/local/mysql#basedir=/disk2/mysql5.5#" -e "s#bindir=/usr/local/mysql/bin#bindir=/disk2/mysql5.5/bin#"/etc/init.d/mysql_multi5.5.server
配置文件内容如下
cd /disk2/msyql5.1
./bin/mysqld_multi --example>>./mysqld_multi.cnf
vim mysqld_multi.cnf
[mysqld_multi]
mysqld = /disk2/mysql5.1/bin/mysqld_safe
mysqladmin = /disk2/mysql5.1/bin/mysqladmin
#user= multi_admin
#password= my_password
[mysqld1]
socket = /tmp/mysql.sock1
port = 3316
pid-file = /disk2/mysql5.1/data/3316/hostname.pid3316
datadir = /disk2/mysql5.1/data/3316
language = /disk2/mysql5.1/share/mysql/english
user= mysql
[mysqld2]
socket = /tmp/mysql.sock2
port = 3317
pid-file = /disk2/mysql5.1/data/3317/hostname.pid3317
datadir = /disk2/mysql5.1/data/3317
language = /disk2/mysql5.1/share/mysql/english
user= mysql
[mysqld3]
socket = /tmp/mysql.sock3
port = 3318
pid-file = /disk2/mysql5.1/data/3318/hostname.pid3318
datadir = /disk2/mysql5.1/data/3318
language = /disk2/mysql5.1/share/mysql/english
user= mysql
cd /disk2/msyql5.2
./bin/mysqld_multi--example >> ./mysqld_multi.cnf
vim mysqld_multi.cnf
[mysqld_multi]
mysqld = /disk2/mysql5.2/bin/mysqld_safe
mysqladmin = /disk2/mysql5.2/bin/mysqladmin
#user= multi_admin
#password= my_password
[mysqld1]
socket = /tmp/mysql.sock21
port = 3326
pid-file = /disk2/mysql5.2/data/3326/hostname.pid3326
datadir = /disk2/mysql5.2/data/3326
language = /disk2/mysql5.2/share/mysql/english/
user= mysql
[mysqld2]
socket = /tmp/mysql.sock22
port = 3327
pid-file = /disk2/mysql5.2/data/3327/hostname.pid3327
datadir = /disk2/mysql5.2/data/3327
language = /disk2/mysql5.2/share/mysql/english/
user= mysql
[mysqld3]
socket = /tmp/mysql.sock23
port = 3328
pid-file = /disk2/mysql5.2/data/3328/hostname.pid3328
datadir = /disk2/mysql5.2/data/3328
language = /disk2/mysql5.2/share/mysql/english/
user= mysql
cd /disk2/msyql5.5
./bin/mysqld_multi--example >> ./mysqld_multi.cnf
vim mysqld_multi.cnf
[mysqld_multi]
mysqld = /disk2/mysql5.5/bin/mysqld_safe
mysqladmin = /disk2/mysql5.5/bin/mysqladmin
#user= multi_admin
#password= my_password
[mysqld4]
socket = /tmp/mysql.sock51
port = 3356
pid-file = /disk2/mysql5.5/data/3356/hostname.pid3356
datadir = /disk2/mysql5.5/data/3356
language = /disk2/mysql5.5/share/english
user= mysql
[mysqld5]
socket = /tmp/mysql.sock52
port = 3357
pid-file = /disk2/mysql5.5/data/3357/hostname.pid3357
datadir = /disk2/mysql5.5/data/3357
language = /disk2/mysql5.5/share/english
user= mysql
[mysqld6]
socket = /tmp/mysql.sock53
port = 3358
pid-file = /disk2/mysql5.5/data/3358/hostname.pid3358
datadir = /disk2/mysql5.5/data/3358
language = /disk2/mysql5.5/share/english
user= mysql
六、测试并启动
检测组是否正常
./bin/mysql_multi--defaults-extra-file=/disk2/mysql5.1/mysqld_multi.cnf report
./bin/mysql_multi--defaults-extra-file=/disk2/mysql5.1/mysqld_multi.cnf start
cd /disk2/mysql5.2
./bin/mysql_multi--config-file==/disk2/mysql5.2/mysqld_multi.cnf start
cd /disk2/mysql5.5
./bin/mysql_multi--defaults-extra-file=/disk2/mysql5.5/mysqld_multi.cnf start
[root@server54 bin]# netstat -tnlp|grep mysqld
tcp 0 0 0.0.0.0:3316 0.0.0.0:* LISTEN 13777/mysqld
tcp 0 0 0.0.0.0:3317 0.0.0.0:* LISTEN 13790/mysqld
tcp 0 0 0.0.0.0:3318 0.0.0.0:* LISTEN 13797/mysqld
tcp 0 0 0.0.0.0:3356 0.0.0.0:* LISTEN 16836/mysqld
tcp 0 0 0.0.0.0:3357 0.0.0.0:* LISTEN 16843/mysqld
tcp 0 0 0.0.0.0:3326 0.0.0.0:* LISTEN 25719/mysqld
tcp 0 0 0.0.0.0:3358 0.0.0.0:* LISTEN 16849/mysqld
tcp 0 0 0.0.0.0:3327 0.0.0.0:* LISTEN 25728/mysqld
tcp 0 0 0.0.0.0:3328 0.0.0.0:* LISTEN 25732/mysqld
我再额外说明一点:
因为mysql启动的时候会首先检查/etc目录下是否有my.cnf配置文件,如果你以前用rpm包安装过mysqld会默认生成在/etc/mysql/my.cnf中,如果你想使用多实例,建议重命名这个文件,因为很多无法启动的错误和一些诡异的mysql服务错误是因为这个配置文件导致的
本文详细介绍如何在一台服务器上部署多个MySQL实例,包括不同版本的安装、配置及启动过程。

被折叠的 条评论
为什么被折叠?



