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

相关推荐

  • 技术分享 | kubernetes 环境测试部署 MySQL 的随想「终于解决」

    技术分享 | kubernetes 环境测试部署 MySQL 的随想「终于解决」作者:王悦 爱可生研发团队成员,负责数据库管理平台相关项目的开发和故障排查,好奇 MySQL 技术原理及各类数据库实现方案。 本文来源:转载自公众号-图解 MySQL *爱可生开源社区出品,原创内容…

    2023-03-07
    87
  • MySQL事务ACID原理深度解析[亲测有效]

    MySQL事务ACID原理深度解析[亲测有效]什么是MySQL事务? 事务是指对数据库的一组操作的集合,集合中的SQL语句要么全部执行成功,要么就全部失败,如果集合中任一操作出错,则此集合所有对数据库的操作全部回滚。 以常见的购物操作举例,用户下

    2023-05-09
    96
  • 如何优雅的导出Excel

    如何优雅的导出Excel公司项目最近有一个需要:报表导出。整个系统下来,起码超过一百张报表需要导出。这个时候如何优雅的实现报表导出,释放生产力就显得很重要了。下面主要给大家分享一下该工具类的使用方法与实现思路。 对于每个报表都相同的操作,我们很自然的会抽离出来,这个很简单。而最重要的是:如何把那些每个…

    2023-03-02
    111
  • 数据分析利器:pandas

    数据分析利器:pandas在数据分析领域,处理数据是基本工作之一。在Python中,pandas是一个常用的数据处理工具。pandas是基于NumPy数组构建的,常用于处理结构化数据,例如来自SQL数据库或Excel电子表格的数据。

    2024-02-27
    49
  • MySQL中的执行计划explain

    MySQL中的执行计划explain一、用法及定义: explain为sql的执行计划、在sql前面加上explain关键字即可 如:explain select * from tbl_emp; 名词解释: id:【操作表的顺序】 1.

    2023-02-01
    110
  • csv批量导入mysql命令「建议收藏」

    csv批量导入mysql命令「建议收藏」参考一下逻辑,最终代码: 需要将csv放到 /var/lib/mysql/你的数据库/ 目录下,否则会报错 ERROR 13 (HY000): Can’t get stat of ‘/root/bb…

    2023-03-22
    101
  • 使用正则表达式进行文本匹配和替换

    使用正则表达式进行文本匹配和替换正则表达式是一种匹配文本的强大工具,可以用来在文本中查找、替换、分割等操作。在Python中,可以用re模块来操作正则表达式,实现文本的匹配和替换。本文将详细介绍使用正则表达式进行文本匹配和替换的相关内容。

    2024-03-28
    27
  • hbase的排序规则_hbase架构图

    hbase的排序规则_hbase架构图在网上看过很多HBaes架构相关的文章,内容深浅不一,直到发现了一篇MapR官网的文章https://mapr.com/blog/in-depth-look-hbase-architecture/#…

    2023-02-04
    106

发表回复

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