8.2 Creating NF Users

This section provides the procedures to create NF users when required. They can be created in the following ways:

  • Creating NF Users manually
  • Creating NF Users using dbtuser script

Creating NF Users manually

  1. Perform the following steps to verify if the users exist or not:
    1. Log in to a ndbappmysqld pod. Enter the password when prompted.
      $ kubectl -n <namespace>  exec -it ndbappmysqld-0 -- mysql -h 127.0.0.1 -uroot -p
      For example:
      $ kubectl -n cluster1 exec -it ndbappmysqld-0 -- mysql -h 127.0.0.1 -uroot -p
      Enter Password:
    2. Check if NF specific user accounts exists. If users doesn't exist, then create user accounts using step 2:
      mysql> select user, host  from mysql.user;
      Sample output:
      +------------------+-----------+
      | user             | host      |
      +------------------+-----------+
      | occnerepluser    | %         |
      | occneuser        | %         |
      | mysql.infoschema | localhost |
      | mysql.session    | localhost |
      | mysql.sys        | localhost |
      | root             | localhost |
      +------------------+-----------+
      7 rows in set (0.00 sec)
    3. Verify the GRANTS for the NF user:
      mysql>SHOW GRANTS FOR <user_name>;
      For example:
      mysql> SHOW GRANTS FOR NFUSER;
      Sample output:
      +--------------------------------------------------------------+
      | Grants for NFUSER@%                                          |
      +--------------------------------------------------------------+
      | GRANT USAGE ON *.* TO `NFUSER`@`%`                           |
      | GRANT NDB_STORED_USER ON *.* TO `NFUSER`@`%`                 |
      | GRANT ALL PRIVILEGES ON `replication_info`.* TO `NFUSER`@`%` |
      +--------------------------------------------------------------+
      3 rows in set (0.00 sec)
  2. Perform the following steps to create user and grant privileges if the user doesn't exist:
    1. Log in to a ndbappmysqld pod. Enter the password when prompted.
      $ kubectl -n <namespace>  exec -it ndbappmysqld-0 -- mysql -h 127.0.0.1 -uroot -p
      For example:
      $ kubectl -n cluster1 exec -it ndbappmysqld-0 -- mysql -h 127.0.0.1 -uroot -p
      Sample output:
      
      Defaulted container "mysqlndbcluster" out of: mysqlndbcluster, init-sidecar
      Enter password:
    2. Before creating the user and granting privilege, run the following command to turn off binlogging on one of the ndbappmysqld pods:
      mysql>SET sql_log_bin = OFF;
      Sample output:
      Query OK, 0 rows affected (0.00 sec)
    3. Run the following to create the NF user if required:
      mysql> CREATE USER IF NOT EXISTS '<USERNAME>'@'%' IDENTIFIED BY '<USERPASSWORD>';
      For example:
      mysql> CREATE USER IF NOT EXISTS 'NFUSER';
      Sample output:
      Query OK, 0 rows affected (0.02 sec)
    4. Provide the required privileges to the NF user on the NF specific databases:
      $ mysql> GRANT ALL PRIVILEGES ON <DATABASENAME1>.*,<DATABASENAME2>.* TO '<USERNAME>'@'%';
      mysql> GRANT NDB_STORED_USER ON *.* TO '<USERNAME>'@'%';   
      mysql> FLUSH PRIVILEGES;
      Example with sample output:
      mysql> GRANT ALL PRIVILEGES ON nfdatabase.* TO 'NFUSER'@'%';
      Query OK, 0 rows affected (0.01 sec)
      mysql> GRANT NDB_STORED_USER ON *.* TO 'NFUSER'@'%';
      Query OK, 0 rows affected (0.13 sec)
      mysql> FLUSH PRIVILEGES;
      Query OK, 0 rows affected (0.01 sec)
    5. Turn on the binlogging on the same ndbappmysqld pod before you exit from the session:
      mysql>SET sql_log_bin = ON;
      Sample output:
      Query OK, 0 rows affected (0.00 sec)
    6. Exit the session:
      $ mysql> exit;

      Note:

      For a specific use case to create user and grant privilege, check with the respective NFs.

Creating NF Users using dbtuser script

