这两天总结了一下MySQL多实例服务的搭建,分别是编译安装mysql,按照网上老男孩老师教的方法,通过脚本实现。还有一个是二进制mysql安装,简单几步方可实现。
这篇博客首先介绍一下通过mysql二进制包搭建多实例服务。
什么是多实例?
mysql多实例就是一台机器开启不同的数据端口,运行不同的服务进程,它们共用一套mysql安装程序,使用不同的 my.cnf 文件,启动|停止程序。
系统环境如下
安装前先创建一个目录,养成好习惯,将安装包放到规定的目录中
mkdir -p /home/yuci/tools
创建mysql用户
useradd -s /sbin/nologin -M mysql
id mysql
由于是二进制的安装包,解压就能使用了
tar zxf mysql-5.5.33-linux2.6-x86_64.tar.gz
在 / 下创建 application 目录,用于存放解压后的 mysql 程序
mkdir /application
将软件包移动到/application目录中,保留他的版本号,方便后人。哈哈
mv mysql-5.5.33-linux2.6-x86_64/ /application/mysql-5.5.33
因为有版本号,所以做一个软连接取出版本号
ln -s /application/mysql-5.5.33/ /application/mysql
分别创建多实例的数据库文件的存放目录
mkdir /application/mysql/data/3306
mkdir /application/mysql/data/3307
初始化两个数据库
/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data/3306 --user=mysql
/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data/3307 --user=mysql
拷贝 mysql 的配置文件my.cnf
cp /application/mysql/support-files/my-small.cnf /application/mysql/data/3306/my.cnf
cp /application/mysql/support-files/my-small.cnf /application/mysql/data/3307/my.cnf
分别修改mysql 3306,3307的配置文件
vim /application/mysql/data/3306/my.cnf
[client]
#password = your_password
port = 3306
socket = /tmp/mysql3306.sock
[mysqld]
port = 3306
socket = /tmp/mysql3306.sock
datadir=/application/mysql/data/3306
vim /application/mysql/data/3307/my.cnf
[client]
#password = your_password
port = 3307
socket = /tmp/mysql3307.sock
[mysqld]
port = 3307
socket = /tmp/mysql3307.sock
datadir=/application/mysql/data/3307
将 /application/mysql 目录的属主属组全部修改为 mysql
chown -R mysql:mysql /application/mysql
给他们各自拷贝一个启动脚本并赋予权限
cp /application/mysql/support-files/mysql.server /etc/init.d/mysql3306
cp /application/mysql/support-files/mysql.server /etc/init.d/mysql3307
chmod 755 /etc/init.d/mysql3306
chmod 755 /etc/init.d/mysql3307
编辑 /etc/init.d/mysql3306 /etc/init.d/mysql3307 文件
vim /etc/init.d/mysql3306
basedir=/application/mysql
datadir=/application/mysql/data/3306
vim /etc/init.d/mysql3307
basedir=/application/mysql
datadir=/application/mysql/data/3307
检查3306 3307端口是否正常开启
netstat -tlunp | grep 330
添加环境变量
ln -s /application/mysql/bin/* /usr/local/bin
为两个mysql数据库设定密码
mysqladmin -uroot password 123456 -S /tmp/mysql3306.sock
mysqladmin -uroot password 123456 -S /tmp/mysql3307.sock
登陆时需要用 -S 指定 .sock 文件的位置
mysql -uroot -p123456 -S /tmp/mysql3306.sock
mysql -uroot -p123456 -S /tmp/mysql3307.sock
本文转自 mlwzby 51CTO博客,原文链接:http://blog.51cto.com/aby028/1891423