数据库主从
主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据库一般是实时的业务数据库
主 1.IO进程,作用是从主服务器 从
读取MySQL的二进制
文件,保存到从服务器
2.SQL进程,作用是把二进制
文件导入数据库
.什么是主从复制?
http://blog.csdn.net/zhaoyp1985/article/details/9488563
主配置文件修改:
1:修改mysql配置文件 vi/usr/local/mysql/my.cnf
[mysqld]
log-bin=mysql-bin 启动二进制文件
server-id=1 服务器ID
保持退出
2:进入mysql
./mysql -uroot -p123456 执行GRANT REPLICATION SLAVE ON *.* TO 'abcd'@'192.168.161.129' IDENTIFIED BY '123';
TO为账号 123是密码 192.168.1.3是从服务器的ip 目的是在从服务器创建一个用户
3:查询主数据库状态,并记下FILE及Position的值,这个在后面配置从服务器的时候要用到。
show master status;
从配置文件修改:
1:修改mysql配置文件 vi/usr/local/mysql/my.cnf
[mysqld]
log-bin=mysql-bin 启动二进制文件
server-id=1 服务器ID
保存退出
2:进入mysql ./mysql -uroot -p123456
执行
change master to master_host='192.168.1.189',master_user='liu',master_password='123456',master_log_file='mysql-bin.000012',master_log_pos=248;
192.168.161.128 //主服务的ip TO为账号 123是密码 //在主服务器设置的用户和密码 'mysql-bin.000024' 是日志文件号 107 是日志id
重启从库MYSQL
执行: start slave; //启动从库连接
mysql> show slave status\G
检查主从同步,如果您看到Slave_IO_Running和Slave_SQL_Running均为Yes,则主从复制连接正常。
在主服务器的test库新建一个表
./mysql -uroot -p123456
显示数据库
mysql->show databases;
选择数据库
mysql->use test
在test库新建表
mysql->create table aa(name varchar(20),sex(char(1),birth date);
进入从服务器的test数据库 查看有没有aa数据表 大功告成
报错参考链接:http://blog.csdn.net/edwzhang/article/details/17226975
Slave_IO_Running: No Last_IO_Errno: 159
查看server-id
show variables like 'server_id';
如果两边数据库id一样手动修改server-id
mysql> set global server_id=2; #此处的数值和my.cnf里设置的一样就行
mysql> slave start;