溫馨提示×

docker mysql集群怎么搭建

小億
100
2023-10-27 03:49:46
欄目: 云計算

要搭建Docker MySQL集群,可以按照以下步驟進行操作:

  1. 安裝Docker:在每個節(jié)點上安裝Docker引擎。

  2. 創(chuàng)建Docker網(wǎng)絡(luò):創(chuàng)建一個Docker網(wǎng)絡(luò),用于連接MySQL容器。

    docker network create mysql-cluster
    
  3. 創(chuàng)建MySQL實例:在每個節(jié)點上創(chuàng)建MySQL容器實例。

    docker run -d -p 3306:3306 --name mysql-node1 --net mysql-cluster -e MYSQL_ROOT_PASSWORD=password mysql
    docker run -d -p 3307:3306 --name mysql-node2 --net mysql-cluster -e MYSQL_ROOT_PASSWORD=password mysql
    docker run -d -p 3308:3306 --name mysql-node3 --net mysql-cluster -e MYSQL_ROOT_PASSWORD=password mysql
    

    這將在每個節(jié)點上創(chuàng)建一個MySQL容器,并將其連接到mysql-cluster網(wǎng)絡(luò)。每個容器都使用不同的端口號(3306、3307、3308)。

  4. 配置MySQL集群:進入每個MySQL容器并修改配置文件以啟用集群功能。

    docker exec -it mysql-node1 bash
    vim /etc/mysql/mysql.conf.d/mysqld.cnf
    

    修改配置文件中的以下參數(shù):

    [mysqld]
    server-id=1
    log-bin=mysql-bin
    log_slave_updates=1
    enforce_gtid_consistency=1
    gtid_mode=ON
    binlog_format=ROW
    

    然后重啟容器:

    docker restart mysql-node1
    

    在其他節(jié)點上執(zhí)行相同的步驟,但將server-id設(shè)置為不同的值(2、3)。

  5. 創(chuàng)建集群用戶:在其中一個節(jié)點上創(chuàng)建集群用戶并授予相應(yīng)的權(quán)限。

    docker exec -it mysql-node1 bash
    mysql -uroot -ppassword
    

    進入MySQL命令行后,執(zhí)行以下命令:

    CREATE USER 'cluster'@'%' IDENTIFIED BY 'password';
    GRANT REPLICATION SLAVE ON *.* TO 'cluster'@'%';
    FLUSH PRIVILEGES;
    

    注意將’password’替換為實際的密碼。

  6. 配置主從復(fù)制:在每個節(jié)點上進行主從復(fù)制配置。

    docker exec -it mysql-node1 bash
    mysql -uroot -ppassword
    

    進入MySQL命令行后,執(zhí)行以下命令:

    SHOW MASTER STATUS;
    

    記下File和Position的值。

    在其他節(jié)點上執(zhí)行以下命令:

    docker exec -it mysql-node2 bash
    mysql -uroot -ppassword
    

    進入MySQL命令行后,執(zhí)行以下命令(將File和Position替換為上一步中的值):

    CHANGE MASTER TO MASTER_HOST='mysql-node1', MASTER_USER='cluster', MASTER_PASSWORD='password', MASTER_LOG_FILE='File', MASTER_LOG_POS=Position;
    START SLAVE;
    

    重復(fù)以上步驟,將其他節(jié)點配置為從節(jié)點。

  7. 驗證集群:在任意一個節(jié)點上進行驗證。

    docker exec -it mysql-node1 bash
    mysql -uroot -ppassword
    

    進入MySQL命令行后,執(zhí)行以下命令:

    SHOW STATUS LIKE 'wsrep_cluster_size';
    

    如果集群大小大于等于3,則表示集群已成功搭建。

以上步驟將幫助您搭建Docker MySQL集群。注意替換命令中的密碼和其他參數(shù)以適應(yīng)您的環(huán)境。此外,還可以根據(jù)需要進行其他配置和調(diào)整。

0