<li id="jut4n"></li>
  • 系統城裝機大師 - 固鎮縣祥瑞電腦科技銷售部宣傳站!

    當前位置:首頁 > 數據庫 > Mysql > 詳細頁面

    mysql8.0主從復制搭建與配置方案

    時間:2022-10-02來源:www.ship-models.net作者:電腦系統城

    mysql主從搭建

    環境:ubuntu20.04.1,mysql:8.0.22。
    主:192.168.87.3
    備:192.168.87.6

    安裝數據庫

    1
    2
    3
    sudo apt-get install mysql-server
    sudo apt-get install mysql-client
    sudo apt-get install libmysqlclient-dev

    數據庫配置

    設置數據庫密碼

    首次安裝后,使用sudo mysql -uroot -p直接進入,更改root密碼操作如下:

    1
    2
    3
    use mysql;
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
    FLUSH PRIVILEGES;

    主庫設置

    配置/etc/mysql/mysql.conf.d/mysqld.cnf如下:

    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
    [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

    更改完后重啟數據庫

    1 systemctl restart mysql.service

    創建同步賬號

    1
    2
    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。

    查看配置是否生效

     

    創建數據快照

    1 mysqldump --all-databases --master-data &gt; dbdump.db

    –master-data這個選項會自動加上CHANGE_MASTER_TO給從機來開始復制過程。在備份時使用–databases(備份特定的數據庫)和–ignore-tables(排除備份特定的表) 選項,各個數據庫和表名之間用空格隔開。

    設置遠程訪問

    1
    2
    3
    4
    use mysql;
    update user set host='%' where user = 'root';
    FLUSH PRIVILEGES;
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

    如果此時仍無法訪問,查看防火墻是否關閉。關閉命令:

    1 sudo ufw disable

    或者開放3306端口號。

    從數據庫配置

    配置/etc/mysql/mysql.conf.d/mysqld.cnf如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    [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

    同步數據

    在主庫上dump的文件scp到從庫上,然后登錄mysql并執行如下命令:

    1
    2
    set sql_log_bin=0;
    source /home/shitianming/Documents/dbdump.db

    配置slave

    1
    2
    3
    4
    5
    6
    7
    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;

    SHELL 復制 全屏

    上述參數在主庫的mysql客戶端上運行show master status可看到。

    進行測試

    在主庫的test數據庫里添加數據,在從庫上看到是否同步。

    分享到:

    相關信息

    • MySQL通配符與正則表達式搜過濾數據詳解

      通配符過濾 通配符 % 通配符 _ 技巧 正則表達式過濾 字符匹配 其他字符 對比 正則表達式測試...

      2022-10-02

    • MySQL樂觀鎖和悲觀鎖具體實現

      對于MySQL中的樂觀鎖和悲觀鎖,可能很多的開發者還不是很熟悉,并不知道其中具體是如何實現的。本文就針對這個問題做一個實際案例演示,讓你徹底明白這兩種鎖的區別。...

      2022-09-11

    系統教程欄目

    欄目熱門教程

    人氣教程排行

    站長推薦

    熱門系統下載

    淑芬两腿间又痒了