您的位置:首页 > 运维架构 > Linux

一Linux双mysql + mysql主从配置

2014-06-21 00:19 99 查看
一个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
4000
_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看一下是否进程占用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  centos linux mysql