MySQL主从配置

一、主的配置

基础配置

# vi /etc/my.cnf

 

 

# /etc/init.d/mysqld restart    重启MySQL服务

 

 

查看# ll /data/mysql/

 

 

# vim /etc/profile

 

 

export PATH=$PATH:/usr/local/mysql/bin  在后面加上 

# source /etc/profile

# mysqldump -uroot mysql > /tmp/mysql.sql

备份mysql库(加入环境变量)

# mysql -uroot -e "create database kei"

创建一个库保存数据

# mysql -uroot kei < /tmp/mysql.sql

将mysql库恢复成新建的库,作为测试数据

数据库配置

# mysql -uroot

进入数据库(没有密码)

> grant replication slave on *.* to 'repl' @192.168.157.148 identified by '123456';

创建用作同步数据的用户并赋予权限,IP地址为从节点的地址(replication是MySQL非常出色的一个功能,该功能将一个MySQL实例中的数据复制到另一个MySQL实例中。)

 

 

> flush tables with read lock;

将表锁住,保持表内数据不变

 

 

> show master status;

显示主机状态

 

 

二、从的配置

# vi /etc/my.cnf

 

 只配置server_id=132  注意: 和主的id不一样

# /etc/init.d/mysqld restart    重启MySQL服务

# vim /etc/profile

export PATH=$PATH:/usr/local/mysql/bin  在后面加上 

# scp /tmp/mysql.sql root@192.168.157.148:/tmp/

在主上将文件拷贝到从上,并在从上查看文件大小是否一致

 

 

# mysql -uroot -e "create database kei"

//创建一个和主一样的库

# mysql -uroot kei < /tmp/mysql.sql

将文件内容导入库

数据库配置

# mysql -uroot

mysql> stop slave;

进入数据库(没有密码)(698861为show master status;中的大小)

> change master to master_host='192.168.37.12',master_user='repl',master_password='123456',master_log_file='linux1.000001',master_log_pos=698861;

mysql> start slave;

 

  start slave;

 

 

关闭防火墙和selinux

# systemctl stop firewalld

# setenforce 0

mysql> stop slave;  关闭

进入数据库(没有密码)(698861为show master status;中的大小)

change master to master_host='192.168.157.147',master_user='repl',master_password='123456',master_log_file='linux1.000001',master_log_pos= 658738;

 

 

mysql> start slave;  启用

 

 

mysql> show slave status\G

 

 

> unlock tables;

 

从上操作

> show slave status\G;

在从上执行命令,查看(将防火墙关闭)

  

 

 

 

主、从同时操作

mysql> use kei;

mysql> show tables;

mysql> select count(*) from db;

主:

 

 

 

从: 

 

 

 

 

主上操作,删除数据

mysql> truncate table db;

 

 

mysql> select count(*) from db;

 

 

 

 

从上查看数据

mysql> select count(*) from db;

 

六、 测试主从

主服务器上

# mysql -uroot -p密码

在主上进入数据库

> select count(*) from db;

> truncate table db;

 

 

 

从服务器上

# mysql -uroot kei

在从上进入数据库

> select count(*) from db;

 

 

 

 

 

 

 

posted @ 2021-03-11 19:17  清空。  阅读(224)  评论(0)    收藏  举报