mysql主从搭建「终于解决」

mysql主从搭建「终于解决」mysql主从搭建 环境:ubuntu20.04.1,mysql:8.0.22。 主:192.168.87.3 备:192.168.87.6 安装数据库 sudo apt-get install my

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

    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
    
  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数据库里添加数据,在从库上看到是否同步。

参考

  • mysql8.0允许外部访问
  • ubuntu防火墙关闭与开启
  • mysql主从搭建
  • Ubuntu18.04搭建MySQL8.0主从复制

原文地址:https://www.cnblogs.com/shitianming/archive/2022/09/28/16739989.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/4714.html

(0)
上一篇 2023-06-08 09:30
下一篇 2023-06-08 11:30

相关推荐

  • Python Dictionary:高效存储和快速查找数据

    Python Dictionary:高效存储和快速查找数据Python中的字典是一种无序的数据类型,可以用来存储键值对,并且可以根据键来快速查找相应的值。在Python中,字典的键必须是不可变的对象(如字符串、数字、元组),值可以是任意对象。下面是一个简单的字典示例:

    2024-02-08
    93
  • SQL 入门教程:数据插入(INSERT)

    SQL 入门教程:数据插入(INSERT)目录汇总:SQL 入门教程:面向萌新小白的零基础入门教程 毫无疑问,SELECT 是最常用的 SQL 语句了,这就是前 14 部分都在讲它的原因。但是,还有其他 3 个常用的 SQL 语句需要学习。第

    2023-04-21
    155
  • Python工程师必备:掌握$.extend的用法提高开发效率

    Python工程师必备:掌握$.extend的用法提高开发效率$.extend是jQuery中的一个函数,它可以将多个对象合并成一个对象,同时也可以将多个数组合并成一个数组。$.extend有两个参数:第一个参数表示目标对象,第二个参数表示源对象。$.extend会将源对象的所有属性和方法都复制到目标对象中,如果有属性名相同,那么源对象中的属性值会覆盖目标对象中的属性值。

    2023-12-23
    111
  • 制表符是什么

    制表符是什么制表符是计算机中一种特殊的字符,其形状和空格类似,但是占据的宽度不同,可以被用来在文本中对齐不同的元素。

    2024-09-13
    27
  • 由数据迁移至MongoDB导致的数据不一致问题及解决方案

    由数据迁移至MongoDB导致的数据不一致问题及解决方案本文是“我和MongoDB的故事”MongoDB征文比赛的二等奖得主杨庆麟的文章。下面我们一起来欣赏下。 ##故事背景 ###企业现状 2019年年初,我接到了一个神秘电话,电话那头竟然准确的说出了…

    2023-01-28
    166
  • 上虞哪里可以开医院门诊发票-中国新闻网

    上虞哪里可以开医院门诊发票-中国新闻网上虞哪里可以开医院门诊发票【152 * 9б 28 * 21 б9】陈生,诚、信、合、作,保、真、售、后、保、障、长、期、有、效。adb的全称为Android Debug Bridge,是Andro…

    2023-02-02
    152
  • Python脚本运行指南

    Python脚本运行指南Python是一个高级编程语言,越来越受到开发者的欢迎。Python的使用范围非常广泛,可以用于编写各种类型的脚本。为了更加顺利地运行Python脚本,我们需要一些指南。在这篇文章中,我们将介绍Python脚本运行的指南,并提供一些背景信息,希望能够对Python初学者和有经验的开发者有所帮助。

    2024-09-11
    25
  • 在Mac上安装Python

    在Mac上安装PythonPython是一门高级编程语言,简单易学,同时又提供了大量的库和工具,因此备受欢迎。有时候会遇到需要在Mac上安装Python的情况,本文将介绍在Mac上如何安装Python。

    2024-04-19
    73

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注