MySQL Cluster 7.3 GA – Includes MySQL Cluster Auto-Installer

MySQL Cluster 7.3 has just been declared Generally Available (and with it the new MySQL Cluster Auto-Installer) – download it from here.

Deploying a well configured cluster has just got a lot easier! Oracle have released a new auto-installer/configurator for MySQL Cluster that makes the processes extremely simple while making sure that the cluster is well configured for your application. A single command launches the web-based wizard which then steps you through configuring the cluster; to keep things even simpler, it will automatically detect the resources on your target machines and use these results together with the type of workload you specify in order to determine values for the key configuration parameters.

Tutorial Video

Before going through the detailed steps, here’s a demonstration of the auto-installer in action (note that this is actually an earlier version but the idea is the same)…

Downloading and running the wizard

The software can be downloaded as part of the MySQL Cluster package from the MySQL Cluster Download page. To run on Windows, just double click setup.bat – note that if you installed from the MSI and didn’t change the install directory then this will be located somewhere like C:Program Files (x86)MySQLMySQL Cluster 7.3. On Linux, just run ndb_setup from the bin folder.

If you launch the installer from a desktop environment then the first page of the wizard will automatically be opened in your web browser, if not then just browse to the URL that is displayed on the command line.

Creating your cluster

Figure 1 Specify hosts and application type

After the initial splash-screen you’re presented with the page shown in Figure 1 where you specify the list of servers that will form part of the cluster.
You also get to specify what “type” of cluster you want; if you’re experimenting for the first time then it’s probably safest to stick with “Simple testing” but for a production system you’d want to specify the application type and query profile, i.e. write-intensive.

Figure 2 Auto-discovery of host resources

On the next page (Figure 2), you will see the wizard attempt to auto-detect the resources on your target machines. If this fails (e.g. if you don’t have an accessible SSH server on the target hosts) then you can enter the data manually. You can also overwrite the resource-values – for example, if you don’t want the cluster to use up a big share of the memory on the target systems then just overwrite the amount of memory.

It’s also on this page that you can specify where the MySQL Cluster software is stored on each of the hosts (if the defaults aren’t correct) – this should be the path to where you extracted the MySQL Cluster tar-ball file – as well as where the data (and configuration files) should be stored. You can just overwrite the values or select multiple rows and hit the “edit” button.

Figure 3 Review Cluster topology

The following page (Figure 3) presents you with a default set of nodes (processes) and how they’ll be distributed across all of the target hosts – if you’re happy with the proposal then just advance to the next page.

Alternatively, you can add extra nodes, move nodes from one host to another (just drag and drop), delete nodes or change a node from one type to another.

Figure 4 Review configuration parameters

On the next screen (Figure 4) you’re presented with some of the key configuration parameters that have been configured (behind the scenes, the installer sets many more) that you might want to override; if you’re happy then just progress to the next screen. If you do want to make any changes then make them here before continuing. Note that you can enable the advanced configuration option here in order to view/modify more parameters.

Figure 5 Deploy the Cluster

With the click of a button, the final screen (Figure 5) lets you deploy (copy the correct configuration settings to the hosts and create the directory structures) and start the Cluster.

If you prefer or need to start the processes manually, this page also shows you the commands that you’d need to run (as well as the configuration files if you need to create them manually).

A traffic light display shows the various Cluster nodes (processes) coming into service.

Figure 6: Confirm that all nodes are running

Finally, you can confirm that all of the processes (nodes) are up and running (note that any API slots that don’t have MySQL Servers using them won’t show as running – that’s as expected):

As always it would be great to hear some feedback especially if you’ve ideas on improving it or if you hit any problems.

270 comments

I can’t find the auto installer files in the release? They are in the 7.2.8 labs release, but there is no ndb_setup file in the bin directory for this release (Linux – Generic)?

I tried copying the files out from the old install and although I managed to get the webserver to run and serve the clsuter install page, I got errors saying that certain modules weren’t available (panimiko?).

first thing to confirm is whether /usr/local/mysql/bin/ndb_mgmd is actually the correct path – does that file exist on your target machines? if not then go back a couple of screens and select the correct path.

Also confirm that the configdir exists and is writeable.

If neither of those is the problem then look for the Cluster log on the target machine for the ndb_mgmd and see if there are details of the error reported in there.

[…] new DMR 7.3.1 for MySQL Cluster. Our efforts to improve ease of use for Cluster continues, please learn more aboutm, and try out the autoinstaller. MySQL Cluster was there as a “NoSQL” database long before the term was coined, and was […]

hello certain Mr. andrew (forgive the lack of English, is tradudico by google.com).
I would like to support me on a project, I’m not a consultant, but I like MySQL and Java
Suppose I have 4 shops or stores, 4 stores devo install a MySQL server,
Why? that sometimes the internet goes, then the BD deve ser Local, at the time
the Internet comes, this report deve updates. Thus should pass on the 4 shops
devo track inventory, if A sells a product in invetario Shop 1 and decreases
in 4 shops, re deve reflect their inventory in stores or servers 4.
Question. That take devo tool? whether or Cluster MySQL Replication or tool.
Internet Connection in deve servers being on automatic. THANKS

