mysql 5.6.4-m7 多实例的安装

mysql 5.6.4-m7 多实例的安装(多个配置文件)


安装说明:

使用镜像:     CentOS-6.5-x86_64-minimal.iso

系统 :        CentOS release 6.5 (Final)  2.6.32-431.el6.x86_64

mysql 安装目录 /usr/lcoal/mysql

msyql data目录 /usr/local/mysql/data/3306

/usr/local/mysql/data/3307

/usr/local/mysql/data/3308

 

************************************************************************

准备工作:

 

yum -y install lrzsz vim wget tar
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
yum makecache
useradd -M mysql -s /sbin/nologin
service iptables stop
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
chkconfig iptables off

安装依赖包:

yum -y install make gcc gcc-c++ gcc-gfortran flex bison file libtool libtool-libs autoconf kernel-devel libjpeg libjpeg-devel libpng libpng-devel libpng10 libpng10-devel gd gd-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel bzip2 bzip2-devel libevent libevent-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel gettext gettext-devel ncurses-devel gmp-devel pspell-devel unzip libcap lsof

解压包 安装mysql配置工具camke

tar xf mysql-5.6.4-m7.tar.gz
tar xf cmake-2.8.5.tar.gz
cd cmake-2.8.5
./configure
gmake
gmake install

开始安装mysql :

cd ../mysql-5.6.4-m7

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DMYSQL_USER=mysql \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_USER=mysql \
-DWITH_DEBUG=0 \
-DWITH_SSL=system

make && make install

多实例开始配置:

