• mysql8.0.34部署单节点与集群-AB复制(IO与SQL线程不同步解决方法)


    mysql8.0部署

    单实例

    一、清理mariadb

    rpm -qa|grep mariadb
    #查看关于mariadb
    
    • 1
    • 2
    rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
    
    • 1
    find / -name mysql
    #查找关于mysql的文件
    
    • 1
    • 2
    rm -rf /etc/selinux/targeted/active/modules/100/mysql
    #删除
    
    • 1
    • 2
    rm -rf /usr/lib64/mysql
    #删除
    
    • 1
    • 2

    二、下载mysql8.0.34到/usr/local/mysql

    mkdir /usr/local/mysql
    #创建目录
    
    • 1
    • 2
    cd /usr/local/mysql
    #进入目录
    
    • 1
    • 2
    wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.34-1.el7.x86_64.rpm-bundle.tar
    #获取mysql8.0.34包
    
    • 1
    • 2
    tar xf mysql.tar
    #解压
    
    • 1
    • 2
    ls /usr/local/mysql
    #查看目录
    
    • 1
    • 2

    安装common、libs、client、server 4个模块

    rpm -ivh  commonxxxx --nodeps --force
    #安装common
    
    • 1
    • 2
    rpm -ivh  libsxxxx --nodeps --force
    #安装libs
    
    • 1
    • 2
    rpm -ivh  clientxxxx --nodeps --force
    #安装client
    
    • 1
    • 2
    rpm -ivh  serverxxx --nodeps --force
    #安装server
    
    • 1
    • 2
    rpm -qa | grep mysql
    #查看安装命令
    
    • 1
    • 2

    三、修改my.conf

    默认在/etc

    vim /etc/my.conf

    [client]
    port=3306
    socket=/var/lib/mysql/mysql.sock
    default-character-set=utf8mb4
    
    [mysql]
    default-character-set=utf8mb4
    no-auto-rehash
    
    [mysqld]
    port=3306
    
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    #不受client字符集影响,保证server端字符集
    character-set-client-handshake=FALSE
    character-set-server=utf8mb4
    collation-server=utf8mb4_general_ci
    #初始连接字符集
    init_connect='SET NAMES utf8mb4'
    
    lower_case_table_names=1
    sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
    #避免external locking
    skip-external-locking
    #跳过DNS反向解析
    skip_name_resolve
    #最大进程连接数
    max_connect_errors=10
    #开启慢查询日志
    slow_query_log=on
    #慢查询时间
    long_query_time=3
    slow_query_log_file=/var/log/slowsql.log
    #索引的缓冲区大小
    key_buffer_size=128M
    #读入缓冲区大小
    read_buffer_size=1M
    #随机读(查询操作)缓冲区大小
    read_rnd_buffer_size=2M
    #网络传输中一次消息传输量的最大值
    max_allowed_packet=1M
    #表描述符缓存大小
    table_open_cache=64
    #用来处理类似ORDER BY以及GROUP BY队列所引起的排序
    sort_buffer_size=512K
    net_buffer_length=8K
    #默认存储引擎
    default_storage_engine=InnoDB
    #Innodb把所有的数据和索引都缓存起来,此参数设置越大,数据存取时所需要的磁盘I/O越少
    innodb_buffer_pool_size=1024M
    #0代表日志只大约每秒写入日志文件并且日志文件刷新到磁盘
    #1代表InnoDB会在每次事务提交后将事务日志写到磁盘上
    #2代表每次提交后日志写入日志文件,但是日志文件每秒刷新到磁盘上
    innodb_flush_log_at_trx_commit=2
    #确定日志文件的大小
    innodb_log_file_size=256M
    #写日志文件所用的内存大小
    innodb_log_buffer_size=8M
    #日志组中的文件总数
    innodb_log_files_in_group=3
    #在被回滚前,一个InnoDB的事务应该等待一个锁被批准多久
    innodb_lock_wait_timeout=50
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65

    四、创建慢查询日志

    touch /var/log/slowsql.log
    #创建慢查询日志
    
    • 1
    • 2
    chown mysql:mysql /var/log/slowsql.log
    #更改用户属组属主
    
    • 1
    • 2
    chmod 664 /var/log/slowsql.log
    #更改文件权限
    
    • 1
    • 2

    五、初始化

    chown -R mysql:mysql /var/lib/mysql
    #更改用户属组属主
    
    • 1
    • 2
    chmod -R 755 /var/lib/mysql
    #更改文件权限
    
    • 1
    • 2
    mysqld --user=mysql --initialize
    #初始化
    
    • 1
    • 2

    初始化完成后会生成密码在日志中

    cat /var/log/mysqld.log | grep password
    #查看初始密码
    
    • 1
    • 2

    六、启动mysql

    systemctl enable --now mysql
    #启动mysql并设置开机自启
    
    • 1
    • 2

    七、登陆mysql

    mysql -uroot -p‘密码’
    #登陆mysql
    
    • 1
    • 2

    八、修改密码

    alter user 'root'@'localhost' identified by 'qweasd123';
    
    • 1

    九、创建远程登陆用户

    create user 'admin'@'%' identified by 'qweasd123';
    #创建admin用户密码为qweasd123
    
    • 1
    • 2
    grant all privileges on *.* to 'admin'@'%' with grant option;
    #授权admin所有权限
    
    • 1
    • 2
    flush privileges;
    #刷新
    
    • 1
    • 2

    十、完成

    集群-AB复制

    master:192.168.169.129

    slave1:192.168.169.130

    slave2:192.168.169.131

    三台完成以上操作

    一、修改my.conf

    master:

    log-bin=mysql-bin 
    
    server-id=1
    
    • 1
    • 2
    • 3

    slave1:

    server-id=2
    
    • 1

    slave2:

    server-id=3
    
    • 1

    二、重置偏移量

    master:

    mysql -uadmin -p'密码'
    
    • 1
    reset master;
    
    • 1
    show master status;
    
    • 1

    获取信息:

    mysql-bin.000001

    Position:157

    三、注册从节点

    slave1 and slave2:

    mysql -uroot -p'密码'
    
    • 1
    stop slave;
    
    • 1
    reset slave;
    
    • 1
    change master to master_host='master主机名',master_user='master远程用户',master_port=master端口,master_password='用户密码',master_log_file='mysql-bin.000001',master_log_pos=157;
    
    • 1
    start slave;
    
    • 1
    show slave status\G;
    
    • 1

    可能遇到的问题:

    一、Slave_IO_Running: NO

    1.chang master 参数设置有问题

    2.uuid和master一致导致()

    解决方法:

    vim /var/lib/mysql/auto.cnf
    
    • 1

    顺便改一个数,重启mysql

    二、Slave_SQL_Running: NO

    1.程序可能在slave上进行了写操作

    2.可能是slave机器重启后,事务回滚导致

    解决方法:

    stop slave;
    
    • 1
    set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
    
    • 1
    start slave ;
    
    • 1
  • 相关阅读:
    《优化接口设计的思路》系列:第十一篇—表格的导入导出接口优化
    15.4 Java反射机制的深入应用(血干JAVA系类)
    Nomad系列-Nomad网络模式
    十八、字符串(3)
    单基因泛癌+实验简单验证,要素丰富,没研究方向的赶紧上车
    java计算机毕业设计学习和分享做菜web系统源码+mysql数据库+lw文档+系统+调试部署
    linux下通过wifi连接网络
    基于深度学习的农作物叶片病害检测系统(UI界面+YOLOv5+训练数据集)
    1024节日
    Cesium深入浅出之自定义材质
  • 原文地址:https://blog.csdn.net/weixin_43700623/article/details/132624320