一个Linux内装2个mysql服务做主从
我全部是在Centos6.4内完成的
一、准备:
1、卸载本地mysql,
yum remove mysql 或者 rpm -e mysql
2、下载安装cmake
cmake下载地址
http://www.cmake.org/files/v2.8/cmake-2.8.12.2.tar.gz
安装cmake
tar -zxvf cmake-2.8.12.2.tar.gz
cd cmake-2.8.12.2.tar.gz
./configure
Make && make install
将cmake加入环境变量
echo ”PATH=$PATH:/usr/local/cmake/bin” >> /etc/profile && source /etc/profile
3、下载mysql
mysql下载地址
ftp://mirror.switch.ch/mirror/mysql/Downloads/MySQL-5.5/mysql-5.5.37.tar.gz
创建1、2两个目录将mysql-5.5.37.tar.gz复制2份放里面
mkdir /root/mysql/1
mkdir /root/mysql/2
cp mysql-5.5.37.tar.gz 1
cp mysql-5.5.37.tar.gz 2
4、解压安装第一个mysql
cd 1
tar zxvf mysql-5.5.37.tar.gz
cd mysql-5.5.37.tar.gz
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DSYSCONFDIR=/usr/local/mysql/etc
-DYSQL_TCP_PORT=3306
-DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_UNIX_ADDR=/tmp/mysql3306.sock -DWITH_INNOBASE_STORAGE_ENGINE=1
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DEXTRA_CHARSETS=all
-DINSTALL_PLUGINDIR=innobase
-DMYSQL_USER=mysql
make && make install
OK,第一个mysql安装完成
5、解压安装第二个mysql
cd 2
tar zxvf mysql-5.5.37.tar.gz
cd mysql-5.5.37.tar.gz
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql3307
-DSYSCONFDIR=/usr/local/mysql3307/etc
-DYSQL_TCP_PORT=3307
-DMYSQL_DATADIR=/usr/local/mysql3307/data -DMYSQL_UNIX_ADDR=/tmp/mysql3307.sock -DWITH_INNOBASE_STORAGE_ENGINE=1
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DEXTRA_CHARSETS=all
-DINSTALL_PLUGINDIR=innobase
-DMYSQL_USER=mysql
6、分别初始化2个mysql数据库
/root/mysql/1/mysql-5.5.37/scripts/mysql_install_db –basedir=/usr/local/mysql/ –user=mysql
/root/mysql/2/mysql-5.5.37/scripts/mysql_install_db –basedir=/usr/local/mysql3307/ –user=mysql
二、修改从库配置文件
拷贝配置文件:
cp /root/mysql/1/mysql-5.5.37/support-files/my-medium.cnf /usr/local/mysql/etc/my.cnf
cp /root/mysql/2/mysql-5.5.37/support-files/my-medium.cnf /usr/local/mysql3307/etc/my.cnf
修改mysql3307的配置文件
指定端口,如果后面启动不来2个mysql的话,在2个my.cnf内都指定basedir和datadir
配置开启自动:
cp /root/mysql/1/mysql-5.5.37/support-files/mysql.server /etc/init.d/mysql
cp /root/mysql/2/mysql-5.5.37/support-files/mysql.server /etc/init.d/mysql3307
修改/etc/init.d/mysql3007中basedir与datadir为即可
basedir=/usr/local/mysql3307
datadir=/usr/local/mysql3307/data
启动
现在两个mysql都启动了,我们来做主从配置
三、主从配置
我们用3306端口的mysql为主,3307端口的mysql为从
1、配置主
[root@lqx2 bin]# pwd
/usr/local/mysql/bin
[root@lqx2 bin]# ./mysql -uroot -p
创建同步账户
grant replication slave on *.* to ’slave01′@’192.168.1.253′ identified by ’123456′;
配置主的my.cnf
重启主的mysql服务,进入主MySQL,记录下File和Position的值
主配置完毕
2、从库配置
重启从mysql库
启动slave并查看
都yes,主从配置成功
3、下面我们来验证下test库是否可以同步
我们在主库内创建一张表并插入数据,看看从库是否会同步
如下:从库数据同步成功
一系统两mysql,以及主从同步完成了
备注:出错解决
错误一、编译安装时报错
Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:83 (MESSAGE):
rm CMakeCache.txt
yum install ncurses-devel
OK,在安装就不会报错了
错误二、启动2个mysql总是同时只有一个启动
将basedir和datadi在两个my.cnf内都指明一下,再次初始化
错误三、有时候可能是权限问题,当找不到错误的时候不妨看看权限
难以发现的错误总是在细节处,不怕大家笑话,我做这个实验,有个地方字母错了一个我排错拍了近半小时
有时启动不来mysql不妨ps看一下是否进程占用