cd /usr/local/mysql/data/
mkdir -p {3306,3307,3308}/data              #创建实例数据库目录
chown -R mysql.mysql /usr/local/mysql/       #授权目录权限为mysql 用户
ln -s /usr/local/mysql/bin/* /usr/local/sbin/    #mysql相关命令软连接
cd /usr/local/mysql/support-files/
cp my-small.cnf ../data/3306/               #拷贝配置文件到实例主目录下面
cp my-small.cnf ../data/3307/
cp my-small.cnf ../data/3308/

更名配置文件:

cd ../data/3306
mv my-small.cnf my.cnf

cd ../3307
mv my-small.cnf my.cnf

cd ../3308
mv my-small.cnf my.cnf

初始化数据库:

/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/3306 --defaults-file=/usr/local/mysql/data/3306/my.cnf --user=mysql

/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/3307 --defaults-file=/usr/local/mysql/data/3307/my.cnf --user=mysql

/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/3308 --defaults-file=/usr/local/mysql/data/3308/my.cnf --user=mysql

过程中需要看到 有两个OK, 说明就是初始化成功了。如有其它报错请检查权限或者百度。

 

修改配置文件:

vim /usr/local/mysql/data/3306/my.cnf
vim /usr/local/mysql/data/3307/my.cnf
vim /usr/local/mysql/data/3308/my.cnf

配置文件内容 (基本相同,只需要修改端口,目录对应即可)

[client]
port          = 3306
socket                = /usr/local/mysql/data/3306/mysql.sock

[mysqld]
port          = 3306
socket                = /usr/local/mysql/data/3306/mysql.sock
pid-file   = /usr/local/mysql/data/3306/mysql.pid
datadir    = /usr/local/mysql/data/3306
skip-external-locking
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 128K
server-id  = 1

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M

[mysqlhotcopy]
interactive-timeout

启动实例:

mysqld_safe --defaults-file=/usr/local/mysql/data/3306/my.cnf &
mysqld_safe --defaults-file=/usr/local/mysql/data/3307/my.cnf &
mysqld_safe --defaults-file=/usr/local/mysql/data/3308/my.cnf &

查看端口状态:

[root@localhost mysql]# netstat -anpt|grep 330

tcp        0      0 0.0.0.0:3307                0.0.0.0:*                   LISTEN      36275/mysqld

tcp        0      0 0.0.0.0:3308                0.0.0.0:*                   LISTEN      36283/mysqld

tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      36328/mysqld

 

测试进入数据库:

mysql -uroot -S /usr/local/mysql/data/3306/mysql.sock

关闭mysql数据库实例:

mysqladmin -uroot -S /usr/local/mysql/data/3306/mysql.sock shutdown
mysqladmin -uroot -S /usr/local/mysql/data/3307/mysql.sock shutdown
mysqladmin -uroot -S /usr/local/mysql/data/3308/mysql.sock shutdown

为mysql实例设置密码:

mysqladmin -uroot -S /usr/local/mysql/data/3306/mysql.sock password "root"
mysqladmin -uroot -S /usr/local/mysql/data/3307/mysql.sock password "root"
mysqladmin -uroot -S /usr/local/mysql/data/3308/mysql.sock password "root"

设置密码后 进入数据库:

mysql -uroot -proot -S /usr/local/mysql/data/3306/mysql.sock
mysql -uroot -proot -S /usr/local/mysql/data/3307/mysql.sock
mysql -uroot -proot -S /usr/local/mysql/data/3308/mysql.sock

设置密码后 停止mysql数据实例:

mysqladmin -uroot -S  /usr/local/mysql/data/3306/mysql.sock shutdown -proot
mysqladmin -uroot -S  /usr/local/mysql/data/3307/mysql.sock shutdown -proot
mysqladmin -uroot -S  /usr/local/mysql/data/3308/mysql.sock shutdown -proot

启动停止脚本 ************ 启动停止脚本

#!/bin/bash
# name: jinchuang
# QQ : 1054542382
# blog : http://blog.sina.com.cn/jinchuang1025
# mysql 多实例多配置文件启动脚本

while true
do
color=`echo -e "\033[36m**************************************************** \033[0m"`
echo ""
echo $color
echo "选择 “启动” 还是 “停止” mysql多实例
1 :启动
2 :停止
3 :退出"
read -p ":" m
case $m in

1)
echo "↓↓"
echo "############# mysql 多实例启动 ################
1 :3306 实例
2 :3307 实例
3 :3308 实例
4 :启动全部实例
5 :退出
回车键返回"

#while true
#do
read -p "请输入实例编号启动:" n
case $n in

# 3306实例启动
1)
mysqld_safe --defaults-file=/usr/local/mysql/data/3306/my.cnf 2>&1 >/dev/null &
if [ $? -eq 0 ]
then
echo "3306 实例启动成功"
else
echo "3306 实例启动是败"
fi
;;

#3307实例启动
2)
mysqld_safe --defaults-file=/usr/local/mysql/data/3307/my.cnf 2>&1 >/dev/null &
if [ $? -eq 0 ]
then
echo "3307 实例启动成功"
else
echo "3307 实例启动是败"
fi
;;

#3308实例启动
3)
mysqld_safe --defaults-file=/usr/local/mysql/data/3308/my.cnf 2>&1 >/dev/null &
if [ $? -eq 0 ]
then
echo "3308 实例启动成功"
else
echo "3308 实例启动是败"
fi
;;

#全部启动
4)
/usr/local/sbin/mysqld_safe --defaults-file=/usr/local/mysql/data/3306/my.cnf 2>&1 >/dev/null &
/usr/local/sbin/mysqld_safe --defaults-file=/usr/local/mysql/data/3307/my.cnf 2>&1 >/dev/null &
/usr/local/sbin/mysqld_safe --defaults-file=/usr/local/mysql/data/3308/my.cnf 2>&1 >/dev/null &
sleep 2 ;
netstat -lntp


#if [ $? -eq 0 ]
#    then
#        echo "3306,3307,3308 实例启动成功"
#    else
#        echo "3306,3307,3308 实例启动是败"
#fi
;;

5)
exit 1
;;

#*)
#col=`echo -e "\033[36m请输入正确的编号: \033[0m"`
#echo       "       $col!"
#;;
esac
#done
;;

2)
echo "↓↓"
echo "############# mysql 多实例停止 ################
1 :3306 实例
2 :3307 实例
3 :3308 实例
4 :停止全部实例
5 :退出
回车键返回"

#while true
#do
read -p "请输入实例编号停止:" n
case $n in

# 3306实例停止
1)
mysqladmin -uroot -S /usr/local/mysql/data/3306/mysql.sock shutdown -proot
if [ $? -eq 0 ]
then
echo "3306 实例停止成功"
else
echo "3306 实例停止是败"
fi
;;

#3307实例停止
2)
mysqladmin -uroot -S /usr/local/mysql/data/3307/mysql.sock shutdown -proot
if [ $? -eq 0 ]
then
echo "3307 实例停止成功"
else
echo "3307 实例停止是败"
fi
;;

#3308实例停止
3)
mysqladmin -uroot -S /usr/local/mysql/data/3308/mysql.sock shutdown -proot
if [ $? -eq 0 ]
then
echo "3308 实例停止成功"
else
echo "3308 实例停止是败"
fi
;;

#全部停止
4)
a=`mysqladmin -uroot -S  /usr/local/mysql/data/3306/mysql.sock shutdown -proot`
b=`mysqladmin -uroot -S  /usr/local/mysql/data/3307/mysql.sock shutdown -proot`
c=`mysqladmin -uroot -S  /usr/local/mysql/data/3308/mysql.sock shutdown -proot`
$a && $b && $c
if [ $? -eq 0 ]
then
netstat -anpt |grep mysql
echo "3306,3307,3308 实例停止成功"
else
echo "3306,3307,3308 实例停止是败"
fi
;;

5)
exit 1
;;

#*)
#col=`echo -e "\033[36m请输入正确的编号: \033[0m"`
#echo    "       $col!"
#;;
esac
#done
;;

3)
exit 1
;;
esac
done

 

分享