Generic placeholder image
闲敲代码、落灯花
What's past is prologue

联系邮箱:email@hezehua.net


联系QQ:1907330840

座右铭

保持热情,持续学习,每日精进

配置Mysql主从

配置Mysql主从

本文与作者在csdn上的博文【配置Mysql主从】保持同步


配置Mysql主从可以做热备、读写分离,是提高网站性能、提高数据安全性的比较有效的方式,而且配置简单,所以笔者在网站因业务逻辑需要大量用到数据库操作而性能不佳时,首先想到要做主从,其实还有别的方案的,比如做缓存,但是做缓存要改代码所以等之后再应用,先把主从给配置了。以下是做Mysql主从的关键步骤:
1、准备两个服务器,并且配置并启动同版本的mysql服务,其中,一个主(master)一个从(slave);
2、在master数据库中创建数据库,并将数据库同步到slave数据库,这里我采用了在master中导出sql文件然后在slave中通过scp命令获取后导入的方式;
3、在master中配置一个slave访问账户:

GRANT REPLICATION SLAVE ON *.* TO 'slave'@'52.80.193.101' IDENTIFIED BY 'password';

4、在master数据库配置中添加以下配置:

server-id=1
log-bin=mysql-bin --开启日志,并将二进制日志文件设置为mysql-bin
max_binlog_size=104857600--日志文件的最大尺寸
binlog_format=mixed
binlog-do-db=test --这里配置了需要同步的数据库,如果未配置则表示同步所有数据库
binlog-ignore-db=mysql--这里配置了不需要同步的数据库

5、在slave数据库中添加以下配置:

server-id=2
log-bin=mysql-bin
replicate-same-server-id 
replicate-do-db=blog=test -- 指定要同步的数据库
replicate-ignore-db=mysql -- 指定不需要同步的数据库

6、在slave数据库中执行以下命令:

change master to master_host='52.80.193.101',master_user='slave',master_password='password'

7、分别查看master、slave状态:

show master status;--查看master状态,如果之前没有开启二进制日志的话这里显示空,如果已经开启,会有File、Position、Binlog_Do_DB、Binlog_Ignore_DB等字段
-----
show slave status; --查看slave状态,会显示之前的一些配置信息和一些默认信息

8、测试:
1)现在master中创建一个数据表:

create table test_(id int(11));

2)在slave中test数据库下查看是否有test_表

show tabes like 'test_';

如果有则说明test_表同步过来了,即主从复制配置成功!

猜你喜欢
记录第二次遇到ERROR! MySQL server PID file could not be found!
阅读 481

我的云服务器出现好几次ERROR! MySQL server PID file could not be found!错误了,都是突然就数据库崩了,之前都是删除巨大的日志文件、杀mysqld进程、重启就好了,然而这回却没有重启成功,看日志也看不出有效信息,,,,可能是因为水平渣 -。- 手动生...

Mysql日志
阅读 299

1、错误日志(Log Error) 记录Mysql服务器进程在启动/关闭或者运行过程中遇到的错误消息,是工作中排查错误的重要工具。 查询方式: show variables like 'log_error'\G; *************************** 1. row ****...

建库建表设置统一编码
阅读 497

1、 CREATE DATABASE `database_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 2、 creat table `table_name` ( `id` int(11) unsigned ...

实用mysql命令
阅读 383

1、显示表中所有列的详细信息 show full columns table_name; 2、查看服务器版本 show version(); 3、查看当前登录用户 select current_user(); 4、显示表的详细信息 show table status like;...

mysql报错Attempted to open a previously opened tablespace的解决办法
阅读 435

1、在配置文件添加: innodb_force_recovery = 1; 2、重启mysql服务:service mysqld restart 3、登陆mysql,导出数据库 4、删除ibdata1、ib_logfile0、ib_logfile1文件和databasename(数据库...

Mysql 从join的结果来更新本表数据
阅读 385

在mysql应用中常常需要通过别的表的查询结果来更新本表,但很少会本表的查询结果再来更新本表的,下面就看看从本表查询结果更新本表应该怎么做吧。 表classify: 字段 属性 id int(11) name string(255) 表production: 字段 ...

mysql设置用户权限
阅读 425

1、创建用户: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 2、程序中使用的mysql账号应该遵循最小权限原则,不允许夸库查询,故设置专门的账号供程序使用: grant select,update,delete,inser...

远程访问数据库出错的解决办法
阅读 347

案例: 在aws服务器中的项目访问在华为云中的测试服务器的数据库,报错: Access denied for user 'root'@'ec2-XXX-XXX-XXX-XXX.cn-north-1.compute.amazonaws.com.cn' (using password: YES...