MYSQL主从配置
1.在主机中把所有的数据库中导出
mysqldump -uroot -pmysql --all-databases --lock-all-tables > ~/master_db.sql
2.修改mysqld.cnf文件
sudo vim /etc/mysql/mysqld.conf.d/mysqld.cnf
sevice-id=11(大于1)
log_bin=/var/log/mysql(按默认的)
3.重启mysql服务
sudo service mysql restart
4.进入mysql
mysql -uroot -pmysql
5.创建一个普通用户,赋予权限
grant replication slave on *.* to 'salve'@'%'identified by 'slave';
flush privileges(赋予权限)
6.查看主机日志
show master status;
7.在Windows系统中,导入主机备份的数据
主机导出的数据:master_db.sql 复制到 C:\Program Files\MYSQL\MYSQL Server 5.7\bin目录下
从机中导入主机备份的数据:mysql -uroot -pmysql < master_db.sql
8.修改my.ini文件
配置service-id=22
9.重启mysql服务:笔记本----管理----服务----mysql57 重启
10.从机进入mysql服务
配置与主机关联:
change master to master_host='192.168.75.128(主机ip)',master_user='slave',master_password='slave',master_log_file='mysql-bin.000001',master_log_pos=590;
参数说明:
master_host:主服务器ubantu的ip地址
master_log_file:前面查询到的主服务器日志文件名
master_log_pos:前面查询到的主服务器日志文件位置
11.启动/查询从机状态
start slave;
show slave status\G;
显示:slave_IO_Running:Yes slave_SQL_Running:Yes
关闭:stop slave;
12.测试
主机创建数据库,从机刷新显示
异常情况处理:
- Slave_IO_Running为NO表示无法正常连接主服务器,检查用户名及密码
- Slave_SQL_Running为NO一般由事务回滚造成,按以下步骤解决:
- stop slave
- set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
- start slave