mysql 主从复制 详细步骤记录

主服务器:阿里云 ;从服务器:Mac本地服务器[主从数据库版本最好一致]

主服务器配置 /etc/mysql/mysql.conf.d

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ini复制代码[mysqld]

pid-file = /var/run/mysqld/mysqld.pid

socket = /var/run/mysqld/mysqld.sock

datadir = /var/lib/mysql

log-error = /var/log/mysql/error.log

log-bin = mysql-bin #开启二进制日志

server-id = 1 #设置server-id

binlog-do-db = test_db # 只同步test_db

创建数据库,用户,赋予权限[全程在root用户下]

1
2
3
4
5
6
7
8
9
sql复制代码CREATE DATABASE IF NOT EXISTS test_db; #创建数据库

CREATE USER 'test1'@'IP' IDENTIFIED BY 'test1';#创建用户

GRANT ALL PRIVILEGES ON `test_db`.* TO `test1`@`%` WITH GRANT OPTION;#赋予增删改查权限

GRANT REPLICATION SLAVE ON *.* TO 'test1'@'%';#建立复制时

FLUSH PRIVILEGES;#刷新权限

重启mysql

service mysql restart

查看mysql的test1用户信息

image.png

  • file:mysql-bin.000001
  • position:559

Mac从服务器

参考【MAC】MYSQL8.0版本添加配置文件MY.CNF

mysql安装路径在 /usr/local/mysql

在路径 /usr/etc中创建 my.cnf文件

1
2
3
4
5
6
7
8
9
ini复制代码[client]

default-character-set = utf8

[mysqld]

server-id = 2 #设置server-id,必须唯一

character-set-server = utf8

重启mysql

sudo /usr/local/mysql/support-files/mysql.server restart

连接slave,若已开启需要先暂停slave

slave stop/start;

1
2
3
4
5
6
7
8
9
10
11
ini复制代码CHANGE MASTER TO

CHANGE_HOST = 'IP',

CHANGE_USER = 'test1',

CHANGE_PASSWORD = '密码',

CHANGE_LOG_FILE = 'mysql-bin.000001',

MASTER_LOG_POS = 559;

查看连接状态,Slave_双YES则表示连接成功

show slave status\G

  • Slave_IO_Running: YES
  • Slave_SQL_Running: YES

两个都是YES则连接成功

扩展 常见问题排查

1.主服务器是云服务器,没有开通安全组;

2.账户密码错误;

3.连接服务器时语法;

4.mysql配置文件问题;

5.主服务器mysql权限;

6.从数据库没创建;

扩展思维 可互为主从,实现读写分离

image.png

安装mysql8详细步骤记录:juejin.cn/post/701916…

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%