作者: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/
[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/