dbtuser is a bash script for finding NF database users in a given site and creating them with their corresponding GRANTS in the site where it is run. It is intended to be run on a recovered site after a Geo-Replication Recovery (GRR) so that it will create the NF database users that already exist in the given site, which is usually the "good" site during the GRR. dbtuser finds users in the "good" site that don't exist in the recovered site, and it creates them with the same GRANTs.

Note:

  • Users must select the "good" site, that is the site to compare the current site users and grants to.
  • Users must ensure that cnDBTier and NDB MySQL cluster are in a good state.
Prerequisites

Before adding the users, ensure the following prerequisites are met:

  • The source_me file is packaged along with the dbtuser script. This file must be sourced from the script as it sets the file path and variables required for the dbtuser to run the script. It must be source'ed from the directory where it is located. In the following command syntax, "./" represents the relative path.
    source ./source_me
  • DBTIER_NAMESPACE must be set to the cndbtier namespace of the recovered site.
  • dbtuser script must be run on the recovered site.
Installing the dbtuser script
Source the source_me file which then performs the following actions:
  1. Adds the /bin along with the script to the local file path.
  2. Sets the cnDBTier namespace as DBTIER_NAMESPACE.
  3. Sets the environment variable DBTIER_LIB with the path for the directory containing the libraries required by the dbtuser script.
# Source to set up the current bash shell before executing dbtuser
cd Artifacts/Scripts/tools
source ./source_me
Using the dbtuser script

The dbtuser script provides the following options. Run the following commands to view the script options:

dbtuser [-h | --help]
dbtuser [-u | --usage]
 
source ./source_me
dbtuser [OPTIONS]

Table 8-1 dbtuser Script Options

Options Descriptions
-h | --help Displays the help message.
-u | --usage Displays the usage message.
-v | --version Displays the version of the dbtuser script.
--debug Displays the DEBUG log message to standard error, stderr.
--no-colors Displays the output on default terminal font color instead of using dbtuser colors.
--use--ipv4 Displays a message for the dbtuser to use IPv4.
--use--ipv6 Displays a message for the dbtuser to use IPv6.
--connect-timeout=<connect_timeout_in_seconds> Displays the wait time (in seconds) before it tries to reconnect. This option is used by the dbtuser when executing curl, mysql, mysqladmin and ssh.

Default is 15 seconds.
--skip-namespace-test Skips testing of the namespace if DBTIER_NAMESPACE exists in the current cluster.
--skip-tests Skips sanity tests.
--tests-only Runs only sanity tests.
--diff-only Finds and displays users in the "good" site that don't exist in the "recovered" site.

Note: Do not create users in the "recovered" site.

--dry-run Runs starting from creating the commands that need to be executed on the local cluster to copy the remote users and their GRANTs, but don't execute them.

Sample output of a dbtuser script

$ dbtuser

Sample output:

