Mysql主从数据库配置

作者:zccst


[b]一、安装数据库(rpm方式安装)[/b]
A库
B库
1,rpm方式安装
rpm包下载地址:http://10.65.34.123/down/MySQL-5.1.40/
安装(一键安装):rpm -ivh Mysql*
RPM安装方式的好处是可以使用/etc/init.d/mysql start或service mysql start启动

报错解决办法:libmysqlclient.so.16找不到
vim /etc/ld.so.conf.d/mysql.conf
内容为:(该路径是rpm方式安装后生成的路径)
/usr/lib64/mysql
ldconfig #执行

2,将sql脚本导入A
source /root/xx.sql;


[b]二、创建Mysql用户(不使用root)[/b]
CREATE USER 'username'@'localhost' IDENTIFIED BY 'pwd';
CREATE USER 'username'@'%' IDENTIFIED BY 'pwd';
GRANT ALL ON *.* TO 'username'@'localhost';
GRANT ALL ON *.* TO 'username'@'%'; # GRANT ALL PRIVILEGES ON *.* TO username@localhost
flush privileges;

其他命令,如查看和更改密码
select host,user from mysql.user;
SET PASSWORD FOR 'username'@'localhost' = PASSWORD("pwd1");
更多信息,可查看[url]http://zccst.iteye.com/blog/1933538[/url]


[b]三、主从数据库设置[/b]
【主数据库】
1,授权从数据库
GRANT REPLICATION SLAVE ON *.* TO 'username'@'xx.xx.com' IDENTIFIED BY 'pwd';
注:xx.xx.com是从数据库主机名或IP

mysql>CREATE USER 'user'@ 'X.X.X.X' IDENTIFIED BY 'password';
mysql>GRANT REPLICATION SLAVE ON *.* TO 'user'@'X.X.X.X' IDENTIFIED BY 'password';


2,更改配置文件

datadir = /home/mysql

server-id = 1 #主机标示,整数
#log_bin = /var/log/mysql/mysql-bin.log #确保此文件可写
read-only =0 #主机,读写都可以
binlog-do-db =mydatabase #需要备份数据,多个写多行
binlog-ignore-db =mysql #不需要备份的数据库,多个写多行

先重启主机A的mysql,

验证
在主机A中,mysql>show master status\G;

【从数据库】
datadir = /home/mysql

server-id = 2
#log_bin = /var/log/mysql/mysql-bin.log
master-host =xx.xx.com
master-user =mydatabase
master-pass =pwd
master-port =3306
master-connect-retry=60 #如果从服务器发现主服务器断掉,重新连接的时间差(秒)
replicate-do-db =mydatabase #只复制某个库
replicate-ignore-db=mysql #不复制某个库


再重启从机B的mysql

(启动slave进程 start slave;)

验证
在从机B中,mysql>show slave status\G;

其中Slave_IO_Running 与 Slave_SQL_Running 的值都必须为YES,才表明状态正常。


更多详细资料(比如主已有数据,如何加锁同步),可查阅
Linux下mysql主从配置
[url]http://www.cnblogs.com/xiao-yu/archive/2011/06/14/2080842.html[/url]

MySQL主从复制配置
[url]http://www.blogjava.net/dongbule/archive/2010/08/22/329602.html[/url]

MySQL主从复制与读写分离(同时涉及读写分离)
[url]http://www.cnblogs.com/luckcs/articles/2543607.html[/url]


[b]四、验证[/b]
在A中创建一个表,在B中立即可否看到
在A中创建完,在B中能立即看到,表示主从设置成功。

其实,这只是一个简单的搭建,还有很多可以完善的。后续考虑
[color=red]1,在A已有数据,如何同步到B上。比如,加读锁实现。
2,如何配置读写分离[/color]


[b]五、小插曲[/b]
由于我的mysql在A、B两台机器位置不同
A socket = /var/lib/mysql/mysql.sock
B socket = /home/mysql/mysql.sock

对于A,由于安装在var/lib下,所以home下没有mysql用户
cd /home
cp -R /var/lib/mysql/ /home/
chown mysql.mysql mysql/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值