what do you mean by checking on the other node? Looking at the output from ndb_mgm, you only have a single MySQL Server configured as part of the Cluster (running on 192.168.1.199. If you’ve run other mysqld processes then they’re not part of the Cluster and so they will not be sharing the same data.

on the final screen you’re shown the commands that are needed to manually start the Cluster – take a note of those. Rather than clicking on “Deploy and Start Cluster” click on “Deploy Cluster”. Now edit the config.ini file to set MaxNoOfAttributes and then start the Cluster using the commands you noted earlier.

After I run those lines, the server turn yellow on the auto-installer, but then they go red and off. There is no error on the terminal, but no process will start either. If I deploy and start the server, I see no troubles with it.

you should take a look at the log files. There should be a Cluster log under the data directory, under the id of the management node and there should also be node log and error file under the id of each of the data nodes (in both cases, local to the machine where that node is meant to be running).

A common error is that a firewall is stopping the data nodes communicate with the management nodes and/or each other. Try turning off the firewalls on all of the hosts to see if that fixes things.

wangxin – are you trying to connect with the URL that was displayed when you ran the setup command – if not then that’s probably your problem? You can change the server name in the URL by using the -N option when running the setup executable.

On the second main screen of the installer (the one after you’ve specified the hosts) you’re given the option of specifying where the Cluster binaries are located on each host – have you checked that this was set correctly?

I’m getting the following error on the Define Hosts page. There are two other identical server builds in the defined cluster that register as OK, while this one fails.

There were errors when connecting to remote hosts:

Host ‘mydb1.example.com’: Command `cmd.exe /c echo %OS% %PROCESSOR_ARCHITECTURE%’, running on mydb1.example.com exited with 127:
sudo: sorry, you must have a tty to run sudo
bash: cmd.exe: command not found

Press ‘OK’ to continue to the next page anyway, or ‘Cancel’ to stay at the previous page

Have you checked that you’re able to sash to that host from the one running the auto installer (using the same credentials)? If that was the first time you’d tried then run the auto installer again to see if it now works.

After opening the web browser and clicking on “create new MySQL cluster”, and getting in the “define cluster” page , I write the IP of the remote server that will hold MySQL database in the “host list” field ,but I get error which say “there were errors when connecting to the remote hosts, host 192.168.119.134: couldn’t open socket to 192.168.119.134,press’ok to continue to the next page anyway, or cancel to stay in the previous page”

if you haven’t done so already, connect to each of the target hosts using an ssh client from the machine running the auto-installer. There’s an issue which can mean that the ssh from the installer fails if you haven’t done that.

Have the binaries been extracted to “C:/NewSofts/mysql-cluster-gpl-7.3.2-winx64″ on all of the hosts that you’re trying to include in the Cluster? If not then you need to do so (or specify the correct path) as the installer will not copy the binaries accross.

i have some questions about i
1.before i install mysql cluster ，should i install mysql server 、python 、pycrypto etc
PS。The doc says if use windows msi ，these have been included
2.MySQL Cluster data directory ，Should i creat it on windows ? i haven’t found it

I’ve run on Windows 7 without issues in the past and I’ve just confirmed that using the MSI works ‘out-of-the-box’ (i.e. no need to install any extra components on a fresh Windows 8.1 install). Could it be a firewall issue?

Hi,Andreww
Sorry for the delay in responding.I try it on the windows 7,it still shows failed.and shows a error “out of the index of list”.And i have a problem with ssh.Should i install a ssh server on the local machine when i use host :127.0.0.1?

Running Auto installer with MySQL Cluster Installation Directory at /usr/sbin. however i receive under mentioned error. deploye and start cluster process reaced to 80% and this error arise. any idea where my-default.cnf should be, or how we can resolve this.
————————————————————————
Command ‘/usr/sbin/mysql_install_db –no-defaults –datadir=/root/MySQL_Cluster/53/ –basedir=/usr/sbin/’, running 10.1.254.32 exited with 1:Fatal Eroor: could not find my-default.cnf

if you compiled from source, you need to run ‘make install’ to copy the software into the correct location ready for operations.

if you are using a binary release, you must either be at the top level of the extracted archive, or pass the basedir option pointing to that location.
————————————————————————

Also make sure that you’ve already been able to manually ssh from the auto-installer machine to each of the target machines (as you need to get past the point where ssh asks you if you’re sure that you want to allow connections to these machines – the auto-installer doesn’t handle that).

Hello,
I installed cluster on Ubuntu server from *.deb package. Cd to /opt/mysql/server-5.6/bin and run ndb_setup.py It says to navigate to http://localhost:8081/welcome.html, but how to run this on external browser, e.g. server_external_ip:8081/welcome.html ?

On the page where you specify the target hosts, you also get the chance to specify the user and password that will be used for the ssh connections to all of the target machines. Have you made sure that the user you’ve specified has permissions on all of those target machines?

I’m getting the same thing Mo is getting: Command’[u’net’,’start’,’N49′]‘ returned non-zero exit status 2
when I click the “Deploy and start cluster”
If I choose the “Deploy cluster” button I get no errors.

I am doing a default install of MySQL cluster 7.3.3 win x64. I have MySQL 5.6.13 installed and operating on the same machine.

Also make sure that you’ve already been able to manually ssh from the auto-installer machine to each of the target machines (as you need to get past the point where ssh asks you if you’re sure that you want to allow connections to these machines – the auto-installer doesn’t handle that).

Thank you for your help Andrew! The default install for testing attempts to put everything on the same machine so I am sure I have read/write permissions on the directories involved. I have bitvise ssh server installed on the machine an it tests out OK with Putty with the user I am using to attempt the instal(I don’t know if it is even necessary when installing the test system on one machine).

I don’t know what SSH is, I have used mysql in the past and this new version is way different than what I am used too. I am only using it as database for one program. This is too complex for me, where can I get an older version?

if you’re used to configuring MySQL Cluster in the old way then that’s still possible – the auto-installer just presents a simpler front-end for those people not already comfortable with MySQL Cluster.

On the page after specifying the host (presumably you left it as “localhost”?), if things are working properly then you should have seen that the auto-installer automatically discovered information about the machine and chose some default paths. On my machine, I have these:MySQL Cluster Install directory: C:\Users\anmorga\Documents\mysql_loads\mysql-cluster-gpl-7.3.2-winx64\
MySQL Cluster data directory: C:\Users\anmorga\MySQL_Cluster\

what do you have?

When you get to the last page, you can click on the individual process/nodes to see what command will be executed to start the processes and what (if any) the config files look like.

After you click the button to deploy and start the Cluster, a “Starting Cluster” pop-up should appear which will update with the latest stage of the process – what’s the last message you see in there before things start to go wrong?

The Cluster log and error files are located within the cluster folders – each node has a sub-folder named after its node id. For example for my management node I have C:\Users\anmorga\MySQL_Cluster\49\ndb_49_cluster.log and C:\Users\anmorga\MySQL_Cluster\49\ndb_49_out.log – if there’s been a problem you may also see an error log in there. For one of my data nodes I have C:\Users\anmorga\MySQL_Cluster\1\ndb_1_out.log and for a MySQL Server C:\Users\anmorga\MySQL_Cluster\53\ANMORGA-GB.err

Note that you can also run setup-debug.bat rather than setup.bat which might give you some extra information.

Please let me know what you fnd so that I can comment on what to try next.

Hi Andrew,
Sorry it has taken a while to get back to you. In my frustration I have decided to simplify the MySQL installation by moving away from the Cluster version and gain some skill in the simple version first, then I will come back to Cluster some time in the future.

For everyone having trouble starting Cluster for the first time and getting [Command’[u’net’,’start’,’N49′]‘ returned non-zero exit status 2] error , try to run setup.but with right click .. run as administrator .

Doesn’t matter if user is admin , or has access to the cluster directories on HD , the issue for me was that services could not start properly and hence the error above .

I got the same issue (Command’[u’net’,’start’,’N49′]‘ returned non-zero exit status 2) for about 2 weeks now. I start .bat as administrator and the user I use is admin (with administrator rights). I had the cluster run on one machine and I am now tryin’ to update to two.

Hi Andrew. You appear to be doing a great job helping individuals, so I’m hoping you might be able to provide me some guidance. I am getting the below error while setting up MySQL Cluster on a pair of Linux servers. I’m fairly new to working with servers, so I may be overlooking something simple. We have two physical servers each running two virtual managers. The second VM of each physical is to be our database Cluster (that way if one server is off, the other steps in). The operating system is CentOS 6.5, and we can call the user ‘adminuser’. He should have full access to the system.

Note: The system is on an internal server with no internet connection.

Install Settings: Application area is ‘web application’ with medium write load. Username is ‘adminuser’ with password. Host list is the IP address of the two virtual servers. Server 1 has a management node, 2 API nodes, an SQL node, and a multi-threaded data node. Server 2 has 2 API nodes, an SQL node, and a multi-threaded data node.

Is it possible that you still have processes running from an earlier attempt to run MySQL Cluster? The error is telling us that you already have a process that’s part of the cluster with an ndb-nodeid of 1. In the auto-installer, is it using a node-id of 1 for more than one node/process?

It is possible something was hanging from a previous install. I deleted the folders, but a process could have been stuck. I restarted the system in order to clear everything out and start again.
However, I am now unable to ‘import remote host’ on the Define Host screen. I’ve tried with my adminuser and root. I was able to ssh into the other machine using the IP address and credentials. Any thoughts on how to proceed?

It does not appear any other node is using the id of 1. Each node has a unique id.

Hi Again Andrew.
I am still (2 months later) trying to get MySQL Cluster installed and working (win 7 64 bit). When I use the setup.bat and get to ‘deploy and start cluster’ I get “Unable to create directory C:/MySQL/Data/52 on host 192.168.100.14: The requested operation failed”. I have Bitvice SSH server and Putty on all 4 machines and have tested connecting, writing, creating directories and files from each machine to the others with no problem using the user account I specify in the initial dialog.

I created all of the directories an checked the permissions and even added ‘Authenticated Users’ with full control to C:\MySQL and it’s subdirectories. It REALLY seems like a permissions problem but I have no idea what more to do. Does the user that deploys the cluster need “log on as batch job” or something like that?

I tried freeSSHd but could not connect. I found that this is a known issue on win64 when it is run as a service. I then tried copSSH and can connect and write files and create directories (the commands are unix-like as opposed to the bitvice SSH server I was using before which used dos commands, still using Putty to test).
Bombed again in the same place: “Unable to create directory C:/MySQL/Data/52 on host 192.168.100.14, but there is more to the error this time. It continues:
Command ‘uname -sp’, running on 192.168.100.14 exited with 127:
bash: uname: command not found
perhaps yet another SSH server?

Andrew, I tried openSSH, copSSH, and bitvise SSH servers with no luck. I tried freeSSHd as you suggest but selected not to have it create a service (so I have to manually start it). when I get to “deploy and start cluster” it errors out with “Unable to create directory C:/user/kyburg/MySQL_cluster/52/ on host 192.168.100.14:[Errno 13] Permission denied”

I can use putty, log on with the same account I am providing the setup.bat, create the directory without a problem. I rerun the install and it stops at the same place with the same error.

Hi Andrew, I am trying to install the mysql CGE 7.3 on a Win 2012 Server 64bit, downloaded and extracted all packages. Double-Clicking setup.bat starts the browser and presents welcome page. Clicking on “Create new Cluster” jumps to the next page, but this page is simply EMPTY, no wizard is showing up. Navigating manually to the page as suggested brings the same result. No error messages in browser or DOS window opened by the setup, no windows events. How can I fix this problem? I am using IE10 and already minimized security settings, deactivated Win-Firewall, all without any luck. Still second page after clicking “Create new Cluster” jumps to page called “content.html”, but there is no wizard showing up, just the blue frame and “Oracle Cluster Installer” heading, no content 🙁
Thanks for your support

Hi Andrew,
thanks for your quick feedback. Indeed IE on MS-Server 2012 seems very restrictive by default. I downloaded FF and quickly checked that the wizard is starting properly. It worked, so I will soon continue with the setup. Thanks for your support!
Wolfgang.

Hi Andrew,
I now managed to start the installer and configure the cluster for testing purposes as suggested in the various documents. Finally upon deploying the cluster I receive an error “Command ‘[u’net’, ‘start’, ‘N49′]’ returned non-zero exit status 2”. This is similar to the problem posted by Mohammad above. I wonder whether there is a solution for this problem. I am also running the cluster on a single host 127.0.0.1, so missing SSH shouldn’t be a problem. Thanks again for your support!

For everyone having trouble starting Cluster for the first time and getting [Command’[u’net’,’start’,’N49′]‘ returned non-zero exit status 2] error , try to run setup.but with right click .. run as administrator .

Hi Andrew, I now ran the setup as local Server Administrator and ran into the same problem mentioned above. By looking into the Windows Event Log I found the following entry related to the start of the N49 service: “Directory ‘C:/Program’ specified with –configdir does not exist. Either create it or pass the path to an already existing directory..”. I guess it might have something to do with the fact, that the installation directory contains whitespaces (i.e. “Program Files” or “MySql Cluster 7.3”). Any help how to fix this is highly appreciated!

Hi Andrew, in the “Define Hosts” section of the installer I pasted the cluster install and cluster data directory name copied from the windows explorer (the installer didn’t detect them automatically). If these directories contain whitespaces, then the deployment works but the cluster services do not start. I didn’t try to escape the whitespaces. I tried to use quotes around the directory path but then the deployment already fails. Therefore I moved removed the whitespaces from the installation directory and restarted the setup, which worked out fine. Cluster is now up and running. Am I right with the assumption, that with the open source cluster 7.3.4 the cluster management is command line based, whereas the commercial CGE ships with a management GUI?

If using the community (open source) version of MySQL Cluster then you use command-line tools like ndb_mgm to manage (and monitor) MySQL Cluster. If using the commercial version then you have access to 2 extra tools:

MySQL Cluster Manager – still command-line based but has higher level cluster-wide operations (for example, a single command to upgrade every node in the cluster

MySQL Enterprise Monitor – A MySQL monitoring GUI that also works for MySQL Cluster

Thanks for your very valid feedback and support Andrew! MySql 5.6.15-ndb-7.3.4 is now up and running and I will read through the documentation how to manage and control the configuration (options/parameters).

On a windows system try to use / instead of the automatically selected \ in all file paths, run setup_debug.exe as admininstrator and delete all services before you try again with the new paths (e.g. sc stop n1, sc delte n1)

hello,
I am beginner of mysql cluster and using auto installer on windows OS.
I am facing a problem in the second window (define hosts), failed to connect of all hosts except my machine. the error msg “Error: couldn’t open socket to server ip….”

I have 2 Laptops with Mysql server and workbench installed. Theses laptops are in same work group.
I want to use cluster. I followed the steps you described above.
I configure cluster in Laptop A(127.0.0.1), Like in your figure2, My Laptop B IP is failed to discover.
I guess, this is very basic question.

1) How can I change my ip 127.0.0.1
2) How should I enable remote access to Laptop B?

Strange things happen.
From my home, I replaced 127.0.0.1 to my laptop IP address. It worked fine.
When I try the same from my office, it doesn’t.
Since it is not working. I asked my system admin to fix the IP address. Now the IP address for my two laptops are fixed. but still it is nor fetching.

You need to have an SSH server running on the target machines (those that will be part of the Cluster); freesshd is an example of an SSH server for Windows; other operating systems (such as Linux) normally have one built in. You then need an ssh client on the machine that you’re running the auto-installer from so that you can create an ssh connection to the target machines (it will ask you permission the first time you connect and you need to get that out of the way before using the auto-installer).

As you said,
I installed freesshd in target machine and Putty in my machine(in which I will use Auto installer)
I could able to connect SSH using PuTTY.
Please check the below snapshot I sent to your mail ID.
PuTTY windos shows that I am connected to target machine 10.10.122.11
But when I specify the target machine IP in Auto installer, it fails.

Did you use the same ssh username and password that you specify in the auto-installer?

The path of least resisence might be to forget about the remote connections (after all the auto-installer is meant to make things simpler rather than more complex!). Just manually fill in the details for the target machines (after the installer fails to connect) and then at the final screen, rather than hitting the “deploy and start” button, click on each node in turn and it will give you the contents of each config file as well as the commands that you can manually run on the target machines to start the cluster. Start with the management node(s); then the data nodes and finnaly the MySQL servers.

//Did you use the same ssh username and password that you specify in the auto-installer?//
In MySQL auto installer, I don’t specify Username & password. I don’t understand which username & password you are talking about. Can you please clear me if I am wrong.

//////Just manually fill in the details for the target machines (after the installer fails to connect) and then at the final screen, rather than hitting the “deploy and start” button, click on each node in turn and it will give you the contents of each config file as well as the commands that you can manually run on the target machines to start the cluster. Start with the management node(s); then the data nodes and finnaly the MySQL servers.//////

Where do you ask me to fill the details manually? in Auto installer? or in config file?
How to start nodes individuall?. That doesn’t work.
I am struggling with this issue for long time. Can you please come online to fix the problem.

In order for the autoinstaller to interact with the target machines, it needs to use ssh to connect to them. By default it uses ssh certificates that have already been set up on the target machines and the one running the auto-installer. By default, you won’t have those set up. Rather than detailing how to set them up, if you’re new to ssh then it’s easier to just check the box to say that you want to use username/password credentials instead and provide the username/password for the user on the target machines that you would like the MySQL Cluster processes to run under; before doing that, confirm that you can manually ssh to the target machines (from the one that will run the autoinstaller).

Yes, I can manually ssh to the target machines (from the one that will run the autoinstaller).

// if you’re new to ssh then it’s easier to just check the box to say that you want to use username/password credentials instead and provide the username/password for the user on the target machines that you would like the MySQL Cluster processes to run under;//

Where to check the box? In MySQL Autoinstaller? I could not see the check box. Please help

I have a question, what is the correct directory where you have to configure (MySQL Cluster install directory).

I am using CentOS 6.5 as OS

The directory where the Autoinstaller was found / usr / bin / ndb_setup.py. But soon got an error when starting the Cluster ndb_mgmd saying is not found. However I located this file in the / usr / sbin / ndb_mgmd.

This is where my doubt correct to be configured in MySQL Cluster AutoInstaller directory.

I was hoping that the blog post (and video) would provide the details needed – are any steps unclear?

Yes, you can run the MySQL Servers and Data Nodes on the same machines *but* if you want fault tolerance then the management node(s) should run on a 3rd machine – see this blog post for the reason why.

I have the issue : “Cannot locate ndb_mgmd in /usr/mysql-cluster/[‘bin’, ‘scripts’, ”, ‘../scripts’] on host 10.0.20.120″
I executed the auto installer from a windows on 4 linux centos 6 (10.0.20.120,10.0.20.121,10.0.20.122,10.0.20.123).
You said “extract the tarball in the instalation directory” so I extracted the content of the windows archive (tell me if i wrong) in /usr/mysql-cluster but still don’t work.
Any idea ?

Thx for the answer.
Like I said, I already try extract the tar ball (http://dev.mysql.com/downloads/file.php?id=451711) and I specified the link : /usr/mysql-cluster/ during the installation, but still have the issue.
The ls of my directory (/usr/mysql-cluster/) :
bin database lib README setup-debug.bat support-files
COPYING docs my-default.ini scripts share
data include mysql-test setup.bat sql-bench

Thanx again.
So I downloaded the source code “Generic Linux (Architecture Independent), Compressed TAR Archive”
but in scripts/ there is not a ndb_mgmd.
Same for the download Generic Linux “Linux – Generic (glibc 2.5) (x86, 64-bit), Compressed TAR Archive”.
Sorry to ask you that but can you give me the link of the tar ball pls ?

Hello,
i tried to install MySQL cluster on 4 Windows hosts without success.
user on all hosts is the same with the same password.
hosts have different name
I tried with path / or \ in the name too.
first issue is discovery recognize only the host where I execute the setup.bat file.
If I set manully the other 3, after it is not able to connect with them.
I also installed freesshd sw and started it as service, no user/password.
firewall is disabled on all hosts. each host ping the other hosts.
what’ wrong ?
windows server 2008 R2 datacenter
Mysql cluster 7.3.5

1) Perhaps the ssh user you’re specifying doesn’t have write permissions for C:/user/kyburg/MySQL_cluster/52/ on host 10.10.xx.xxx?
2) Are you able to ssh using pidgin to 10.10.122.xxx or do you need to configure freeSSHd to allow it?

1) Write permissions? do you mean read write access to the folder MYSQL_cluster on host 10.10.xx.xxx? It is there already. But still I get this error.
2) SSH using pidgin? I do not understand this. Can you please explain

Iam using two machines (sip servers) in ubuntu,I want to install Mysql-cluster for data-base sharing
Iam new to mysql-cluster.
Is mysql cluster should be installed in two machines and two different machines should be given different IP addresses.
I have already installed heartbeat in both the systems and given virtual Ip in both the systems.

Hi Andrew,
Please I install msi version 7.3
I install it as complete installation
it installed in “C:\Program Files\MySQL\MySQL Cluster 7.3”

please help
I want to make cluster between 2 computer “172.16.1.110 … mine” and “172.16.1.121 .. the other computer”
I follow the steps as video
but I get failed in step 2 which couldn’t open socket for the another ip

—-
1- where shall I put my database ?
2- what is the cause of exception “Note I disabled Firewall in 2 PC”
3- how can I test and deploy?

Have you makde sure that you have an SSH server on 172.16.1.121 and that the associated port can be accessed through the VPN by 172.16.1.110? To verify, use an SSH client (such as PuTTY) on 172.16.1.110 to ssh into 172.16.1.121.

It sounds as though the user account you use to ssh to the target machine doesn’t have write permissions to C:/program files/mysql/mysql cluster 7.3/share/mysql_system_tables.sql on that target machine.

Sorry, For being as a Pain
But the files take all permission in “172.16.1.121” host
and still give me the same error
unable to append file
C:/program files/mysql/mysql cluster 7.3/share/mysql_system_tables.sql
to
C:/users/heba/mysql cluster/55/tmp/install.sql
to host 172.16.1.121:
[Errno 13] Permission denied

If by client machine you mean the one running the auto-installer but will not have any of the MySQL Cluster nodes and it now has the ..55.. directory then there is a problem – those directories should only be created on the target machines (the 55 is the NodeId for one of the MySQL Cluster processes – probably one of the MySQL Servers). This would mean that you’d left localhost or the client machine’s IP address when specifying the list of target hosts in the GUI.

OK – if you’re only running the GUI from there then there should be no MySQL directories or files created on that machine. The FRM files would be created on the machine where the MySQL Server’s run. Users or applications will connect to one of the MySQL Servers and that MySQL Server would use its local FRM files to know what tables exist and communicate that to the app or mysql client command.

1- intall mysql cluster in both in the same location
2- getting mysql server in on of them ,say machine A then create Database
3- make machine B as host and machine A as client with SSH
4- Run setup.bat on machine A
5- in Gui list I should Put ip for both machines A, B
6- make machine A with management node and sql node, and machine B with api node
7- deploy

Please see those steps and say which is invailad because I totaly confused

Remove step 2 – you don’t create a database until MySQL Cluster is up and running.
Step 6 – SQL node and API nodes are different names for the same thing. The auto-installer will suggest which nodes should be located on each host – you just drag the nodes between hosts in the GUI

Sorry , BUT, it installed in the I installed it as complete installation
and it by default installed it in
(C:\Program Files\MySQL\MySQL Cluster 7.3) as I give it in (MySQL Cluster install directory
) in GUI

Hello,
Good presentation, but i have some problem with Starting Cluster and i dont know if i do somethingin wrong way.

I have use mysql-cluster-gpl-7.3.6-winx64 zip version. I’m trying to implement it on 4 linux servers, and after creating directory process, i get message “Cannot locate nbd_mgmd in /usr/local/bin/[‘bin’,’sbin’,’scripts’,”,’../scripts’] on host 192.168.x.x”

I looked on the server and it seems like no file was copied there …
I’m using root user.
Thanks for help in advance.

Thx for reply
Um yes i know its for windows, the dumb of me is that i didnt write one thing. I run windows packet on windows server machine from with i try to implement cluster on 4 linux machine. Or there is no difference about that? And i can use linux tar on windows for implementation proces?
Best regards
Lombarski Sebastian

Thx for reply
Um yes i know its for windows, the dumb of me is that i didnt write one thing. I run windows packet on windows server machine from with i try to implement cluster on 4 linux machine. Or there is no difference about that? And i can use linux tar on windows for implementation proces?
Best regards
Lombarski Sebastian

1 – doesn’t matter where you run setup.bat from
2 – Whichever host that the auto-installer chooses
3 – I can’t remember but probably not as if I recall correctly that machine wasn’t going to be part of the Cluster

On the final screen, click on the ndb_mgmd node and it will tell you where the datadir is – take a look there to see if you can find an error file – that gives a hint as to what is stopping the processes from starting correctly.

So, if I connect the first node on localhost on its machine , the second machine didn’t accept to connect with localhost
which I mean , in my expectation I have 2 sql nodes each of them connect with localhost if one of them was failed the other still can receive the data on its localhost
but in practical case I can’t see it

So, is it need another configuration?
and if no, how can I reach my aim ?

hi Andrew, it is me again
But I understand much better now
So, please help me

I use MySQL cluster
first I install msi file,then install it.
1- from cmd of windows I wrote “C:\Program Files\MySQL\MySQL Cluster 7.3\bin\mysql.exe” mysql -uroot -p.
2- create new database called with “testbd”, then create new table called with “testtable1” and insert some values in it.

3- I have 2 machine , So I installed msi on both in the same dirs .
4-I have installed freesshd on both and test connection by Putty client and it connect successfully .
5- I run setup.bat from second machine which I not created any thing on it.

6- I wrote 2 ip’s in ip list in GUI. and wrote correct username and passowrd of ssh.

7- auto-installer detect location but I change it to location which contain .frm file , which allocate on one machine only.

8-auto-installer assign 2 sql nodes , one on recent machine which I run setup.bat from it , and another sql node on the other machine which already contain .frm files

9- when I left this setting as default, it gives me an error which say
“unable to append file “” to “” in the other host errno 13 permission denied ”
even I close firewall and ssh user has all R/W permission.

10- when I change sql node to be the two nodes on the machine which I run setup.bat from , it gives no error and cluster started .

but I can scene nothing result

So,
A- which of those steps is wrong ?
B- what Shall I notice after cluster started .
I believe that I want to see the same .frm file which I created on the other machine on the recent one?

Not sure why you’re running steps 1 & 2 *before* running MySQL Cluster – you need to create your Cluster first. Personally I’d use the zip file rather than the MSI when using the auto-installer.

Step 7 – as for 1& 2, you would worry about FRM files later, once the Cluster is up and running.

Step 8 – see if you can edit the file it specifies when connection with PuTTY using the same user-id/password as you’re specifying in the auto-installer.

Once the Cluster has started, use mysql to connect to one of the mysqld’s create a table (with the ENGINE=NDB option), add some data and then confirm you can read the data back through the other mysqld.

This is likely caused by the warning you saw where there seems to have been a problem with the bootstrapping process. On the final browser screen, if you click on the ‘faulty’ MySQL Server it shows you the command and the my.cnf file that are being used – could you copy all of that and share?

But take care that
the same commands on recent machine but it run correctly

So, I think it is SSH problem
I use MobaSSH and it is playful Tool because FreeSSHD can’t open permission
I use windows 8
I sucked from it , its SSH is too complicated
So,
1-what is your opinion ?
and
2-is there another SSH server is better than those “skip bitsive because it down also” ?

I hear a lot of problems getting ssh to work properly with Windows. What I’d recommend is to manually execute the commands that are shown on the last screen on your remote machine. Trouble-shooting the ssh problems is likely to be more effort than it’s worth.

So, If I run those commands manually in the target machine.
How Can I start Clustering
Because If I trying to deploy and start cluster again
,it enforce me to stop all service which cluster start those automatically

The nodes will automatically connect to each other (they each connect to the ndb_mgmd to become part of the Cluster). The auto-installer is just a shortcut so that you don’t need to create the config files and then launch the processes manually. In your case the shortcut isn’t so short due to the ssh issue so just take the config files and commands that the auto-installer has created and run them manually.

First thanks a lot for your Patience,
Now I run the commands in the other side
and I want to create database in one host and see its affect on the other
So, I run mysql.exe which exist in bin
But, No response
So, what is the steps to make this?

hi Andrew,
I saw you helped lot people out there and thanks for such efforts.
I tried to clreate cluster using Auto Installer.
I have tried to create with 6 Ubuntu 14.04 lts(Server).
2 management node, 2 data nodes and 4 sql nodes( 2 instance).
I have 6 instance with mysql cluster binaries (“mysql-cluster-gpl-7.3.7-linux-glibc2.5-x86_64.tar”) extracted in /opt/companycluster/
I tried to create mysql cluster using windows installer “mysql-cluster-gpl-7.3.7-winx64.exe” which on complete different windows server instance.
The good part is i am able to deploy cluster successfully but still i cant start cluster .
It shows management and data nodes statrted(green) but sql nodes and api nodes red( not stopped and not connected).
It shows error while starting sql nodes so I tried to start sql nodes.command run with warning but mysql service is not started yet.
I checked the cluster still it showing management node starrted abd data node started but sql nodes not connected.
Any guess what should be the problem and where i should look for problem.

Go back and check that the “MySQL Cluster Install Dir” is set correctly – looks like the auto-installer has guessed the wrong location (should be the folder where you’ve extracted the Cluster tar ball on each machine).

My Cluster: 1 Management Node, 2 Data Node, 2 API node, database 3G with 30 tables.
Install MySQL Cluster 7.3.7 32 bit on linux 32 bit OS (i386).
I have set DataMemory = 2056M, IndexMemory=256M. All node started. But my database is large and it can not source data up.
I set DataMemory = 4096M and IndexMemory=512M. But node no start.
So I must to do cant use Memory >= 4G in Node (OS i386) and load all my data.

I have set DataMemory = 2056M, IndexMemory=256M. All nodes started. However, my database is large, and it cannot source data up.
Last week, I have a problem with my database and must restore from file *.sql (use mysqldump). But, when i restored database (by source *.sql), i encountered an error, This error detail as follow:
ndbd trying to allocate more than 4g with 32 bit.
failed to allocate nodeid for api at . Returned error: ‘No free node id found for mysqld(API)”

After, I set DataMemory = 4096M and IndexMemory=512M. However, node don’t activate.
how can i set parameter DataMemory >= 4G in Node (OS i386)?

I have set DataMemory = 2056M, IndexMemory=256M. All nodes started. However, my database is large, and it cannot source data up.
After, I set DataMemory = 4096M and IndexMemory=512M. However, node don’t activate. I encountered an error, This error detail as follow:
ndbd trying to allocate more than 4g with 32 bit.
failed to allocate nodeid for api at . Returned error: ‘No free node id found for mysqld(API)”
How can i set parameter DataMemory >= 4G in Node (OS i386)?

I want to install Mysql Cluster 7.3.7 on Windows Server 2008 R2 by using ‘http://msdlab08:8081/content.html’ ,and deploy cluster is OK.Then Start it and report error:Command ‘[u’net’, ‘start’, ‘N49′]’ returned non-zero exit status 2.
I want to start manager node manually,and report error:Could not determine which nodeid to use for this node. Specify it with –ndb-nodeid= on command line.

I get the following error when I use this command ‘scripts/mysql_install_db -–user=mysql’

FATAL ERROR: Neither host ‘manoj-Vostro-3546’ nor ‘localhost’ could be looked up with
/usr/bin/resolveip
Please configure the ‘hostname’ command to return a correct
hostname.
If you want to solve this at a later stage, restart this script
with the –force option

I tried to search thru your posts but couldn’t find this answer. Frankly you have answered quite a few questions and it’s difficult to go thru all.

Is it possible to run auto-installer on a windows machine (win 7 pro in my case) and have it setup cluster on linux machines (ubuntu 14.04 servers)? I understand that binaries must be present on linux machines and SSH access must be allowed.

Or is it just better to initiate installer on one of the linux machine that is going to be part or cluster and remotely run the setup wizard from a windows machine?

1) Probably safest – in particular if you already have mysqlds running that are using the default port (3306) – although you can override that for the new Cluster by using the ‘advanced’ mode in the auto-installer.
2) If you want High Availability then yes. Otherwise it will work with a single MySQL Server.
3) If using Windows targets then you’ll probably need to add SSH servers; if running the Installer itself on Windows then you’ll need Python.

For Cluster itself, it should come with every library it needs already statically linked in.

I install MySQL cluster 7.4 in win7, but as I follow your “manually edit MySQLCluster info”, I get the same error “cannot locate ndb_mgmd in D:/program files/MySQL/MySQL cluster 7.4/bin/[‘bin’,’sbin’,’scripts’,””,’../script] on host localhost”, even I change cluster path to root path without bin, it still report can’t find ndb_mgmd, even I add bin path to win7 system path, the error is still there, how to fix it?

thanks for your reply on win7, I can see ndb_mgmd and other cluster commands which are the result of cluster msi running default.

But now I have switched to install MySQL-5.6.24 cluster 7.4.6 in Linux, and have succeeded in start up local Manage node and local 2nd ndb node and remote 3rd ndb, but I can’t start up the SQL 4th node(MySQLD node) in the same machine of 3rd ndb, isn’t there an initial startup guide on SQL node(mysqld node)?
I have reinstalled MySQL community server 5.6 on the 3rd ndb machine, and has added the my.cnf to the file of D:\Program Files\MySQL\MySQL Server 5.6\my.ini. and also have added cluster’s connecting user in MySQL community server.
but why it can’t connect to 1st node of manage node?

isn’t MySQLD node the most important part of Cluster which offer db connection to other programs?

I recheck the ndb_mgm’s show info, it is strange that the 4th node of mysqld(API) node’s message ip doesn’t change to my 3rd ndb node’s ip.

But I over doubcle times check the /var/lib/MySQL-cluster/config.ini . the mysqld(API) node’s IP is absolutely changed to the 3rd ndb node’s ip, why ndb_mgmd can’t read the new changed ip but use the old ip?

I have 4 CentOS Linuux servers where I am planing to install MySQL NDB cluster. I want to use auto-installer and want to be able to install from my laptop (which is Windows 7).

When I download package, what platform should I select? Linux Generic or Windows?

I downloaded both packages on my laptop but not able to start auto-installer. Linux Generic one have ndb_setup.py (which asks to select application to open on windows laptop) and Windows package have setup.bat which does nothing when I double click.

When I download package, what platform should I select? Linux Generic or Windows?

-> On the Windows machine you need the Windows package and you also need the Linux package on each of the target Linux boxes. Note that you could also run the auto_installer process ndb_setup on one or your Linux boxes and then it will give the URL that you can use to access it from a browser on your Windows machine.

setup.bat which does nothing when I double click.

Note that you need to have Python installed on your Windows machine – this is one reason why you may prefer running the auto-installer process on one of the Linux boxes and then interect with it through a browser on your Windows machine.

Thanks for the reply, this is very helpful. I tried running it on one of my target host and it initiated auto-installer and ask me to open “http://localhost:8081″. I connected to target host through putty from my laptop.

would this local hosturl still work on my laptop? I think, it is referring to target machine’s localhost.

Thanks for the reply, this is very helpful. I tried running it on one of my target host and it initiated auto-installer and ask me to open “http://localhost:8081”. I connected to target host through putty from my laptop.

would this local hosturl still work on my laptop? I think, it is referring to target machine’s localhost.

Thank you for this excellent tutorial. I have one question that I do not see answered here.

What are the base requirements for a host? Do I need to have any MySql packages loaded before using the box as a host in the cluster setup host list? Or for example could I just point to an IP that has a fresh base Ubuntu server with SSH open?

Hi Andrew,
Thank you for the post.
I am going to install the cluster in windows 8 server 64 bit machine.
I have few queries:
1. All the hosts have to same configuration (win 8 server 64 bit)?
2. I have to install MySQL Cluster exe into all the hosts?
3. I have install MySQL Server before configuring the cluster or MySQL Cluster itself contains MySQL Server?
4. Any convention for cluster data dir as well as cluster installation directory.

Hi Andrew,
I don’t know anything about MySQL cluster.I want your help in my project.I have 4 servers.shall I install cluster on each machine on windows or on one machine cluster installed and others only need MySQL installed.

I am intend to install MySQL Cluster 7.5.4 on Debian using auto installer.
I have 3 dedicated servers.
These are my questions
1. Do we need to install MySQL Cluster 7.5.4 in all 3 servers before starting Auto Installer?
2. Do we need to install MySQL server on SQL node servers?

Can you specify steps to which components need to be installed in all servers before starting Auto Installer?