上一篇博客介绍的是:通过 MySQL二进制包搭建多实例服务http://aby028.blog.51cto.com/5371905/1891423
现在介绍通过编译安装MySQL搭建多实例
实验中所用到的软件包:http://down.51cto.com/data/2281098
环境介绍
编译安装mysql前需要解决依赖包问题
yum -y install ncurses-devel libaio-devel
安装 lrzsz 这个软件,和系统无关的一个软件。安装后可以通过xshell拖拽软件,方便上传而已
yum -y install lrzsz
创建一个存放软件的目录哈
mkdir -p /home/yuci/tools
安装 cmake ,mysql的编译就是通过它实现的
tar zxf cmake-2.8.8.tar.gz
cd cmake-2.8.8
./configure && gmake && gmake install
创建一个 mysql 用户
useradd -s /sbin/nologin -M mysql
id mysql
编译安装 mysql
tar zxf mysql-5.5.23.tar.gz
cd mysql-5.5.23
##############编译安装参数##########################
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.5.23 \
-DMYSQL_DATADIR=/application/mysql-5.5.23/data \
-DMYSQL_UNIX_ADDR=/application/mysql-5.5.23/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=gks,gb2312,utf8,ascii \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITHOUT_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FAST_MUTEXES=1 \
-DWITH_ZLIB=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_READLINE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DWITH_DBBUG=0
#####################################################
make && make install
给 mysql 创建软连接
ln -s /application/mysql-5.5.23/ /application/mysql
mkdir -p /data/{3306,3307}/data
yum -y install tree dos2unix nmap
tree /data/
切到 / 目录下,导入脚本,直接覆盖比较方便。后面我会贴出脚本的内容
unzip data.zip
将/data目录属主属组授权为mysql用户并检查
chown -R mysql:mysql /data
find /data -type f -name "my.cnf" | xargs ls -l
更改 /data/mysql 的权限更改为700
find /data -type f -name "mysql" | xargs chmod 700
find /data -type f -name "mysql" | xargs ls -l
ln -s /application/mysql/bin/* /usr/local/bin
ls -l `which mysql`
分别初始化 MySQL 数据库
cd /application/mysql/scripts/
./mysql_install_db --basedir=/application/mysql/ --datadir=/data/3306/data/ --user=mysql
./mysql_install_db --basedir=/application/mysql/ --datadir=/data/3307/data/ --user=mysql
启动 MySQL 服务
/data/3306/mysql start
/data/3307/mysql start
检查端口是否启动
netstat -lntup | grep 330
登陆 MySQL
mysql -S /data/3306/mysql.sock
mysql -S /data/3307/mysql.sock
给 MySQL 设定密码
mysqladmin -uroot password 123456 -S /data/3306/mysql.sock
mysqladmin -uroot password 123456 -S /data/3307/mysql.sock
尝试登陆 MySQL
mysql -uroot -p123456 -S /data/3306/mysql.sock
mysql -uroot -p123456 -S /data/3307/mysql.sock