4

In a MySQL cluster I have three hosts, one with a manager node, and the other two are each both a data node and sql node. Connecting to the manager is possible, however only as [ndbd] and not [mysqld]... Meaning they connect to the manager as data nodes but not as sql nodes. Everything looks as it should other than the "not connected" part, and I receive no error messages. So my question is why is the manager node recognizing each machine as only a data node and not as mysql node as well?

Below you can see the ndb_mgm cluster configuration followed by the contents of config.ini:


    Cluster Configuration
    ---------------------
    [ndbd(NDB)]     2 node(s)
    id=2     @10.0.40.105    (mysql-5.5.25 ndb-7.2.7, Nodegroup: 0, Master)
    id=3     @10.0.40.100    (mysql-5.5.25 ndb-7.2.7, Nodegroup: 0)

    [ndb_mgmd(MGM)] 1 node(s)
    id=1     @10.0.40.119    (mysql-5.5.25 ndb-7.2.7)

    [mysqld(API)]   2 node(s)
    id=4 (not connected, accepting connect from any host)
    id=5 (not connected, accepting connect from any host)


config.ini:

    [ndbd default]
    # Options affecting ndbd processes on all data nodes:
    NoOfReplicas=2    # Number of replicas

    [tcp default]
    # TCP/IP options:

    [ndb_mgmd]
    # Management process options:
    hostname=10.0.40.119          # Hostname or IP address of MGM node
    datadir=/var/lib/mysql-cluster  # Directory for MGM node log files
    NodeId=1

    [ndbd]
    # Options for data node-1:
                                    # (one [ndbd] section per data node)
    hostname=10.0.40.105            # Hostname or IP address
    datadir=/usr/local/mysql/data   # Directory for this data node's data files
    NodeId=2

    [ndbd]
    # Options for data node-2:
    hostname=10.0.40.100           # Hostname or IP address
    datadir=/usr/local/mysql/data   # Directory for this data node's data files
    NodeId=3

    #one [mysqld] per storage node
    [mysqld]
    [mysqld]


/etc/my.cnf:

    [mysqld]
    ndbcluster
    ndb-connectstring=10.0.40.119

    [mysql_cluster]
    ndb-connectstring=10.0.40.119


ps -ef | grep mysqld | grep -v grep

Output of: ps -ef | grep mysqld | grep -v grep

sswahn
  • 81
  • 1
  • 6

2 Answers2

4

So the solution was the conflicting myslqd. Apparently mysql has a mysqld and mysql cluster has a mysqld and they were conflicting or I was running the wrong one. In the end I uninstalled mysql and reinstalled mysql cluster and it worked perfectly. Big thanks to RolandoMySQLDBA for helping me troubleshoot this issue.

sswahn
  • 81
  • 1
  • 6
0

/* This query will return number of not running nodes , returns 0 incase of all nodes are running*/

SELECT 
  @total := 
  (SELECT 
    VARIABLE_VALUE 
  FROM
    information_schema.`GLOBAL_STATUS` 
  WHERE VARIABLE_NAME = 'NDB_NUMBER_OF_DATA_NODES') AS `Total`,
  @running := 
  (SELECT 
    VARIABLE_VALUE 
  FROM
    information_schema.`GLOBAL_STATUS` 
  WHERE VARIABLE_NAME = 'NDB_NUMBER_OF_READY_DATA_NODES') AS `Running`,
  @total - @running AS `Nodes_Not_Running` ;

What does this query returns?

Only %Ndb_number_of_ready_data_nodes% out of %Ndb_number_of_data_nodes% data nodes are running. View which data nodes are unavailable by running ndb_mgm -e show

Mahesh Patil
  • 3,078
  • 2
  • 17
  • 23