首页 > 数据库 >mysql主从搭建

mysql主从搭建

时间:2022-09-28 23:45:24浏览次数:77  
标签:binlog log 192.168 mysqld mysql var 主从 搭建

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
    
  2. 更改完后重启数据库

    systemctl restart mysql.service
    
  3. 创建同步账号

    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. 查看配置是否生效

  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
    
  2. 同步数据

    在主库上dump的文件scp到从库上,然后登录mysql并执行如下命令:

    set sql_log_bin=0;
    source /home/shitianming/Documents/dbdump.db
    
  3. 配置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数据库里添加数据,在从库上看到是否同步。

参考

标签:binlog,log,192.168,mysqld,mysql,var,主从,搭建
From: https://www.cnblogs.com/shitianming/p/16739989.html

相关文章

  • 【题解】P3225 [HNOI2012]矿场搭建(割点,dfs)
    【题解】P3225[HNOI2012]矿场搭建割点好题!(因为刚开始没想清楚卡了好久/kk)题目链接P3225[HNOI2012]矿场搭建题意概述给定一张\(n\)条边的无向图,现在要求在其中一......
  • mysql if语句简介
    mysql的if既可以作为表达式用,也可以在存储过程中作为流程控制语句使用,如下是作为表达式使用:if表达式IF(expr1,expr2,expr3)如果expr1是TRUE(expr1<>0andexpr1<>......
  • 常用mysql注入语句
    1、利用orderby判断字段数。2、利用unionselect联合查询,获取表名。0'unionselect1,group_concat(table_name),3frominformation_schema.tableswheretable_schema......
  • MHA实现MySQL的高可用性
    MHA:MHAMasterHighAvailability对主节点进行监控,可实现自动故障转移至其它从节点;通过提升某一从节点为新的主节点,基于主从复制实现,还需要客户端配合实现。目前MHA主要......
  • 把beef-xss搭建在公网上
    我是la......
  • postgresql主从复制
    PG主备流复制的核心部分由walsender,walreceiver和startup三个进程组成。yuminstallhttps://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-re......
  • mysql ascii()函数简介
    在mysql中ASCII()函数是把字符转换成ascii码值的函数.语法:ASCII(str)返回字符串str最左面字符的ASCII代码值,如果str是空字符串,返回0,如果str是NULL,返回NULL.举例:1.代码......
  • mysql substr()函数
    mysql中的substr()函数和hibernate的substr()参数都一样,就是含义有所不同。用法:substr(stringstring,numstart,numlength);string为字符串;start为起始位置;le......
  • centos7 安装 mysql5.7.25
    一、检查是否安装了mysql和mariadb,若已经安装就需要卸载。[root@localhost~]#rpm-qa|grep//查询出来已安装的mariadb[root@localhost~]#rpm-e--nodeps文件名......
  • docker搭建mysql
    下载mysql镜像[root@localhost~]#dockerpullmysql:5.5.59 创建mysql容器[root@localhost~]#dockerrun-itd--namemysql-p3309:3306--restart=always-eMYSQL_......