初始化MGR认证信息

以下操作需在K8s master节点物理机上操作,逐一登录MGR群组的每个MySQL Pod。

  1. 登录MySQL。

    1
    kubectl exec -it <pod_name> -n <spaces_name> -- mysql -uroot -p
    

    例如:

    1
    2
    3
    kubectl exec -it mysql-1 -n ns-mysql-test -- mysql -uroot -p
    kubectl exec -it mysql-2 -n ns-mysql-test -- mysql -uroot -p
    kubectl exec -it mysql-3 -n ns-mysql-test -- mysql -uroot -p
    

  2. 登录MySQL后,在MySQL上创建复制账号。

    1
    2
    3
    4
    5
    6
    SET SQL_LOG_BIN=0;
    CREATE USER rpl_user@'%' IDENTIFIED BY '123456';
    GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%';
    GRANT BACKUP_ADMIN ON *.* TO rpl_user@'%';
    FLUSH PRIVILEGES;
    SET SQL_LOG_BIN=1;
    

  3. 设置认证信息。

    1
    CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='123456' FOR CHANNEL 'group_replication_recovery';
    

  4. 重启MySQL后MGR生效。

    1
    shutdown;
    
    • SET SQL_LOG_BIN=0;表示当前session里的所有操作都不记录到bin_log里。
    • MySQL上执行shutdown;后会使MySQL Pod退出并自动部署新的Pod,等效于重启了MySQL。
    • 所有MySQL的mysql_arm.cnf及MGR认证信息初始化完成后,需要重启MySQL才可会生效MGR配置。