mysql主从数据库设置(精简版)

本文借鉴于其他博文,主要针对于小白做一个精简版,也算做一个总结吧!

准备:两个不同的主机数据库(个人是本地和正式服),同时两台机最好先创建好相同的用户名及密码,保证账户能够连接成功!建议用Navicat视图化操作创建用户以及连接,以下附上创建用户的命令!

授权格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码";

配置主服务器

1.更改配置文件,首先检查你的主服务器上的my.cnf文件中是否已经在[mysqld]模块下配置了log-bin和server-id
(注意上面的log-bin和server-id的值都是可以改为其他值的,如IP最后一段数字,接着重启服务器)

[mysqld]

log-bin=mysql-bin

server-id=1

2.执行下面的语句获取主服二进制日志的信息

mysql> show master status;

效果图如下(File和Position记一下,一会考)
效果图片如下

配置从服务器

1.首先检查从服务器上的my.cnf文件中是否已经在[mysqld]模块下配置leserver-id

[mysqld]

server-id=2

2.配置同步参数,mysql执行如下命令(如果执行失败,可多次执行):

 CHANGE MASTER TO 
MASTER_HOST='119.23.58.x', 
MASTER_USER='copy_user', 
MASTER_PORT = 3306,
MASTER_PASSWORD='01da2ca9dc', 
MASTER_LOG_FILE='mysql-bin.000001', 
MASTER_LOG_POS= 8590

参数不区别大小写

  • MASTER_HOST:主服ip地址
  • MASTER_USER:主服数据库账号
  • MASTER_PORT :主服mysql端口
  • MASTER_PASSWORD:主服密码
  • MASTER_LOG_FILE:刚才说好要考的File
  • MASTER_LOG_POS:刚才说好会考的Pos

3.mysql启动主从同步

mysql> slave start; 

4.mysql查看同步状态

show slave status;

效果如下:
查看是否启动同步成功

主要看Slave_IO_Running和Slave_SQL_Running两个值是否都为Yes,如果是刚恭喜你同步成功了。若不是,则很可能是密码错误了。具体查看对应的Last_IO_Error和Last_SQL_Error两个提醒就知道了。
如果要修改从服第二步操作参数的话,建议先slave stop停一下服务,再执行配置操作,完后再执行slave start启动同步,以及show slave status;查看同步状态!(注意:Last_IO_Error,其实指的还是mysql,我一开始以为是服务器IO读写)

同步部分数据有两个思路,1.master只发送需要的;2.slave只接收想要的。详细

binlog-do-db 二进制日志记录的数据库(多数据库用逗号,隔开)
binlog-ignore-db 二进制日志中忽略数据库 (多数据库用逗号,隔开)
默认是同步所有库表的,如梦需要指定库存可配置从库mysql的配置文件:
replicate-do-db 设定需要复制的数据库(多数据库使用逗号,隔开)
replicate-ignore-db 设定需要忽略的复制数据库 (多数据库使用逗号,隔开)
replicate-do-table 设定需要复制的表
replicate-ignore-table 设定需要忽略的复制表
replicate-wild-do-table 同replication-do-table功能一样,但是可以通配符

增加通配符的两个配置
replicate-wild-do-table=db_name.% 只复制哪个库的哪个表
replicate-wild-ignore-table=mysql.% 忽略哪个库的哪个表

配置从服

借鉴其他人博文写的精短版,希望有帮忙新手,也给自己一个小总结!

猜你喜欢

转载自blog.csdn.net/qq_27974479/article/details/83827025
今日推荐