一、安装MySQL并建立主从关系
1、在两台服务器10.19.53.2和10.19.53.3上分别安装MySQL ,现有环境安装完成,此处省略安装过程。
2、数据库安装完成后进行主从关系配置,主从同步首先必须建立主从关系,以下是详细建立过程:
①、主机生成一个密钥
ssh-keygen -t rsa
②、将这个密钥追加到以下文件中
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
③、将追加后的密钥发送到从服务器上
scp ~/.ssh/authorized_keys 10.19.53.3:/root/.ssh
3、建立完成后进行测试,在主服务器上直接登录从服务器,如果不需要输入密码,直接登录成功则表示主从关系建立成功。
二、创建数据库以及备份用户(主)
1、登录MySQL主服务器控制台,创建一个数据库zgfnew(库名可根据实际情况自定义)
①、登录数据库
mysql -uroot -p 密码
②、建立zgfnew数据库
create database zgfnew;
2、建立MySQL主从数据库同步用户root(用户可自定义),密码:Unicom@(sms2018)
update mysql.user set password=PASSWORD ('Unicom@(sms2018)') where User='root';
3、授权用户root只能从10.19.53.3这个IP访问主服务器10.19.53.2上面的数据库,并且只具有数据库备份的权限
grant all privileges on *.* to 'root'@'%' identified by 'Unicom@(sms2018)';
4、刷新系统授权表,使以上操作即时生效
flush privileges;
三、数据库(zgfnew)导入从服务器
1、把MySQL主服务器10.19.53.2中的数据库zgfnew导入到MySQL从服务器10.19.53.3中
①、防止导出数据库时有数据写入,将数据库锁定
flush tables with read lock;
②、MySQL主服务器数据库zgfnew导出到/home/zgfnew.sql
mysqldump -u root -p zgfnew > /home/zgfnew.sql
③、导出完成后解除锁定
unlock tables;
2、将导出的zgfnew数据库文件导入到从数据库中
①、首先将主服务器导出的数据库文件上传到从服务器下home目录中
②、登录从服务器
mysql -u root -p 密码
③、创建zgfnew数据库
create database zgfnew;
④、进入zgfnew数据库
use zgfnew;
⑤、导入数据库备份文件到从数据库
source /home/zgfnew.sql
3、测试在主服务器是否可以登录从服务数据库,相反从登陆主数据库,测试成功则表示连通性没问题。
mysql -u root -h 10.19.53.2 -p 密码
mysql -u root -h 10.19.53.3 -p 密码
四、配置MySQL主数据库
1、将配置文件复制到/etc下
cp /usr/share/doc/MySQL-server-5.7.23/my-medium.cnf /etc/my.cnf
2、然后编辑配置文件并添加以下内容
①、编辑配置文件
vi /etc/my.cnf
②、在[mysqld]部分添加下面内容
server-id=1 #设置服务器id,为1表示主服务器,注意:如果原来的配置文件中已经有这一行,就不用再添加了。
log_bin=mysql-bin #启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。
binlog-do-db= zgfnew #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
binlog-ignore-db=mysql #不同步mysql系统数据库
3、重启数据库,查看数据库同步信息
①、重启启动数据库
service mysqld restart
②、登录主服务器控制台
mysql -u root -p 密码
③、查看主服务器同步信息
show master status;
查看主服务器同步信息会出现刚才配置文件所添加的同步数据库以及不需要同步的数据库,如下图所示:
注意:这里记住File的值:mysql-bin.000002和Position的值:4257,后面会用到。
五、配置MySQL从数据库
1、编辑配置文件并添加以下内容
①、编辑配置文件
vi /etc/my.cnf
②、在[mysqld]部分添加下面内容
server-id=2 #配置文件中已经有一行server-id=1,修改其值为2,表示为从数据库
log-bin=mysql-bin #启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。
replicate-do-db=osyunweidb #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
replicate-ignore-db=mysql #不同步mysql系统数据库
2、重启从数据库
service mysqld restart
六、配置主从同步
1、登录从数据库控制台
mysql -u root -p 密码
2、首先停止slave同步进程
stop slave;
3、执行同步语句
change master to
master_host='10.19.53.2',
master_user='root',
master_password='Unicom@(sms2018)',
master_log_file='mysql-bin.000002',
master_log_pos=4257;
4、开始slave同步进程
start slave;
5、查看slave同步信息
SHOW SLAVE STATUS\G
注意查看:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上这两个参数的值为Yes,即说明配置成功!
七、测试主从同步
1、登录MySQL主服务器
①、登录MySQL主数据库控制台
mysql -u root -p 密码
②、进入zgfnew库
use zgfnew;
③、创建test表
CREATE TABLE test(id int not null primary key,name char(20));
2、登录MySQL从服务器
①、登录MySQL从数据库控制台
mysql -u root -p 密码
②、进入zgfnew库
use zgfnew;
③、查看zgfnew表结构,会看到有一个新建的test表,表示数据库同步成功
show tables;
至此,MySQL数据库配置主从同步完成,如有疑问可在下方留言,需要完善的地方大家多多指点,谢谢!