MySQL主从数据库复制
查看mysql端口是开启
netstat -tanl | grep 3306
MySQL用户的授权
mysql -uroot -p
查看现有的用户授权表
select user,host,password from mysql.user;
测试连接到其他mysql服务器
mysql -uroot -p -h192.168.0.100
授权用户user1,密码456所有权限从192.168.1.181主机访问本服务器的所有数据库。
grant all on *.* to slave@192.168.1.181 identified by "123456";
登录远程MYSQL服务器
mysql -uslave -p123456 -h192.168.1.180
查看当前数据库
select database();
查看表结构
desc table1;
开启MYSQL BIN-LOG
vim /etc/my.cnf
[mysqld]
log-bin
或者
log-bin=mysql-bin
bin-log保存路径-数据库数据文件夹根目录
/var/lib/mysql
在MYSQL查看是否开启bin-log
show variables;
show variables like "%bin%";
创建一个最新的BIN-LOG日志
FLUSH LOGS;
查看最后一个bin日志
SHOW MASTER STATUS;
清空所有的BIN-LOG日志
RESET MASTER;
查看bin-log的内容
mysqlbinlog mysqld-bin.000001
mysqlbinlog /var/lib/mysql/mysqld-bin.000003;
查看MYSQL字符集等相关信息
\s
MYSQL的备份
mysqldump -uroot -p123 test -l -F >'/tmp/test.sql'
-l是读锁 防止备份的过程中数据写入到数据库
-F是FLUSH LOGS
MYSQL的恢复
方法1:
mysql -uroot -p123 test -v -f < /tmp/test.sql
-v查看导入的详细信息
-f当遇到错误时,可以跳过去继续往下执行
方法2:
mysql -uroot -p123 test
source test.sql
恢复binlog文件二进制日志文件
mysqlbinlog --no-defaults mysqld-bin.000003 |mysql -uroot -p123 test
查看日志
mysqlbinlog --no-defaults /var/lib/mysql/mysqld-bin.000006 --start-position="106" --stop-position="962"|more;
按日志恢复
mysqlbinlog --no-defaults /var/lib/mysql/mysqld-bin.000006 --start-position="704" --stop-position="876"|mysql -uroot -p123 test
主重服务器配置
0、配置主服务器
vim /etc/my.cnf
log-bin
server-id = 1
1、给从数据库添加授权用户
grant all on *.* to slave@192.168.1.181 identified by "123456";
2、清空所有的BIN-LOG日志
reset master;
3、备份本机要同步的数据库
mysqldump -uroot -p123 test -l -F >/tmp/test.sql
4、传送已经备份的数据库导从数据库服务器
scp /tmp/test.sql 192.168.1.181:/tmp/
5、进入从服务器,恢复传过来的数据库备份。
mysql -uroot -p123
show databases;
create database test;
show master status;
reset master;
exit;
恢复开始
mysql -uroot -p123 test6、设置从服务器
vim /etc/my.cnf
log-bin
server-id = 2
master-host = 192.168.1.180
master-user = slave
master-password = 123456
master-port = 3306重启服务,让配置生效
service mysqld restart查看从服务器状态
show slave status\G
如果出现:
Slave_IO_Running:YES
此进程负责从服务器从主服务器上读取bin-log日志并写入从服务器上的中继日志中。
Slave_SQL_Running:YES
此进程负责读取并执行中继日志中的bin-log日志
*注意:以上两个都为YES则表明成功,只要其中一个状态是NO,则表示复制进程停止。错误原因可以从“last_error”字段的值中看到。从数据库常用命令:
1、start slave #启动复制进程
2、stop slave #停止复制进程
3、show slave status #查看从数据库状态
4、show master logs #查看主数据库bin-log日志
5、changge master to #动态改变到主服务器的配置,出现故障用此命令调试。
6、show processlist #查看从数据库运行进程