mysql主从搭建

mysql主从搭建

环境:ubuntu20.04.1,mysql:8.0.22。
主:192.168.87.3
备:192.168.87.6

安装数据库

sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev

数据库配置

设置数据库密码

首次安装后,使用 sudo mysql -uroot -p直接进入,更改root密码操作如下:

use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
FLUSH PRIVILEGES;

主库设置

  1. 配置 /etc/mysql/mysql.conf.d/mysqld.cnf如下:
[mysqld]

user        = mysql
pid-file    = /var/run/mysqld/mysqld.pid
socket  = /var/run/mysqld/mysqld.sock
port        = 3306
datadir = /var/lib/mysql

bind-address        = 192.168.87.3 # 本机ip
mysqlx-bind-address = 127.0.0.1

key_buffer_size     = 16M

myisam-recover-options  = BACKUP

max_connections        = 1000

log_error = /var/log/mysql/error.log

server-id       = 1
log_bin         = /var/log/mysql/mysql-bin.log
max_binlog_size   = 100M
binlog_do_db          = test
binlog_ignore_db      = mysql
binlog_format = row
sync_binlog = 1
innodb_flush_log_at_trx_commit = 1
  1. 更改完后重启数据库
systemctl restart mysql.service
  1. 创建同步账号
CREATE USER 'sync'@'192.168.87.6' IDENTIFIED WITH mysql_native_password BY 'sync';
grant replication slave on *.* to 'sync'@'192.168.87.6';

192.168.87.6为从数据库的IP。
4. 查看配置是否生效

mysql主从搭建
5. 创建数据快照
mysqldump --all-databases --master-data > dbdump.db

–master-data这个选项会自动加上CHANGE_MASTER_TO给从机来开始复制过程。在备份时使用 –databases(备份特定的数据库)和 –ignore-tables(排除备份特定的表) 选项,各个数据库和表名之间用空格隔开。

设置远程访问

use mysql;
update user set host='%' where user = 'root';
FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

如果此时仍无法访问,查看防火墙是否关闭。关闭命令:

sudo ufw disable

或者开放3306端口号。

从数据库配置

  1. 配置 /etc/mysql/mysql.conf.d/mysqld.cnf如下:
[mysqld]

user        = mysql
pid-file    = /var/run/mysqld/mysqld.pid
socket  = /var/run/mysqld/mysqld.sock
port        = 3306
datadir = /var/lib/mysql

bind-address        = 192.168.87.6
mysqlx-bind-address = 127.0.0.1
key_buffer_size     = 16M

myisam-recover-options  = BACKUP

log_error = /var/log/mysql/error.log

server-id       = 2
log_bin         = /var/log/mysql/mysql-bin.log
binlog_expire_logs_seconds  = 2592000
max_binlog_size   = 100M
binlog_do_db        = test
binlog_ignore_db    = mysql
  1. 同步数据 在主库上dump的文件scp到从库上,然后登录mysql并执行如下命令:
set sql_log_bin=0;
source /home/shitianming/Documents/dbdump.db
  1. 配置slave
CHANGE MASTER TO
MASTER_HOST='192.168.87.3',
MASTER_USER='sync',
MASTER_PASSWORD='sync',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=730;

上述参数在主库的mysql客户端上运行 show master status可看到。
4. 进行测试 在主库的 test数据库里添加数据,在从库上看到是否同步。

参考

