为了避免数据的丢失而造成严重的后果,数据库通常要做备份。Mysql的主从复制显得尤为重要。Mysql的复制非常简单,一台服务器作为作为主机,一台服务器或者多台服务器作为从机。一旦主机的数据库有所更新,从机也会跟着更新数据库。
1、安装Mysql
安装过程略。
注:主机和从机的Mysql的版本尽量保持一致。Mysql4.1之前的密码是16位的,后来使用了新的密码验证机制。
主服务器IP:114.215.107.179
从服务器IP:192.168.31.111
2、修改主服务器 – Master
如果是linux环境修改 /etc/my.cnf 文件。
如果是windows环境则修改 my.ini文件。
在[mysqld]标签下添加下列配置。
log-bin=mysql-bin //[必须]启用二进制日志
server-id=179 //[必须]服务器唯一ID,默认是1,一般取IP最后一段
3、修改从服务器 – Slave
如果是linux环境修改 /etc/my.cnf 文件。
如果是windows环境则修改 my.ini文件。
在[mysqld]标签下添加下列配置。
log-bin=mysql-bin //[不是必须]启用二进制日志
server-id=111 //[必须]服务器唯一ID,默认是1,一般取IP最后一段
4、重启两台机器的Mysql
linux下重启命令:servie mysqld restart
5、主服务器创建复制账号
命令如下:
mysql > GRANT REPLICATION SLAVE,RELOAD,SUPER ON . TO backup@’%’ IDENTIFIED BY ‘123’;
创建一个账户 backup 允许从任何地址登陆,密码是123
这时可以查看主服务器上的Master状态:
命令如下: show master status;
这里的file 和 position 在配置从服务器的时候要用到。
到此为止,主服务器配置完成。
6、配置从服务器
先执行stop命令,停止服务器复制功能,然后配置从服务器,最后启动从服务器的复制功能。如下图所示:
master_log_file 就是Master上的file。master_log_pos 就是Master上的position.
下面我们查看一下从机复制功能的状态
mysql> show slave status\G;
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 114.215.107.179//主服务器地址
Master_User: backup //授权帐户名,尽量避免使用root
Master_Port: 3306 //数据库端口,部分版本没有此行
Connect_Retry: 60
Master_Log_File: mysql-bin.000002
Read_Master_Log_Pos: 98 //#同步读取二进制日志的位置
Relay_Log_File: ddte-relay-bin.000003
Relay_Log_Pos: 251
Relay_Master_Log_File: mysql-bin.000002
Slave_IO_Running: Yes //此状态必须YES
Slave_SQL_Running: Yes //此状态必须YES
......
主从服务器配置完成。
7、测试
主服务器上在Test数据库中新建表 people,命令如下:
此时主服务器的Test数据库中有people表,并且含有一条数据。
这时候打开从服务器,查询test表,发现也多了一张表 people,并且还有一条数据。
这就说明主从复制成功了!