您的位置:首页 > 数据库 > MySQL

Ubuntu下编译安装Mysql双实例并配置主从复制

2011-12-07 08:31 1036 查看
一.安装前准备

下载Mysql源码包:推荐官方站点http://www.mysql.com/

配置Ubuntu环境

添加mysql用户组和用户:

groupadd mysql

useradd -g mysql mysql

创建安装所需目录

master实例安装目录:

mkdir /opt/mastermysql/

mkdir /opt/mastermysql/data/

slave实例安装目录:

mkdir /opt/slavemysql/

mkdir /opt/slavemysql/data



更改权限:

chown mysql:mysql -R /opt/mastermysql/data

chown mysql:mysql -R /opt/slavemysql/data

二. 安装master实例

将源码包复制到主目录 /root

解压:

cd /root

mkdir mastermysql

tar -xv -f mysql-5.5.18.tar.gz -C ~/mastermysql

进入到源码目录:

cd mastermysql/mysql-5.5.18

编译配置:
cmake -DCMAKE_INSTALL_PREFIX=/opt/mastermysql

-DSYSCONFDIR=/opt/mastermysql/etc


-DMYSQL_DATADIR=/opt/mastermysql/data -DMYSQL_TCP_PORT=3307

-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DMYSQL_USER=mysql

-DEXTRA_CHARSETS=all

-DWITH_READLINE=1 -DWITH_SSL=system

-DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1

-DWITH_INNOBASE_STORAGE_ENGINE=1


-DWITHOUT_PARTITION_STORAGE_ENGINE=1

make

make install

安装完成,配置并初始化数据库

make /opt/mastermysql/etc

cp support-files/my-medium.cnf /opt/mastermysql/etc/my.cnf

初始化数据库

chmod 755 scripts/mysql_install_db

scripts/mysql_install_db --user=mysql --basedir=/opt/mastermysql

--datadir=/opt/mastermysql/data

创建管理mysql数据库的shell脚本

mkdir /opt/mysql/init.d

cp support-files/mysql.server /opt/mastermysql/init.d/mysql

赋予shell脚本可执行权限:

chmod +x /opt/mastermysql/init.d/mysql



三. 安装slave实例

将第二步中所有的master字符替换成slave,configure中的DMYSQL_TCP_PORT参数换成3308

四.配置master-slave

启动master-slave实例:

/opt/mastermysql/init.d/mysql start

/opt/slavemysql/init.d/mysql start

配置master

vi /opt/mastermysql/etc/my.cnf

添加:
server-id=1

log-bin=mysql-bin

登陆master实例

/opt/mastermysql/bin/mysql -uroot

创建复制账户

grant replication on *.* repl@localhost identified by '123456'

show master status\G;

记录File,Position的值后面会用到

登陆slave实例

/opt/slavemysql/bin/mysql -uroot

配置master-slave

change master to master_host='127.0.0.1',master_port=3307,master_user='repl',

master_password='123456',master_log_file='上述File的内容’,

master_log_pos='上述Position的内容';

start slave;

五.测试

因为两个数据库都是同一份源代码最新的安装,所以他们数据库的内容是以一样的,也就

不需要同步。 在master上创建表,并插入数据,在slave上查看是否有此表和数据。

六.总结

上述步骤是在本人配置成功后边回忆边写的,难免有疏漏的地方,欢迎大家批评指正。只要

能够明白源码 安装的过程,主从复制便十分简单。

参考资料:

官方文档:http://dev.mysql.com/doc/refman/5.1/zh/replication.html#replication-howto

其他:http://blog.csdn.net/lpfvip2008/article/details/6900396

最近在深入学习mysql,打算向mysql dba方向发展。希望能够和志同道合的朋友共同进步,qq:244236866

email:lpfvip2008@gmail.com 微博:http://weibo.com/u/1900145317
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: