初始化数据库

K8s部署MySQL Pod中部署的三个MySQL为例,该例中3个MySQL第一次启动时会自动初始化,可跳过以下初始化相关操作

若用户使用了其他非自动初始化的MySQL镜像或自己环境中安装的MySQL数据库还未初始化,可参考执行以下操作。

逐一初始化三个示例数据库:

  1. 数据库在Pod中,需先使用如下格式命令进入Pod系统中。

    1
    kubectl exec -it <pod_name> -n <spaces_name> -- /bin/bash
    

    例如:

    1
    2
    3
    kubectl exec -it mysql-1 -n ns-mysql-test -- /bin/bash
    kubectl exec -it mysql-2 -n ns-mysql-test -- /bin/bash
    kubectl exec -it mysql-3 -n ns-mysql-test -- /bin/bash
    

  2. 进入Pod中后,执行初始化。

    1
    mysqld --defaults-file=/etc/my.cnf --initialize
    

  3. 查看初始化后MySQL root的密码。

    1
    cat /data/mysql/log/mysql.log
    

  4. 使用找到的密码登录MySQL。

    1
    mysql -uroot -p
    

  5. 使用如下语句初始化root用户。

    1
    2
    3
    4
    alter user 'root'@'localhost' identified by "test123";
    create user 'root'@'%' identified by 'test123';
    grant all privileges on *.* to 'root'@'%';
    flush privileges;