页面加载中
博客快捷键
按住 Shift 键查看可用快捷键
ShiftK
开启/关闭快捷键功能
ShiftA
打开/关闭中控台
ShiftD
深色/浅色显示模式
ShiftS
站内搜索
ShiftR
随机访问
ShiftH
返回首页
ShiftL
友链页面
ShiftP
关于本站
ShiftI
原版/本站右键菜单
松开 Shift 键或点击外部区域关闭
互动
最近评论
暂无评论
标签
寻找感兴趣的领域
暂无标签
    0
    文章
    0
    标签
    8
    分类
    10
    评论
    128
    功能
    深色模式
    标签
    JavaScript12TypeScript8React15Next.js6Vue10Node.js7CSS5前端20
    互动
    最近评论
    暂无评论
    标签
    寻找感兴趣的领域
    暂无标签
      0
      文章
      0
      标签
      8
      分类
      10
      评论
      128
      功能
      深色模式
      标签
      JavaScript12TypeScript8React15Next.js6Vue10Node.js7CSS5前端20
      未知歌曲
      未播放
      ♪ 暂无歌词 ♪
      随便逛逛
      博客分类
      文章标签
      复制地址
      深色模式
      AnHeYuAnHeYu
      Search⌘K
      博客
        暂无其他文档

        资源清单

        April 9, 20265 分钟 阅读0 次阅读

        - 主节点:10\.142\.18\.190

        - 从节点:10\.142\.18\.191

        # 两台节点都执行下面的命令(190,191)

        卸载旧版本的数据库(系统可能自带,执行一下)

        ```

        yum remove -y mariadb-libs mysql mysql-server

        ```

        创建mysql用户

        ```

        groupadd mysql

        useradd -r -g mysql -s /bin/false mysql

        ```

        解压安装包

        ```

        mkdir -p /usr/local/mysql

        tar -xvf mysql-8.0.43-linux-glibc2.17-x86_64.tar.xz -C /usr/local/mysql --strip-components=1

        ```

        设置权限和符号链接

        ```

        chown -R mysql:mysql /usr/local/mysql

        mkdir -p /var/lib/mysql

        chown mysql:mysql /var/lib/mysql

        mkdir /etc/mysql

        touch /etc/mysql/my.cnf

        ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

        ln -s /usr/local/mysql/bin/mysqld /usr/bin/mysqld

        ```

        创建配置文件my\.cnf(/etc/mysql/my\.cnf) 这里注意:主库id是1,从库id改为2

        ```

        [mysqld]

        server_id = 1

        basedir = /usr/local/mysql

        datadir = /var/lib/mysql

        socket = /tmp/mysql.sock

        port = 3306

        log-error = /var/log/mysqld.log

        pid-file = /var/run/mysqld/mysqld.pid

        ssl_ca = /var/lib/mysql/ca.pem

        ssl_cert = /var/lib/mysql/server-cert.pem

        ssl_key = /var/lib/mysql/server-key.pem

        require_secure_transport = ON

        log_bin = mysql-bin

        binlog_format = ROW

        bind-address = 0.0.0.0

        skip-networking = false

        gtid_mode = ON

        enforce_gtid_consistency = ON

        innodb_buffer_pool_size = 1G

        max_connections = 200

        character-set-server = utf8mb4

        collation-server = utf8mb4_unicode_ci

        [client]

        socket = /tmp/mysql.sock

        ```

        初始化MySQL数据库

        ```

        cd /usr/local/mysql

        touch /var/log/mysqld.log

        chown mysql:mysql /var/log/mysqld.log

        chmod 660 /var/log/mysqld.log

        chown -R mysql:mysql /var/lib/mysql

        chmod 750 /var/lib/mysql

        bin/mysqld --initialize --ssl --user=mysql --basedir=/usr/local/mysql --datadir=/var/lib/mysql

        # 记录生成的临时root密码

        grep 'temporary password' /var/log/mysqld.log

        #o#V;/zdN-9EK

        ```

        创建服务文件 /etc/systemd/system/mysqld\.service

        ```

        [Unit]

        Description=MySQL Server

        After=network.target

        [Service]

        User=mysql

        Group=mysql

        Type=forking

        ExecStart=/usr/local/mysql/bin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

        ExecStop=/usr/local/mysql/bin/mysqladmin shutdown

        Restart=on-failure

        RestartSec=10

        PrivateTmp=true

        # 目录设置

        RuntimeDirectory=mysqld

        RuntimeDirectoryMode=755

        [Install]

        WantedBy=multi-user.target

        ```

        生成ssl证书

        ```

        # 进入 MySQL 数据目录

        cd /var/lib/mysql

        # 生成 CA 私钥

        sudo openssl genrsa -out ca-key.pem 2048

        # 生成 CA 证书(有效期10年)

        sudo openssl req -new -x509 -nodes -days 3650 -key ca-key.pem -out ca.pem \

        -subj "/C=CN/ST=Beijing/L=Beijing/O=YourCompany/CN=MySQL CA"

        # 生成服务器私钥

        sudo openssl genrsa -out server-key.pem 2048

        # 创建证书签名请求 (CSR)

        sudo openssl req -new -key server-key.pem -out server-req.pem \

        -subj "/C=CN/ST=Beijing/L=Beijing/O=YourCompany/CN=MySQL Server"

        # 签署服务器证书

        sudo openssl x509 -req -in server-req.pem -days 3650 -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem

        # 生成客户端私钥和证书(可选,用于客户端验证)

        sudo openssl genrsa -out client-key.pem 2048

        sudo openssl req -new -key client-key.pem -out client-req.pem \

        -subj "/C=CN/ST=Beijing/L=Beijing/O=YourCompany/CN=MySQL Client"

        sudo openssl x509 -req -in client-req.pem -days 3650 -CA ca.pem -CAkey ca-key.pem -set_serial 02 -out client-cert.pem

        sudo chown -R mysql:mysql /var/lib/mysql/*.pem

        sudo chmod 600 /var/lib/mysql/*.pem

        sudo chmod 644 /var/lib/mysql/ca.pem

        sudo rm /var/lib/mysql/server-req.pem /var/lib/mysql/client-req.pem

        ```

        启动MySQL服务 启动时如果报错别着急,等几秒,会刷新成running的

        ```

        systemctl daemon-reload

        mkdir -p /var/run/mysqld

        systemctl start mysqld

        systemctl enable mysqld

        ```

        配置mysql

        ```

        # 使用临时密码登录

        mysql -u root -p -h 127.0.0.1

        # 在MySQL提示符下执行:

        -- 修改root密码

        ALTER USER 'root'@'localhost' IDENTIFIED BY 'Nari@1234';

        -- 基础安全配置

        DELETE FROM mysql.user WHERE User='';

        DROP DATABASE IF EXISTS test;

        FLUSH PRIVILEGES;

        ```

        配置环境变量

        ```

        # 添加MySQL到PATH

        echo 'export PATH=$PATH:/usr/local/mysql/bin' | sudo tee /etc/profile.d/mysql.sh

        # 立即生效

        source /etc/profile.d/mysql.sh

        ```

        验证安装

        ```

        # 检查MySQL版本

        mysql --version

        # 应输出:mysql Ver 8.0.43 for Linux on x86_64 (MySQL Community Server - GPL)

        # 检查服务状态

        systemctl status mysqld

        # 连接测试

        mysql -u root -p -h 127.0.0.1 -e "SHOW DATABASES;"

        ```

        定期备份

        ```

        # 使用mysqldump备份

        mkdir /backups

        mysqldump -u root -p -h 127.0.0.1 --all-databases > /backups/mysql-full-$(date +%F).sql

        ```

        # 配置主备

        主节点: 创建/修改用户权限

        ```

        -- 使用 root 登录 MySQL

        mysql -u root -p -h 127.0.0.1

        -- 创建允许所有 IP 访问的用户(推荐创建专用用户)

        CREATE USER 'master'@'%' IDENTIFIED BY 'master@1234';

        -- 授予所有权限(根据需求调整权限范围)

        GRANT ALL PRIVILEGES ON *.* TO 'master'@'%' WITH GRANT OPTION;

        -- 刷新权限

        FLUSH PRIVILEGES;

        -- 退出

        EXIT;

        ```

        配置防火墙 放行3306

        ```

        firewall-cmd --permanent --add-port=3306/tcp

        firewall-cmd --reload

        # 验证端口是否开放

        firewall-cmd --list-ports

        ```

        主节点

        ```

        scp /var/lib/mysql/ca.pem root@slave-ip:/var/lib/mysql/

        ```

        从节点

        ```

        chown mysql:mysql /var/lib/mysql/ca.pem

        ```

        ```

        mysql -u root -p -h 127.0.0.1

        ```

        ```

        -- 停止现有复制

        STOP REPLICA;

        -- 重置复制配置

        RESET REPLICA ALL;

        -- 配置GTID复制

        CHANGE REPLICATION SOURCE TO

        SOURCE_HOST='192.168.45.1',

        SOURCE_USER='master',

        SOURCE_PASSWORD='master@1234',

        SOURCE_SSL=1,

        SOURCE_SSL_CA='/var/lib/mysql/ca.pem',

        SOURCE_AUTO_POSITION=1; -- 如果使用 GTID

        -- 启动复制

        START REPLICA;

        -- 查看状态

        SHOW SLAVE STATUS\G

        ```

        检查关键字段

        ```

        Replica_IO_Running: Yes

        Replica_SQL_Running: Yes

        Retrieved_Gtid_Set: [应有值]

        Executed_Gtid_Set: [应有值]

        Last_IO_Error:

        Last_SQL_Error:

        ```

        测试 在主节点执行:

        ```

        CREATE DATABASE replication_test;

        ```

        在从节点执行

        ```

        show databases;

        ```

        ---

        来自 Daymica

        最后更新于 April 9, 2026
        On this page
        暂无目录