Original: https://www.cnblogs.com/shitianming/p/16739989.html
Author: 天山琴子
Title: mysql主从搭建

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/598662/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • springboot~ApplicationContextAware与@Autowired注解

    ApplicationContextAware是一个接口,它提供一个方法setApplicationContext,当spring注册完成之后,会把ApplicationConte…

    数据库 2023年6月6日
    082
  • MySQL实战45讲 18

    18 | 为什么这些SQL语句逻辑相同,性能却差异巨大? 在 MySQL 中,有很多看上去逻辑相同,但性能却差异巨大的 SQL 语句。对这些语句使用不当的话,就会不经意间导致整个数…

    数据库 2023年6月14日
    079
  • 位图的简单操作

    class BitMap { private byte[] words;//用一个字节数&#x7…

    数据库 2023年6月14日
    0138
  • Docker 部署前后端项目

    Docker 部署前后端项目 平生不会相思,才会相思,便害相思。 简介:都是被逼的,从零开始一个Docker 部署九个微服务和三个前端项目。其中,这些服务需要用到Nacos、MyS…

    数据库 2023年6月14日
    086
  • mysql视图,索引

    一、视图 View 视图是一个 虚拟表,是sql语句的查询结果,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据,在使用视图时动态生成。视图的数据变化会影响到基…

    数据库 2023年6月9日
    068
  • idea启动 org.springframework.boot.web.server.PortInUseException: Port XXX is already in use

    win+r,输入cmd,进入命令行窗口查询占用端口号所在进程:netstat -ano|findstr 8001杀死进程:taskkill -f -pid 进程号 作者:crazy…

    数据库 2023年6月16日
    074
  • zabbix

    1. zabbix介绍 2. zabbix特点 3. zabbix配置文件 4. 部署zabbix zabbix介绍 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监…

    数据库 2023年6月14日
    081
  • MySQL锁:03.InnoDB行锁

    传送门:MySQL锁:01.总览传送门:MySQL锁:02.InnoDB锁传送门:MySQL锁:03.InnoDB行锁 InnoDB 行锁 锁排查可以用的视图和数据字典 InnoD…

    数据库 2023年6月16日
    0129
  • 如何实现跨域?

    https://blog.csdn.net/meism5/article/details/90414283 Original: https://www.cnblogs.com/cr…

    数据库 2023年6月16日
    086
  • MySQL事务与锁

    在关系型数据库内,事务是由一个SQL或一组SQL语句组成的逻辑处理单元。也就是说事务就相当于一个盛放SQL的容器,事务中的SQL要么全部执行成功,要么所有已经修改的操作都回滚到原来…

    数据库 2023年5月24日
    0104
  • SQL的语法

    创建: create database [if not exists] 数据库名称 [default charset 字符集] [collate 排序规则]; (PS:方括号(&#…

    数据库 2023年5月24日
    060
  • MyBatis-Plus修改数据,会不会把其他字段置为null

    前两天在用MyBatis-Plus写了一张单表的增删改查,在写到修改的时候,就突然蹦出一个奇怪的想法。 MyBatis-Plus的BaseMapper中有两个关于修改的方法。如下:…

    数据库 2023年6月11日
    0116
  • Redis和Mysql保持数据一致性

    1、简述 在高并发的场景下,大量的请求直接访问Mysql很容易造成性能问题。所以,我们都会用Redis来做数据的缓存,削减对数据库的请求。但是,Mysql和Redis是两种不同的数…

    数据库 2023年6月16日
    085
  • java读写锁

    工作遇到了金钱计算,需要用到读写锁保证数据安全。记录一下。 单纯读没有限制,读写、写写的时候会有安全问题。 _hashMap_存在并发线程安全问题,而 _hashtable_线程安…

    数据库 2023年6月16日
    079
  • 一个属性同时使用Autowired和Resource注解会发生什么?

    首发于公众号:BiggerBoy右侧图片wx扫码关注有惊喜欢迎关注,查看更多技术文章 如题,如果在同一个属性上使用@Autowired注解注入bean1,然后使用@Resource…

    数据库 2023年6月11日
    077
  • 第03章 MySQL基本的SELECT语句

    第03章 MySQL基本的SELECT语句 1. SQL概述 1.1 SQL背景知识 1946 年,世界上第一台电脑诞生,如今,借由这台电脑发展起来的互联网已经自成江湖。在这几十年…

    数据库 2023年5月24日
    090
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球