Hallo,
nachdem ich jetzt hier seit Tagen sitze und ich mittlerweile völlig die Krise kriege, wende ich mich nun an das Board meines Vertrauens.
Ok, erst mal meine Aggressionen die ich mittlerweile gegen mysql hege beiseite legen........done!
Ich versuche strikt nach dem mysql-Handbuch für 5.0 einen einfachen Cluster aufzusetzen.
Dabei halte ich mich so exakt wie möglich an diesen Abschnitt des Handbuchs: http://dev.mysql.com/doc/refman/5.0/en/mysql-cluster-multi-config.html
Meine Situation:
1. Rechner:
hostname: sql_plus_data_node_1
Stellt zur Verfügung:
2. Rechner:
hostname: sql_plus_data_node_2
Stellt zur Verfügung:
3. Rechner:
hostname: management_node
Stellt zur Verfügung:
Meine Konfiguration ist entsprechend simpel:
1. Rechner / hostname: sql_plus_data_node_1:
Die /etc/my.cnf:
2. Rechner / hostname: sql_plus_data_node_2:
Die /etc/my.cnf:
3. Rechner / management_node:
Die /var/lib/mysql-cluster/config.ini:
Das sieht für mich nach Handbuch / google usw. einwandfrei aus.
Also starte ich das Ganze:
3. Rechner - Management Server / hostname: management_node:
2. Rechner - SQL- Server + Data Node / hostname: sql_plus_data_node_1:
3. Rechner - SQL- Server + Data Node / hostname: sql_plus_data_node_1:
Startet soweit alles einwandfrei.
Dann starte ich die Management Console um zu prüfen, ob der Cluster am Start ist:
Ein "show" zeigt nun folgendes:
Der untere Teil
sieht ja schon mal fragwürdig aus.
Nun logge ich mich auf sql_plus_data_node_2 ein und versuche eine Tabelle zu erstellen:
Ich vermute aber mal, das dieser Fehler dadurch
ausgelöst wird.
System-infos:
- Alle OS: SLES 9
- Mysql-Versionen: 5.0
Einige relevante Anmerkungen:
1.
Wie schon erwähnt gehe ich nach Handbuch vor, das Problem an diesem *****-Ding ist, das ich zumindest schon mal eine Stelle gefunden habe, die definitiv nicht stimmt, und ich demzufolge nicht sicher bin, was da noch alles nicht stimmt:
Das mit dem Server/Max rpm ist schon mal Bullshit, weder gibt es auf der Seite ein derartiges rpm außerdem zeigt ein
2.
Beim googlen krieg ich natürlich sehr viele Hits, mit einigen Leuten die das gleiche Problem haben, leider alle ohne Lösung.
3.
Alle Rechner sind im gleichen Subnetz und DNS-Auflösung klappt von jedem Rechner aus auf jeden anderen.
Tut mir leid wenn mein Ton hier aggressiv wirkt, aber ich bin hier echt am Durchdrehen weil sich das jetzt schon über Tage zieht.
JEDER Tip ist mehr als herzlich willkommen!
EDIT:
Ist schon lustig, da probier ich tagelang dran rum, poste das Problem hier und 2 Stunden später ist es gelöst:
Obwohl alle Rechner sich gegenseitig per DNS auflösen konnten und ich es sogar vorsichtshalber noch in die /etc/hosts eingetragen, scheint das der mysql-Server in Kombination mit dem management-server eiskalt zu ignorieren.
Lustigerweise interessiert es die storage engine herzlich wenig, ob ich IP oder DNS-Namen verwenden, dieses Problem scheint NUR zwischen mysql-Server und management server aufzutreten.
Jetzt hab ich überall IPs eingetragen und es klappt.
nachdem ich jetzt hier seit Tagen sitze und ich mittlerweile völlig die Krise kriege, wende ich mich nun an das Board meines Vertrauens.
Ok, erst mal meine Aggressionen die ich mittlerweile gegen mysql hege beiseite legen........done!
Ich versuche strikt nach dem mysql-Handbuch für 5.0 einen einfachen Cluster aufzusetzen.
Dabei halte ich mich so exakt wie möglich an diesen Abschnitt des Handbuchs: http://dev.mysql.com/doc/refman/5.0/en/mysql-cluster-multi-config.html
Meine Situation:
1. Rechner:
hostname: sql_plus_data_node_1
Stellt zur Verfügung:
- SQL Server
- Data Node
2. Rechner:
hostname: sql_plus_data_node_2
Stellt zur Verfügung:
- SQL Server
- Data Node
3. Rechner:
hostname: management_node
Stellt zur Verfügung:
- Management Server
- Management Server tools zum Verbinden zum Management Server
Meine Konfiguration ist entsprechend simpel:
1. Rechner / hostname: sql_plus_data_node_1:
Die /etc/my.cnf:
Code:
[mysqld]
ndbcluster
ndb-connectstring=management_node
[NDBD]
ndb-connectstring=management_node
2. Rechner / hostname: sql_plus_data_node_2:
Die /etc/my.cnf:
Code:
[mysqld]
ndbcluster
ndb-connectstring=management_node
[NDBD]
ndb-connectstring=management_node
3. Rechner / management_node:
Die /var/lib/mysql-cluster/config.ini:
Code:
[NDBD DEFAULT]
NoOfReplicas=2 # Number of replicas
DataMemory=80M # How much memory to allocate for data storage
IndexMemory=18M # How much memory to allocate for index storage
[TCP DEFAULT]
portnumber=2202
[NDB_MGMD]
hostname=management_node
datadir=/var/lib/mysql-cluster/data
[NDBD]
hostname=sql_plus_data_node_1
datadir=/var/lib/mysql-data-node
[NDBD]
hostname=sql_plus_data_node_2
datadir=/var/lib/mysql-data-node
[MYSQLD]
hostname=sql_plus_data_node_1
[MYSQLD]
hostname=sql_plus_data_node_2
Das sieht für mich nach Handbuch / google usw. einwandfrei aus.
Also starte ich das Ganze:
3. Rechner - Management Server / hostname: management_node:
Code:
ndb_mgmd -f /var/lib/mysql-cluster/config.ini
2. Rechner - SQL- Server + Data Node / hostname: sql_plus_data_node_1:
Code:
mysqld_safe --user=mysql &
ndbd --initial
3. Rechner - SQL- Server + Data Node / hostname: sql_plus_data_node_1:
Code:
mysqld_safe --user=mysql &
ndbd --initial
Startet soweit alles einwandfrei.
Dann starte ich die Management Console um zu prüfen, ob der Cluster am Start ist:
Code:
ndb_mgm
Ein "show" zeigt nun folgendes:
Code:
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @172.18.154.26 (Version: 5.0.45, starting, Nodegroup: 0)
id=3 @172.18.154.15 (Version: 5.0.45, starting, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 (Version: 5.0.45)
[mysqld(API)] 2 node(s)
id=4 (not connected, accepting connect from sql_plus_data_node_1)
id=5 (not connected, accepting connect from sql_plus_data_node_2)
Der untere Teil
Code:
id=4 (not connected, accepting connect from sql_plus_data_node_1)
id=5 (not connected, accepting connect from sql_plus_data_node_2)
sieht ja schon mal fragwürdig aus.
Nun logge ich mich auf sql_plus_data_node_2 ein und versuche eine Tabelle zu erstellen:
Code:
mysql -u root -p
mysql> use test;
Database changed
mysql> show tables;
Empty set, 1 warning (0.00 sec)
mysql> create table fooo(i int) ENGINE=NDB;
ERROR 157 (HY000): Could not connect to storage engine
Ich vermute aber mal, das dieser Fehler dadurch
Code:
id=4 (not connected, accepting connect from sql_plus_data_node_1)
id=5 (not connected, accepting connect from sql_plus_data_node_2)
ausgelöst wird.
System-infos:
- Alle OS: SLES 9
- Mysql-Versionen: 5.0
Einige relevante Anmerkungen:
1.
Wie schon erwähnt gehe ich nach Handbuch vor, das Problem an diesem *****-Ding ist, das ich zumindest schon mal eine Stelle gefunden habe, die definitiv nicht stimmt, und ich demzufolge nicht sicher bin, was da noch alles nicht stimmt:
RPMs are also available for both 32-bit and 64-bit Linux platforms. For a MySQL Cluster, four RPMs are required:
#
The Server RPM (for example, MySQL-server-5.0.46-0.glibc23.i386.rpm), which supplies the core files needed to run a MySQL Server.
#
The Server/Max RPM (for example, MySQL-Max-5.0.46-0.glibc23.i386.rpm), which provides a MySQL Server binary with clustering support.
Das mit dem Server/Max rpm ist schon mal Bullshit, weder gibt es auf der Seite ein derartiges rpm außerdem zeigt ein
Code:
show engines;
Code:
+------------+---------+----------------------------------------------------------------+
| Engine | Support | Comment |
+------------+---------+----------------------------------------------------------------+
| MyISAM | DEFAULT | Default engine as of MySQL 3.23 with great performance |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables |
| InnoDB | YES | Supports transactions, row-level locking, and foreign keys |
| BerkeleyDB | NO | Supports transactions and page-level locking |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) |
| EXAMPLE | YES | Example storage engine |
| ARCHIVE | YES | Archive storage engine |
| CSV | YES | CSV storage engine |
| ndbcluster | YES | Clustered, fault-tolerant, memory-based tables |
| FEDERATED | YES | Federated MySQL storage engine |
| MRG_MYISAM | YES | Collection of identical MyISAM tables |
| ISAM | NO | Obsolete storage engine |
+------------+---------+----------------------------------------------------------------+
2.
Beim googlen krieg ich natürlich sehr viele Hits, mit einigen Leuten die das gleiche Problem haben, leider alle ohne Lösung.
3.
Alle Rechner sind im gleichen Subnetz und DNS-Auflösung klappt von jedem Rechner aus auf jeden anderen.
Tut mir leid wenn mein Ton hier aggressiv wirkt, aber ich bin hier echt am Durchdrehen weil sich das jetzt schon über Tage zieht.
JEDER Tip ist mehr als herzlich willkommen!
EDIT:
Ist schon lustig, da probier ich tagelang dran rum, poste das Problem hier und 2 Stunden später ist es gelöst:
Obwohl alle Rechner sich gegenseitig per DNS auflösen konnten und ich es sogar vorsichtshalber noch in die /etc/hosts eingetragen, scheint das der mysql-Server in Kombination mit dem management-server eiskalt zu ignorieren.
Lustigerweise interessiert es die storage engine herzlich wenig, ob ich IP oder DNS-Namen verwenden, dieses Problem scheint NUR zwischen mysql-Server und management server aufzutreten.
Jetzt hab ich überall IPs eingetragen und es klappt.