/home/user/me/usr/bin/lib 25.1.100dbtuser 25.1.100Copyright (c) 2025 Oracle and/or its affiliates. All rights reserved.2025-03-27T17:31:09Z INFO - Started timer dbtuser:
                        17430966692025-03-27T17:31:09Z INFO - Started timer PHASE 0:
                        17430966692025-03-27T17:31:09Z INFO -
                          ****************************************************************************************************2025-03-27T17:31:09Z INFO - BEGIN PHASE 0: Collecting Site
                          information2025-03-27T17:31:09Z INFO -
                          ****************************************************************************************************2025-03-27T17:31:09Z INFO - Using IPv4: LOOPBACK_IP="127.0.0.1"2025-03-27T17:31:09Z INFO - DBTIER_NAMESPACE =
                        namespace-22025-03-27T17:31:09Z INFO - Testing namespace, namespace-2,
                          exists...2025-03-27T17:31:10Z INFO - Should be able to see namespace, namespace-2,
                            with "kubectl get ns -o name namespace-2" - PASSED2025-03-27T17:31:10Z INFO - Namespace, namespace-2,
                        exists2025-03-27T17:31:10Z INFO - Getting sts and sts pod
                        info...2025-03-27T17:31:10Z INFO - Getting MGM sts and sts pod
                        info...2025-03-27T17:31:10Z INFO - MGM_STS="ndbmgmd"2025-03-27T17:31:10Z INFO - MGM_REPLICAS="2"2025-03-27T17:31:10Z INFO - MGM_PODS:    ndbmgmd-0    ndbmgmd-12025-03-27T17:31:10Z INFO - Getting NDB sts and sts pod
                        info...2025-03-27T17:31:10Z INFO - NDB_STS="ndbmtd"2025-03-27T17:31:10Z INFO - NDB_REPLICAS="2"2025-03-27T17:31:10Z INFO - NDB_PODS:    ndbmtd-0    ndbmtd-12025-03-27T17:31:10Z INFO - Getting API sts and sts pod
                        info...2025-03-27T17:31:10Z INFO - API_STS="ndbmysqld"2025-03-27T17:31:10Z INFO - API_REPLICAS="4"2025-03-27T17:31:10Z INFO - API_PODS:    ndbmysqld-0    ndbmysqld-1    ndbmysqld-2    ndbmysqld-32025-03-27T17:31:10Z INFO - Getting APP sts and sts pod
                        info...2025-03-27T17:31:11Z INFO - APP_STS="ndbappmysqld"2025-03-27T17:31:11Z INFO - APP_REPLICAS="2"2025-03-27T17:31:11Z INFO - APP_PODS:    ndbappmysqld-0    ndbappmysqld-12025-03-27T17:31:11Z INFO - Getting deployment pod
                        info...2025-03-27T17:31:11Z INFO - grepping for backup-man (BAK_CHART_NAME)...2025-03-27T17:31:11Z INFO - BAK_PODS:    mysql-cluster-db-backup-manager-svc-7768874cb9-r2qsf2025-03-27T17:31:11Z INFO - BAK_DEPLOY:    mysql-cluster-db-backup-manager-svc2025-03-27T17:31:11Z INFO - grepping for db-mon (MON_CHART_NAME)...2025-03-27T17:31:11Z INFO - MON_PODS:    mysql-cluster-db-monitor-svc-8647c59c4b-gsvvp2025-03-27T17:31:11Z INFO - MON_DEPLOY:    mysql-cluster-db-monitor-svc2025-03-27T17:31:11Z INFO - grepping for repl (REP_CHART_NAME)...2025-03-27T17:31:11Z INFO - db-replication-svc deployments found, THIS IS
                          A MULTIPLE SITE SETUP...2025-03-27T17:31:11Z INFO - finding db-replication-svc pods,
                          USE_LABELS=...2025-03-27T17:31:11Z INFO - caching db-replication-svc pods main
                          containers...2025-03-27T17:31:11Z INFO - REP_PODS, REP_CONTAINERS:    mysql-cluster-site-2-site-1-replication-svc-57f9bf8gsxz,
                          site-2-site-1-replication-svc    mysql-cluster-site-2-site-3-replication-svc-757794q5pxp,
                          site-2-site-3-replication-svc2025-03-27T17:31:11Z INFO - REP_DEPLOY:    mysql-cluster-site-2-site-1-replication-svc    mysql-cluster-site-2-site-3-replication-svc2025-03-27T17:31:12Z INFO - is https enabled: false2025-03-27T17:31:12Z INFO - HTTP_SCHEME = httpEnter superuser password:2025-03-27T17:31:42Z INFO - DB_ENCRYPT_ENABLE: false2025-03-27T17:31:42Z INFO - TLS_ENABLE: false2025-03-27T17:31:42Z INFO - LOCAL_K8S_REPL_SVCS:  mysql-cluster-site-2-site-1-replication-svc  mysql-cluster-site-2-site-3-replication-svc2025-03-27T17:31:42Z INFO - LOCAL_K8S_NDBMYSQLD_LB_SVCS:  ndbmysqldsvc-0  ndbmysqldsvc-1  ndbmysqldsvc-2  ndbmysqldsvc-32025-03-27T17:31:42Z INFO - Collecting current site
                        information...2025-03-27T17:31:42Z INFO - Collecting current site name
                            and id...2025-03-27T17:31:43Z INFO - CURRENT_SITE_NAME = site-22025-03-27T17:31:43Z INFO - CURRENT_SITE_ID = 22025-03-27T17:31:43Z INFO - Collecting current site replication
                          information...2025-03-27T17:31:43Z INFO -
                        MATE_SITE_DB_REPLICATION_PORT=802025-03-27T17:31:43Z INFO -
                        FILE_TRANSFER_PORT_NUMBER=20222025-03-27T17:31:43Z INFO - REPLCHANNEL_GROUP_COUNT=12025-03-27T17:31:43Z INFO - Current site replication information
                          collected.2025-03-27T17:31:43Z INFO - Current site information
                        collected.2025-03-27T17:31:43Z INFO - Collecting cluster
                        information...NAME                                                             
                          READY   STATUS    RESTARTS   AGEmysql-cluster-db-backup-manager-svc-7768874cb9-r2qsf             
                          1/1     Running   0          2d3hmysql-cluster-db-monitor-svc-8647c59c4b-gsvvp                    
                          1/1     Running   0          2d3hmysql-cluster-site-2-site-1-replication-svc-57f9bf8gsxz   1/1     Running   0          2d3hmysql-cluster-site-2-site-3-replication-svc-757794q5pxp   1/1     Running   0          2d3hndbappmysqld-0                                                   
                          2/2     Running   0          2d3hndbappmysqld-1                                                   
                          2/2     Running   0          2d3hndbmgmd-0                                                        
                          2/2     Running   0          2d3hndbmgmd-1                                                        
                          2/2     Running   0          2d3hndbmtd-0                                                         
                          3/3     Running   0          2d3hndbmtd-1                                                         
                          3/3     Running   0          2d3hndbmysqld-0                                                      
                          3/3     Running   0          2d3hndbmysqld-1                                                      
                          3/3     Running   0          2d3hndbmysqld-2                                                      
                          3/3     Running   0          2d3hndbmysqld-3                                                      
                          3/3     Running   0          2d3hConnected to management server at localhost port 1186 (using
                          cleartext)Cluster Configuration---------------------[ndbd(NDB)] 2 node(s)id=1    @10.233.126.153  (mysql-8.4.3 ndb-8.4.3, Nodegroup: 0,
                          *)id=2    @10.233.110.188  (mysql-8.4.3 ndb-8.4.3, Nodegroup:
                        0) [ndb_mgmd(MGM)] 2 node(s)id=49   @10.233.102.59  (mysql-8.4.3 ndb-8.4.3)id=50   @10.233.93.110  (mysql-8.4.3 ndb-8.4.3) [mysqld(API)]   10 node(s)id=56   @10.233.118.166  (mysql-8.4.3 ndb-8.4.3)id=57   @10.233.93.117  (mysql-8.4.3 ndb-8.4.3)id=58   @10.233.121.92  (mysql-8.4.3 ndb-8.4.3)id=59   @10.233.115.46  (mysql-8.4.3 ndb-8.4.3)id=70   @10.233.118.165  (mysql-8.4.3 ndb-8.4.3)id=71   @10.233.110.190  (mysql-8.4.3 ndb-8.4.3)id=222 (not connected, accepting connect from any host)id=223 (not connected, accepting connect from any host)id=224 (not connected, accepting connect from any host)id=225 (not connected, accepting connect from any host) 2025-03-27T17:31:44Z INFO -
                        CURRENT_SITE_DBTIER_VERSION=25.1.1002025-03-27T17:31:44Z INFO -
                          CURRENT_SITE_DBTIER_VERSION_FROM_HELM=25.1.1002025-03-27T17:31:44Z INFO - Number of sites: 32025-03-27T17:31:44Z INFO - SITE_NAMES:    Site 3: site-3    Site 2: site-2    Site 1: site-12025-03-27T17:31:44Z INFO - Cluster information
                        collected2025-03-27T17:31:44Z INFO - Collecting cluster replication
                          information...2025-03-27T17:31:47Z INFO - SITE_DB_REPL_SVC[3] =
                          SITE_3_DB_REPL_SVC2025-03-27T17:31:47Z INFO - SITE_3_DB_REPL_SVC:10.233.15.22310.233.2.532025-03-27T17:31:48Z INFO - SITE_DB_REPL_SVC[2] =
                          SITE_2_DB_REPL_SVC2025-03-27T17:31:48Z INFO - SITE_2_DB_REPL_SVC:10.233.50.3810.233.27.332025-03-27T17:31:48Z INFO - SITE_DB_REPL_SVC[1] =
                          SITE_1_DB_REPL_SVC2025-03-27T17:31:48Z INFO - SITE_1_DB_REPL_SVC:10.233.2.12410.233.31.1062025-03-27T17:31:49Z INFO - SERVER_ID = (1000 1001 1002 1003 2000 2001
                          2002 2003 3000 3001 3002 3003)2025-03-27T17:31:49Z INFO - SERVER_IPS[1000] =
                        10.233.41.52025-03-27T17:31:49Z INFO - SERVER_IPS[1001] =
                        10.233.58.892025-03-27T17:31:49Z INFO - SERVER_IPS[1002] =
                        10.233.38.632025-03-27T17:31:49Z INFO - SERVER_IPS[1003] =
                        10.233.9.582025-03-27T17:31:49Z INFO - SERVER_IPS[2000] =
                        10.233.51.812025-03-27T17:31:50Z INFO - SERVER_IPS[2001] =
                        10.233.47.2112025-03-27T17:31:50Z INFO - SERVER_IPS[2002] =
                        10.233.42.1532025-03-27T17:31:50Z INFO - SERVER_IPS[2003] =
                        10.233.6.1642025-03-27T17:31:50Z INFO - SERVER_IPS[3000] =
                        10.233.43.732025-03-27T17:31:50Z INFO - SERVER_IPS[3001] =
                        10.233.1.142025-03-27T17:31:50Z INFO - SERVER_IPS[3002] =
                        10.233.34.282025-03-27T17:31:50Z INFO - SERVER_IPS[3003] =
                        10.233.41.2482025-03-27T17:31:50Z INFO - Cluster replication information
                          collected2025-03-27T17:31:50Z INFO - name = site-3, server_id = 3000, host =
                          10.233.43.732025-03-27T17:31:50Z INFO - name = site-3, server_id = 3001, host =
                          10.233.1.142025-03-27T17:31:50Z INFO - name = site-3, server_id = 3002, host =
                          10.233.34.282025-03-27T17:31:50Z INFO - name = site-3, server_id = 3003, host =
                          10.233.41.2482025-03-27T17:31:50Z INFO - name = site-2, server_id = 2000, host =
                          10.233.51.812025-03-27T17:31:50Z INFO - name = site-2, server_id = 2001, host =
                          10.233.47.2112025-03-27T17:31:50Z INFO - name = site-2, server_id = 2002, host =
                          10.233.42.1532025-03-27T17:31:50Z INFO - name = site-2, server_id = 2003, host =
                          10.233.6.1642025-03-27T17:31:50Z INFO - name = site-1, server_id = 1000, host =
                          10.233.41.52025-03-27T17:31:50Z INFO - name = site-1, server_id = 1001, host =
                          10.233.58.892025-03-27T17:31:50Z INFO - name = site-1, server_id = 1002, host =
                          10.233.38.632025-03-27T17:31:50Z INFO - name = site-1, server_id = 1003, host =
                          10.233.9.582025-03-27T17:31:50Z INFO - site-3 replication services IPs:
                          10.233.15.2232025-03-27T17:31:50Z INFO - site-3 replication services IPs:
                          10.233.2.532025-03-27T17:31:50Z INFO - site-2 replication services IPs:
                          10.233.50.382025-03-27T17:31:50Z INFO - site-2 replication services IPs:
                          10.233.27.332025-03-27T17:31:50Z INFO - site-1 replication services IPs:
                          10.233.2.1242025-03-27T17:31:50Z INFO - site-1 replication services IPs:
                          10.233.31.1062025-03-27T17:31:51Z INFO - Replicas Site 1: 1000 1001 1002 1003 2000
                          2001 3000 30012025-03-27T17:31:51Z INFO - Local Replicas Site 1: 1000 1001 1002
                          10032025-03-27T17:31:51Z INFO - Remote Replicas Site 1: 2000 2001 3000
                          30012025-03-27T17:31:51Z INFO - Replicas Site 2: 1000 1001 2000 2001 2002
                          2003 3002 30032025-03-27T17:31:51Z INFO - Local Replicas Site 2: 2000 2001 2002
                          20032025-03-27T17:31:51Z INFO - Remote Replicas Site 2: 1000 1001 3002
                          30032025-03-27T17:31:51Z INFO - Replicas Site 3: 1002 1003 2002 2003 3000
                          3001 3002 30032025-03-27T17:31:51Z INFO - Local Replicas Site 3: 3000 3001 3002
                          30032025-03-27T17:31:51Z INFO - Remote Replicas Site 3: 1002 1003 2002
                          20032025-03-27T17:31:51Z INFO -
                          ****************************************************************************************************2025-03-27T17:31:51Z INFO - END PHASE 0: Collecting Site
                          information2025-03-27T17:31:51Z INFO -
                          ****************************************************************************************************2025-03-27T17:31:51Z INFO - Ended timer PHASE 0:
                        17430967112025-03-27T17:31:52Z INFO - PHASE 0 took: 00 hr. 00 min. 42
                        sec.Should users be recovered from site-1? (yes/no/exit)? yes2025-03-27T17:32:09Z INFO - Recovering users from site-1 (Site 1)2025-03-27T17:32:09Z INFO - Recovering users to site-2 (Site 2)DO YOU WANT TO PROCEED (yes/no/exit)? yesARE YOU SURE (yes/no/exit)? yes2025-03-27T17:32:18Z INFO - MAIN_NDBSQLD_LOCAL_POD_ID =
                        02025-03-27T17:32:18Z INFO - MAIN_NDBSQLD_LOCAL_POD =
                        ndbmysqld-02025-03-27T17:32:18Z INFO - MAIN_NDBSQLD_LOCAL_SERVER_ID =
                        20002025-03-27T17:32:18Z INFO - MAIN_NDBSQLD_MATE_POD_ID = 02025-03-27T17:32:18Z INFO - MAIN_NDBSQLD_MATE_POD =
                        ndbmysqld-02025-03-27T17:32:18Z INFO - MAIN_NDBSQLD_MATE_HOST =
                        10.233.41.52025-03-27T17:32:18Z INFO - MAIN_NDBSQLD_MATE_SERVER_ID =
                        10002025-03-27T17:32:18Z INFO - DBTIER_QUERY_POD has
                          been set to ndbmysqld-0...2025-03-27T17:32:18Z INFO - Started timer PHASE 1:
                        17430967382025-03-27T17:32:18Z INFO -
                          ****************************************************************************************************2025-03-27T17:32:18Z INFO - BEGIN PHASE 1: Run sanity
                        checks2025-03-27T17:32:18Z INFO -
                          ****************************************************************************************************2025-03-27T17:32:18Z INFO - Running sanity checks...2025-03-27T17:32:18Z INFO - Testing database connectivity to remote NDB
                          Cluster...2025-03-27T17:32:18Z INFO - Should be able to connect from site-2 (2000)
                          to site-1, 1000 (10.233.41.5) - PASSED2025-03-27T17:32:19Z INFO - Should be able to connect from site-2 (2001)
                          to site-1, 1001 (10.233.58.89) - PASSED2025-03-27T17:32:19Z INFO - Tests for database connectivity to remote NDB Cluster finished2025-03-27T17:32:19Z INFO - Sanity checks completed2025-03-27T17:32:19Z INFO - Sanity tests PASSED2025-03-27T17:32:19Z INFO -
                          ****************************************************************************************************2025-03-27T17:32:19Z INFO - END PHASE 1: Run sanity
                        checks2025-03-27T17:32:19Z INFO -
                          ****************************************************************************************************2025-03-27T17:32:19Z INFO - Ended timer PHASE 1:
                        17430967392025-03-27T17:32:19Z INFO - PHASE 1 took: 00 hr. 00 min. 01
                        sec.2025-03-27T17:32:19Z INFO - Started timer PHASE 2:
                        17430967392025-03-27T17:32:19Z INFO -
                          ****************************************************************************************************2025-03-27T17:32:19Z INFO - BEGIN PHASE 2: Get users2025-03-27T17:32:19Z INFO -
                          ****************************************************************************************************2025-03-27T17:32:19Z INFO - site-1 users:    'mysql.infoschema'@'localhost'    'mysql.session'@'localhost'    'mysql.sys'@'localhost'    'nrfApplicationUsr'@'%'    'nrfPrivilegedUsr'@'%'    'occnerepluser'@'%'    'occneuser'@'%'    'root'@'localhost'2025-03-27T17:32:20Z INFO - site-2 users:    'mysql.infoschema'@'localhost'    'mysql.session'@'localhost'    'mysql.sys'@'localhost'    'occnerepluser'@'%'    'occneuser'@'%'    'root'@'localhost'2025-03-27T17:32:20Z INFO -
                          ****************************************************************************************************2025-03-27T17:32:20Z INFO - END PHASE 2: Get users2025-03-27T17:32:20Z INFO -
                          ****************************************************************************************************2025-03-27T17:32:20Z INFO - Ended timer PHASE 2:
                        17430967402025-03-27T17:32:20Z INFO - PHASE 2 took: 00 hr. 00 min. 01
                        sec.2025-03-27T17:32:20Z INFO - Started timer PHASE 3:
                        17430967402025-03-27T17:32:20Z INFO -
                          ****************************************************************************************************2025-03-27T17:32:20Z INFO - BEGIN PHASE 3:
                          Compare users2025-03-27T17:32:20Z INFO -
                          ****************************************************************************************************2025-03-27T17:32:20Z INFO - Users missing from site-2:    'nrfApplicationUsr'@'%'    'nrfPrivilegedUsr'@'%'2025-03-27T17:32:20Z INFO -
                          ****************************************************************************************************2025-03-27T17:32:20Z INFO - END PHASE 3:
                          Compare users2025-03-27T17:32:20Z INFO -
                          ****************************************************************************************************2025-03-27T17:32:20Z INFO - Ended timer PHASE 3:
                        17430967402025-03-27T17:32:20Z INFO - PHASE 3 took: 00 hr. 00 min. 00
                        sec.2025-03-27T17:32:20Z INFO - Started timer PHASE 4:
                        17430967402025-03-27T17:32:20Z INFO -
                          ****************************************************************************************************2025-03-27T17:32:20Z INFO - BEGIN PHASE 4: Generate CREATE USER and GRANT
                          commands2025-03-27T17:32:20Z INFO -
                          ****************************************************************************************************2025-03-27T17:32:21Z INFO - MySQL queries:    SET sql_log_bin=OFF;    CREATE USER `nrfApplicationUsr`@`%` IDENTIFIED
                          WITH 'caching_sha2_password' AS
                          0x24412430303524252316687753087A713B2C664C206221215F0B715643687A2F64725639724B6458586E796758314F786F4A64314B36506D46586172366156584B5842715643
                          REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK PASSWORD HISTORY
                          DEFAULT PASSWORD REUSE INTERVAL DEFAULT PASSWORD REQUIRE CURRENT
                          DEFAULT;    GRANT USAGE ON *.* TO `nrfApplicationUsr`@`%`;    GRANT NDB_STORED_USER ON *.* TO `nrfApplicationUsr`@`%` WITH GRANT
                          OPTION;    GRANT SELECT, INSERT, UPDATE, DELETE, LOCK TABLES, EXECUTE ON
                          `nrfApplicationDB`.* TO `nrfApplicationUsr`@`%`;    GRANT SELECT ON `replication_info`.* TO
                        `nrfApplicationUsr`@`%`;    CREATE USER `nrfPrivilegedUsr`@`%` IDENTIFIED
                          WITH 'caching_sha2_password' AS
                          0x244124303035244B3121197F480F0172633E64525371383B7B7741524A367267786D447333773645394967342E4831776A6836485131314131502E30385130794D54494A5931
                          REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK PASSWORD HISTORY
                          DEFAULT PASSWORD REUSE INTERVAL DEFAULT PASSWORD REQUIRE CURRENT
                          DEFAULT;    GRANT USAGE ON *.* TO `nrfPrivilegedUsr`@`%`;    GRANT NDB_STORED_USER ON *.* TO `nrfPrivilegedUsr`@`%` WITH GRANT
                          OPTION;    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE
                          TEMPORARY TABLES, LOCK TABLES, EXECUTE ON `nrfApplicationDB`.* TO
                          `nrfPrivilegedUsr`@`%`;    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, CREATE
                          TEMPORARY TABLES, LOCK TABLES, EXECUTE ON `nrfNetworkDB`.* TO
                          `nrfPrivilegedUsr`@`%`;    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, CREATE
                          TEMPORARY TABLES, LOCK TABLES, EXECUTE ON
                          `ocnrf_commonConfigurationDB_use1az2`.* TO
                        `nrfPrivilegedUsr`@`%`;    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, CREATE
                          TEMPORARY TABLES, LOCK TABLES, EXECUTE ON
                          `ocnrf_commonConfigurationDB_use2az1`.* TO
                        `nrfPrivilegedUsr`@`%`;    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, CREATE
                          TEMPORARY TABLES, LOCK TABLES, EXECUTE ON
                          `ocnrf_commonConfigurationDB_usw2az1`.* TO
                        `nrfPrivilegedUsr`@`%`;    SET sql_log_bin=ON;2025-03-27T17:32:21Z INFO -
                          ****************************************************************************************************2025-03-27T17:32:21Z INFO - END PHASE 4: Generate CREATE USER and GRANT
                          commands2025-03-27T17:32:21Z INFO -
                          ****************************************************************************************************2025-03-27T17:32:21Z INFO - Ended timer PHASE 4:
                        17430967412025-03-27T17:32:21Z INFO - PHASE 4 took: 00 hr. 00 min. 01
                        sec.2025-03-27T17:32:21Z INFO - Started timer PHASE 5:
                        17430967412025-03-27T17:32:21Z INFO -
                          ****************************************************************************************************2025-03-27T17:32:21Z INFO - BEGIN PHASE 5: Run CREATE USER and GRANT
                          commands2025-03-27T17:32:21Z INFO -
                          ****************************************************************************************************2025-03-27T17:32:21Z INFO - SET sql_log_bin=OFF; CREATE USER
                          `nrfApplicationUsr`@`%` IDENTIFIED WITH 'caching_sha2_password' AS
                          0x24412430303524252316687753087A713B2C664C206221215F0B715643687A2F64725639724B6458586E796758314F786F4A64314B36506D46586172366156584B5842715643
                          REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK PASSWORD HISTORY
                          DEFAULT PASSWORD REUSE INTERVAL DEFAULT PASSWORD REQUIRE CURRENT DEFAULT;
                          GRANT USAGE ON *.* TO `nrfApplicationUsr`@`%`; GRANT NDB_STORED_USER ON
                          *.* TO `nrfApplicationUsr`@`%` WITH GRANT OPTION; GRANT SELECT, INSERT,
                          UPDATE, DELETE, LOCK TABLES, EXECUTE ON `nrfApplicationDB`.* TO
                          `nrfApplicationUsr`@`%`; GRANT SELECT ON `replication_info`.* TO
                          `nrfApplicationUsr`@`%`; CREATE USER `nrfPrivilegedUsr`@`%` IDENTIFIED
                            WITH 'caching_sha2_password' AS
                          0x244124303035244B3121197F480F0172633E64525371383B7B7741524A367267786D447333773645394967342E4831776A6836485131314131502E30385130794D54494A5931
                          REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK PASSWORD HISTORY
                          DEFAULT PASSWORD REUSE INTERVAL DEFAULT PASSWORD REQUIRE CURRENT DEFAULT;
                          GRANT USAGE ON *.* TO `nrfPrivilegedUsr`@`%`; GRANT NDB_STORED_USER ON *.*
                          TO `nrfPrivilegedUsr`@`%` WITH GRANT OPTION; GRANT SELECT, INSERT, UPDATE,
                          DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES,
                          EXECUTE ON `nrfApplicationDB`.* TO `nrfPrivilegedUsr`@`%`; GRANT SELECT,
                          INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, CREATE TEMPORARY TABLES, LOCK
                          TABLES, EXECUTE ON `nrfNetworkDB`.* TO `nrfPrivilegedUsr`@`%`; GRANT
                          SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, CREATE TEMPORARY
                          TABLES, LOCK TABLES, EXECUTE ON `ocnrf_commonConfigurationDB_use1az2`.* TO
                          `nrfPrivilegedUsr`@`%`; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE,
                          DROP, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE ON
                          `ocnrf_commonConfigurationDB_use2az1`.* TO `nrfPrivilegedUsr`@`%`; GRANT
                          SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, CREATE TEMPORARY
                          TABLES, LOCK TABLES, EXECUTE ON `ocnrf_commonConfigurationDB_usw2az1`.* TO
                          `nrfPrivilegedUsr`@`%`; SET sql_log_bin=ON;2025-03-27T17:32:23Z INFO -
                          ****************************************************************************************************2025-03-27T17:32:23Z INFO - END PHASE 5: Run CREATE USER and GRANT
                          commands2025-03-27T17:32:23Z INFO -
                          ****************************************************************************************************2025-03-27T17:32:23Z INFO - Ended timer PHASE 5:
                        17430967432025-03-27T17:32:23Z INFO - PHASE 5 took: 00 hr. 00 min. 02
                        sec.2025-03-27T17:32:23Z INFO - Users created in site-22025-03-27T17:32:23Z INFO - Ended timer dbtuser:
                        17430967432025-03-27T17:32:23Z INFO - dbtuser took: 00 hr. 01 min. 14
                        sec.2025-03-27T17:32:23Z INFO - dbtuser completed
                        successfully$