• ubuntu22 mysql8.0如何搭建主从复制?[亲自实践,步骤简洁]


    1 自行准备好两个mysql8.0,并且保证可相互连接和访问。

    ubuntu现在的软件包里,直接安装就是mysql8.0:apt-get install mysql-server

    2 主机配置文件

    mysql版本要一致,主从所有配置项都在 [mysqld] 节点下,小写字母。
    打开配置文件,增加以下配置:vim /etc/mysql/mysql.conf.d/mysqld.cnf
    建议配置前三个就行了,其它看情况。具体参数如下:

    #[必须]主服务器唯一ID
    server-id=1
    #[必须]启用二进制日志,无后缀的文件名。也可以是本地的路径/log/bin-log
    log-bin=bin-log
    #[可选]设置需要复制的数据库名称,默认全部记录。
    binlog-do-db=test_master
    #[可选]设置不要复制的数据库
    binlog-ignore-db=test
    #[可选] 0(默认)表示读写(主机),1表示只读(从机)
    read-only=0
    #设置日志文件保留的时长,单位是秒
    binlog_expire_logs_seconds=6000
    #控制单个二进制日志大小。此参数的最大和默认值是1GB
    max_binlog_size=200M
    #[可选]设置binlog格式(STATEMENT是基于sql语句的复制,ROW是基于行的复制,MIXED是混合模式)
    binlog_format=STATEMENT
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    保存完,重启mysqlsystemctl restart mysql

    3 从机配置文件
    #[必须]从服务器唯一ID
    server-id=2
    #[可选]启用中继日志
    relay-log=mysql-relay
    #[可选] 0(默认)表示读写(主机),1表示只读(从机)
    read-only=1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    保存。重启mysql

    4 主机:建立账户并授权

    在linux里执行 sudo mysql 进入mysql的命令行

    # 创建一个用户名slave1,密码123456
    CREATE USER 'slave1'@'%' IDENTIFIED BY '123456';
    # 授权
    GRANT REPLICATION SLAVE ON *.* TO 'slave1'@'%';
    #此语句必须执行。否则报错
    ALTER USER 'slave1'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
    # 使权限生效
    flush privileges;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    执行sql语句。用来查询Master的状态,并记录下File和Position的值。

    show master status;
    
    • 1

    将出现如图:
    在这里插入图片描述
    注意:执行完此步骤后不要再操作主服务器MySQL,防止主服务器状态值变化。

    5 从机:连接主机

    (1) 主从复制的关键一步。执行以下sql语句。

    CHANGE MASTER TO
    MASTER_HOST='主机的IP地址',
    MASTER_USER='主机用户名',
    MASTER_PASSWORD='主机用户名的密码',
    MASTER_LOG_FILE='bin-log.具体数字',
    MASTER_LOG_POS=Position的具体值;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    这时候会提示成功。如果不成功,请检查配置,或者之前启动过等原因。

    (2) 执行sql语句。用来启动slave同步

    START SLAVE;
    
    • 1

    这时候提示成功。如果报错,可以执行如下操作,删除之前的relay_log信息,然后重新执行 CHANGE MASTER TO …语句

    reset slave; #删除SLAVE数据库的relaylog日志文件,并重新启用新的relaylog文件
    
    • 1

    (3) 执行sql语句,检查主从同步是否搭建成功

    SHOW SLAVE STATUS\G;
    
    • 1

    你将看到以下成功的信息
    在这里插入图片描述
    如果失败了,请检查配置、防火墙等。

    接下来,可以自己去主库创建test_master库,再创建些数据,然后去从库查看是否也有相同的数据库和数据。

    其它

    启动主从:start slave;
    停止主从:stop slave;
    重新配置主从:reset master; #删除Master中所有的binglog文件,并将日志索引文件清空,重新开始所有新的日志文件(慎用)

  • 相关阅读:
    安全防御,防火墙配置NAT转换智能选举综合实验
    Java集合大总结——Iterator(迭代器)接口
    【Java】ExcelWriter自适应宽度工具类(支持中文)
    自动化情侣微信早安信息定时推送
    搭建一个简单的深度神经网络
    20220912深圳市梧桐山桃花源看植物
    1、Power Map—什么是Power Map?
    C++文件服务器项目—FastDFS—1
    矩阵分析与应用-06-概率密度函数01
    centos开机自检及开机自启服务-Dash.shell及Systemd方法
  • 原文地址:https://blog.csdn.net/wuguandi/article/details/126572693