Enable ndbcluster support, fix a couple of small issues
This commit is contained in:
		
							parent
							
								
									20564e52c0
								
							
						
					
					
						commit
						e9e34fccd8
					
				
							
								
								
									
										15
									
								
								my.cnf
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								my.cnf
									
									
									
									
									
								
							| @ -6,6 +6,21 @@ user=mysql | ||||
| # clients (those using the mysqlclient10 compatibility package). | ||||
| old_passwords=1 | ||||
| 
 | ||||
| # To allow mysqld to connect to a MySQL Cluster management daemon, uncomment | ||||
| # these lines and adjust the connectstring as needed. | ||||
| #ndbcluster | ||||
| #ndb-connectstring="nodeid=4;host=localhost:1186" | ||||
| 
 | ||||
| [mysqld_safe] | ||||
| log-error=/var/log/mysqld.log | ||||
| pid-file=/var/run/mysqld/mysqld.pid | ||||
| 
 | ||||
| [ndbd] | ||||
| # If you are running a MySQL Cluster storage daemon (ndbd) on this machine, | ||||
| # adjust its connection to the management daemon here. | ||||
| # Note: ndbd init script requires this to include nodeid! | ||||
| connect-string="nodeid=2;host=localhost:1186" | ||||
| 
 | ||||
| [ndb_mgm] | ||||
| # connection string for MySQL Cluster management tool | ||||
| connect-string="host=localhost:1186" | ||||
|  | ||||
| @ -7,7 +7,7 @@ This patch also improves the documentation a tad. | ||||
| diff -Naur mysql-5.0.40.orig/mysql-test/README mysql-5.0.40/mysql-test/README
 | ||||
| --- mysql-5.0.40.orig/mysql-test/README	2007-04-20 10:14:42.000000000 -0400
 | ||||
| +++ mysql-5.0.40/mysql-test/README	2007-05-23 14:41:03.000000000 -0400
 | ||||
| @@ -6,6 +6,14 @@
 | ||||
| @@ -6,6 +6,17 @@
 | ||||
|  actually have a co-existing MySQL installation. The tests will not | ||||
|  conflict with it. | ||||
|   | ||||
| @ -17,12 +17,15 @@ diff -Naur mysql-5.0.40.orig/mysql-test/README mysql-5.0.40/mysql-test/README | ||||
| +	sudo -u mysql ./mysql-test-run
 | ||||
| +This will use the installed mysql executables, but will run a private copy
 | ||||
| +of the server process (using data files within /usr/share/mysql-test),
 | ||||
| +so you need not start the mysqld service beforehand.
 | ||||
| +so you need not start the mysqld service beforehand.  If you have not
 | ||||
| +installed mysql-cluster, use
 | ||||
| +	sudo -u mysql ./mysql-test-run --skip-ndbcluster
 | ||||
| +to skip the cluster-related tests.
 | ||||
| +
 | ||||
|  All tests must pass. If one or more of them fail on your system, please | ||||
|  read the following manual section for instructions on how to report the | ||||
|  problem: | ||||
| @@ -25,7 +33,8 @@
 | ||||
| @@ -25,7 +36,8 @@
 | ||||
|   | ||||
|  With no test cases named on the command line, mysql-test-run falls back | ||||
|  to the normal "non-extern" behavior. The reason for this is that some | ||||
|  | ||||
							
								
								
									
										17
									
								
								mysql-no-dbug.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								mysql-no-dbug.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | ||||
| Don't build the dbug manual.  We aren't going to install it anyway, so | ||||
| there's no need to do so.  Attempting to build it causes crashes if one | ||||
| has built with -DDBUG_OFF, as we do by default.  Per bug #437053. | ||||
| 
 | ||||
| 
 | ||||
| diff -Naur mysql-5.0.51a.orig/dbug/Makefile.am mysql-5.0.51a/dbug/Makefile.am
 | ||||
| --- mysql-5.0.51a.orig/dbug/Makefile.am	2008-01-11 09:43:29.000000000 -0500
 | ||||
| +++ mysql-5.0.51a/dbug/Makefile.am	2008-07-27 12:21:56.000000000 -0400
 | ||||
| @@ -35,7 +35,7 @@
 | ||||
|  factorial_SOURCES =     my_main.c factorial.c | ||||
|  dbug_analyze_SOURCES =  dbug_analyze.c | ||||
|   | ||||
| -all:            user.t user.ps
 | ||||
| +all:
 | ||||
|   | ||||
|  user.t:         user.r $(NROFF_INC) | ||||
|  		-nroff -mm user.r > $@ | ||||
| @ -46,7 +46,7 @@ start(){ | ||||
| 	chmod 0640 "$errlogfile" | ||||
| 	[ -x /sbin/restorecon ] && /sbin/restorecon "$errlogfile" | ||||
| 	if [ ! -d "$datadir/mysql" ] ; then | ||||
| 	    action $"Initializing MySQL database: " /usr/bin/mysql_install_db | ||||
| 	    action $"Initializing MySQL database: " /usr/bin/mysql_install_db --datadir="$datadir" --user=mysql | ||||
| 	    ret=$? | ||||
| 	    chown -R mysql:mysql "$datadir" | ||||
| 	    if [ $ret -ne 0 ] ; then | ||||
| @ -60,7 +60,7 @@ start(){ | ||||
| 	# but we need to be sure. | ||||
| 	/usr/bin/mysqld_safe   --datadir="$datadir" --socket="$socketfile" \ | ||||
| 		--log-error="$errlogfile" --pid-file="$mypidfile" \ | ||||
| 		>/dev/null 2>&1 & | ||||
| 		--user=mysql >/dev/null 2>&1 & | ||||
| 	ret=$? | ||||
| 	# Spin for a maximum of N seconds waiting for the server to come up. | ||||
| 	# Rather than assuming we know a valid username, accept an "access | ||||
|  | ||||
							
								
								
									
										126
									
								
								mysql.spec
									
									
									
									
									
								
							
							
						
						
									
										126
									
								
								mysql.spec
									
									
									
									
									
								
							| @ -1,6 +1,6 @@ | ||||
| Name: mysql | ||||
| Version: 5.0.51a | ||||
| Release: 1%{?dist} | ||||
| Release: 2%{?dist} | ||||
| Summary: MySQL client programs and shared libraries | ||||
| Group: Applications/Databases | ||||
| URL: http://www.mysql.com | ||||
| @ -16,6 +16,9 @@ Source1: mysql.init | ||||
| Source3: my.cnf | ||||
| Source4: scriptstub.c | ||||
| Source5: my_config.h | ||||
| Source6: ndbd.init | ||||
| Source7: ndb_mgmd.init | ||||
| Source8: ndb_types.h | ||||
| # Working around perl dependency checking bug in rpm FTTB. Remove later. | ||||
| Source999: filter-requires-mysql.sh  | ||||
| Patch1: mysql-libdir.patch | ||||
| @ -30,6 +33,7 @@ Patch9: mysql-bdb-link.patch | ||||
| Patch10: mysql-bdb-open.patch | ||||
| Patch11: mysql-innodb-crash.patch | ||||
| Patch12: mysql-ssl.patch | ||||
| Patch13: mysql-no-dbug.patch | ||||
| Patch14: mysql-ss-test.patch | ||||
| Patch15: mysql-stack-guard.patch | ||||
| 
 | ||||
| @ -86,6 +90,22 @@ client/server implementation consisting of a server daemon (mysqld) | ||||
| and many different client programs and libraries. This package contains | ||||
| the MySQL server and some accompanying files and directories. | ||||
| 
 | ||||
| %package cluster | ||||
| 
 | ||||
| Summary: MySQL Cluster daemons and related files | ||||
| Group: Applications/Databases | ||||
| Requires: %{name} = %{version}-%{release} | ||||
| Conflicts: MySQL-storage-cluster | ||||
| Conflicts: MySQL-management-cluster | ||||
| Conflicts: MySQL-tools-cluster | ||||
| Conflicts: MySQL-extra-cluster | ||||
| 
 | ||||
| %description cluster | ||||
| MySQL is a multi-user, multi-threaded SQL database server. | ||||
| MySQL Cluster is a distributed in-memory data store that can be accessed | ||||
| by a MySQL server. This package contains the programs needed to run a MySQL | ||||
| Cluster installation. | ||||
| 
 | ||||
| %package devel | ||||
| 
 | ||||
| Summary: Files for development of MySQL applications | ||||
| @ -139,6 +159,7 @@ the MySQL sources. | ||||
| %patch10 -p1 | ||||
| %patch11 -p1 | ||||
| %patch12 -p1 | ||||
| %patch13 -p1 | ||||
| %patch14 -p1 | ||||
| %patch15 -p1 | ||||
| 
 | ||||
| @ -172,6 +193,7 @@ export CFLAGS CXXFLAGS | ||||
| 	--with-mysqld-user="mysql" \ | ||||
| 	--with-extra-charsets=all \ | ||||
| 	--with-innodb \ | ||||
| 	--with-ndbcluster \ | ||||
| 	--with-berkeley-db \ | ||||
| 	--enable-local-infile \ | ||||
| 	--enable-largefile \ | ||||
| @ -206,12 +228,14 @@ rm -rf $RPM_BUILD_ROOT | ||||
| 
 | ||||
| %makeinstall | ||||
| 
 | ||||
| # multilib header hack | ||||
| # multilib header hacks | ||||
| # we only apply this to known Red Hat multilib arches, per bug #181335 | ||||
| case `uname -i` in | ||||
|   i386 | x86_64 | ppc | ppc64 | s390 | s390x | sparc | sparcv9 | sparc64 ) | ||||
|     install -m 644 include/my_config.h $RPM_BUILD_ROOT/usr/include/mysql/my_config_`uname -i`.h | ||||
|     mv $RPM_BUILD_ROOT/usr/include/mysql/my_config.h $RPM_BUILD_ROOT/usr/include/mysql/my_config_`uname -i`.h | ||||
|     install -m 644 %{SOURCE5} $RPM_BUILD_ROOT/usr/include/mysql/ | ||||
|     mv $RPM_BUILD_ROOT/usr/include/mysql/ndb/ndb_types.h $RPM_BUILD_ROOT/usr/include/mysql/ndb/ndb_types_`uname -i`.h | ||||
|     install -m 644 %{SOURCE8} $RPM_BUILD_ROOT/usr/include/mysql/ndb/ | ||||
|     ;; | ||||
|   *) | ||||
|     ;; | ||||
| @ -228,8 +252,11 @@ gzip ${RPM_BUILD_ROOT}%{_infodir}/* | ||||
| mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d | ||||
| mkdir -p $RPM_BUILD_ROOT/var/run/mysqld | ||||
| install -m 0755 -d $RPM_BUILD_ROOT/var/lib/mysql | ||||
| install -m 0755 -d $RPM_BUILD_ROOT/var/lib/mysql-cluster | ||||
| install -m 0755 %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/mysqld | ||||
| install -m 0644 %{SOURCE3} $RPM_BUILD_ROOT/etc/my.cnf | ||||
| install -m 0755 %{SOURCE6} $RPM_BUILD_ROOT/etc/rc.d/init.d/ndbd | ||||
| install -m 0755 %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/ndb_mgmd | ||||
| rm -f $RPM_BUILD_ROOT/%{_infodir}/dir* | ||||
| mv $RPM_BUILD_ROOT/usr/sql-bench $RPM_BUILD_ROOT%{_datadir}/sql-bench | ||||
| mv $RPM_BUILD_ROOT/usr/mysql-test $RPM_BUILD_ROOT%{_datadir}/mysql-test | ||||
| @ -246,11 +273,11 @@ rm -f ${RPM_BUILD_ROOT}%{_bindir}/make_win_src_distribution | ||||
| rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/make_win_bin_dist.1* | ||||
| rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/make_win_src_distribution.1* | ||||
| rm -f ${RPM_BUILD_ROOT}%{_libdir}/mysql/libmysqlclient*.la | ||||
| rm -f ${RPM_BUILD_ROOT}%{_libdir}/mysql/libndbclient.la | ||||
| rm -f ${RPM_BUILD_ROOT}%{_datadir}/mysql/binary-configure | ||||
| rm -f ${RPM_BUILD_ROOT}%{_datadir}/mysql/make_binary_distribution | ||||
| rm -f ${RPM_BUILD_ROOT}%{_datadir}/mysql/make_sharedlib_distribution | ||||
| rm -f ${RPM_BUILD_ROOT}%{_datadir}/mysql/mi_test_all* | ||||
| rm -f ${RPM_BUILD_ROOT}%{_datadir}/mysql/ndb-config-2-node.ini | ||||
| rm -f ${RPM_BUILD_ROOT}%{_datadir}/mysql/mysql.server | ||||
| rm -f ${RPM_BUILD_ROOT}%{_datadir}/mysql/mysqld_multi.server | ||||
| rm -f ${RPM_BUILD_ROOT}%{_datadir}/mysql/MySQL-shared-compat.spec | ||||
| @ -261,8 +288,12 @@ rm -f ${RPM_BUILD_ROOT}%{_datadir}/mysql/mysql-*.spec | ||||
| rm -f ${RPM_BUILD_ROOT}%{_datadir}/mysql/mysql-log-rotate | ||||
| rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/mysql-stress-test.pl.1* | ||||
| rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/mysql-test-run.pl.1* | ||||
| rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/ndbd.1* | ||||
| rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/ndb_*.1* | ||||
| rm -f ${RPM_BUILD_ROOT}/usr/libexec/ndb_cpcd | ||||
| rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/ndb_cpcd.1* | ||||
| # for the moment, remove ndb_size because of dependency on HTML::Template | ||||
| rm -f ${RPM_BUILD_ROOT}%{_bindir}/ndb_size.pl | ||||
| rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/ndb_size.pl.1* | ||||
| rm -f ${RPM_BUILD_ROOT}%{_datadir}/mysql/ndb_size.tmpl | ||||
| 
 | ||||
| mkdir -p $RPM_BUILD_ROOT/etc/ld.so.conf.d | ||||
| echo "%{_libdir}/mysql" > $RPM_BUILD_ROOT/etc/ld.so.conf.d/%{name}-%{_arch}.conf | ||||
| @ -274,6 +305,10 @@ rm -rf $RPM_BUILD_ROOT | ||||
| /usr/sbin/useradd -M -o -r -d /var/lib/mysql -s /bin/bash \ | ||||
| 	-c "MySQL Server" -u 27 mysql > /dev/null 2>&1 || : | ||||
| 
 | ||||
| %pre cluster | ||||
| /usr/sbin/useradd -M -o -r -d /var/lib/mysql -s /bin/bash \ | ||||
| 	-c "MySQL Server" -u 27 mysql > /dev/null 2>&1 || : | ||||
| 
 | ||||
| %post  | ||||
| /sbin/install-info %{_infodir}/mysql.info.gz %{_infodir}/dir | ||||
| 
 | ||||
| @ -287,6 +322,13 @@ fi | ||||
| /bin/chmod 0755 /var/lib/mysql | ||||
| /bin/touch /var/log/mysqld.log | ||||
| 
 | ||||
| %post cluster | ||||
| if [ $1 = 1 ]; then | ||||
|     /sbin/chkconfig --add ndbd | ||||
|     /sbin/chkconfig --add ndb_mgmd | ||||
| fi | ||||
| /bin/chmod 0755 /var/lib/mysql-cluster | ||||
| 
 | ||||
| %preun | ||||
| if [ $1 = 0 ]; then | ||||
|     /sbin/install-info --delete %{_infodir}/mysql.info.gz %{_infodir}/dir || : | ||||
| @ -297,6 +339,12 @@ if [ $1 = 0 ]; then | ||||
|     /sbin/chkconfig --del mysqld | ||||
| fi | ||||
| 
 | ||||
| %preun cluster | ||||
| if [ $1 = 0 ]; then | ||||
|     /sbin/chkconfig --del ndb_mgmd | ||||
|     /sbin/chkconfig --del ndbd | ||||
| fi | ||||
| 
 | ||||
| %postun libs | ||||
| if [ $1 = 0 ] ; then | ||||
|     /sbin/ldconfig | ||||
| @ -308,6 +356,12 @@ if [ $1 -ge 1 ]; then | ||||
|     /sbin/service mysqld condrestart >/dev/null 2>&1 || : | ||||
| fi | ||||
| 
 | ||||
| %postun cluster | ||||
| if [ $1 -ge 1 ]; then | ||||
|     /sbin/service ndb_mgmd condrestart >/dev/null 2>&1 || : | ||||
|     /sbin/service ndbd condrestart >/dev/null 2>&1 || : | ||||
| fi | ||||
| 
 | ||||
| 
 | ||||
| %files | ||||
| %defattr(-,root,root) | ||||
| @ -331,7 +385,6 @@ fi | ||||
| %{_infodir}/* | ||||
| 
 | ||||
| %{_mandir}/man1/mysql.1* | ||||
| %{_mandir}/man1/mysql_config.1* | ||||
| %{_mandir}/man1/mysql_find_rows.1* | ||||
| %{_mandir}/man1/mysql_tableinfo.1* | ||||
| %{_mandir}/man1/mysql_waitpid.1* | ||||
| @ -353,6 +406,7 @@ fi | ||||
| 
 | ||||
| %dir %{_libdir}/mysql | ||||
| %{_libdir}/mysql/libmysqlclient*.so.* | ||||
| %{_libdir}/mysql/libndbclient.so.* | ||||
| /etc/ld.so.conf.d/* | ||||
| 
 | ||||
| %dir %{_datadir}/mysql | ||||
| @ -425,6 +479,7 @@ fi | ||||
| %{_mandir}/man1/mysql_convert_table_format.1* | ||||
| %{_mandir}/man1/myisam_ftdump.1* | ||||
| %{_mandir}/man1/mysql.server.1* | ||||
| %{_mandir}/man1/mysql_config.1* | ||||
| %{_mandir}/man1/mysql_explain_log.1* | ||||
| %{_mandir}/man1/mysql_fix_extensions.1* | ||||
| %{_mandir}/man1/mysql_fix_privilege_tables.1* | ||||
| @ -465,11 +520,58 @@ fi | ||||
| %attr(0755,mysql,mysql) %dir /var/lib/mysql | ||||
| %attr(0640,mysql,mysql) %config(noreplace) %verify(not md5 size mtime) /var/log/mysqld.log | ||||
| 
 | ||||
| %files cluster | ||||
| %defattr(-,root,root) | ||||
| 
 | ||||
| %{_bindir}/ndb_config | ||||
| %{_bindir}/ndb_delete_all | ||||
| %{_bindir}/ndb_desc | ||||
| %{_bindir}/ndb_drop_index | ||||
| %{_bindir}/ndb_drop_table | ||||
| %{_bindir}/ndb_error_reporter | ||||
| %{_bindir}/ndb_mgm | ||||
| %{_bindir}/ndb_restore | ||||
| %{_bindir}/ndb_select_all | ||||
| %{_bindir}/ndb_select_count | ||||
| %{_bindir}/ndb_show_tables | ||||
| #%{_bindir}/ndb_size.pl | ||||
| %{_bindir}/ndb_test_platform | ||||
| %{_bindir}/ndb_waiter | ||||
| 
 | ||||
| /usr/libexec/ndb_mgmd | ||||
| /usr/libexec/ndbd | ||||
| 
 | ||||
| %{_datadir}/mysql/ndb-*.ini | ||||
| #%{_datadir}/mysql/ndb_size.tmpl | ||||
| /etc/rc.d/init.d/ndbd | ||||
| /etc/rc.d/init.d/ndb_mgmd | ||||
| %attr(0755,mysql,mysql) %dir /var/lib/mysql-cluster | ||||
| 
 | ||||
| %{_mandir}/man1/ndb_config.1* | ||||
| %{_mandir}/man1/ndb_delete_all.1* | ||||
| %{_mandir}/man1/ndb_desc.1* | ||||
| %{_mandir}/man1/ndb_drop_index.1* | ||||
| %{_mandir}/man1/ndb_drop_table.1* | ||||
| %{_mandir}/man1/ndb_error_reporter.1* | ||||
| %{_mandir}/man1/ndb_mgm.1* | ||||
| %{_mandir}/man1/ndb_mgmd.1* | ||||
| %{_mandir}/man1/ndb_print_backup_file.1* | ||||
| %{_mandir}/man1/ndb_print_schema_file.1* | ||||
| %{_mandir}/man1/ndb_print_sys_file.1* | ||||
| %{_mandir}/man1/ndb_restore.1* | ||||
| %{_mandir}/man1/ndb_select_all.1* | ||||
| %{_mandir}/man1/ndb_select_count.1* | ||||
| %{_mandir}/man1/ndb_show_tables.1* | ||||
| #%{_mandir}/man1/ndb_size.pl.1* | ||||
| %{_mandir}/man1/ndb_waiter.1* | ||||
| %{_mandir}/man1/ndbd.1* | ||||
| 
 | ||||
| %files devel | ||||
| %defattr(-,root,root) | ||||
| /usr/include/mysql | ||||
| %{_libdir}/mysql/*.a | ||||
| %{_libdir}/mysql/libmysqlclient*.so | ||||
| %{_libdir}/mysql/libndbclient.so | ||||
| 
 | ||||
| %files bench | ||||
| %defattr(-,root,root) | ||||
| @ -483,6 +585,16 @@ fi | ||||
| %{_mandir}/man1/mysql_client_test.1* | ||||
| 
 | ||||
| %changelog | ||||
| * Sun Jul 27 2008 Tom Lane <tgl@redhat.com> 5.0.51a-2 | ||||
| - Enable ndbcluster support | ||||
| Resolves: #163758 | ||||
| - Suppress odd crash messages during package build, caused by trying to | ||||
|   build dbug manual (which we don't install anyway) with dbug disabled | ||||
| Resolves: #437053 | ||||
| - Improve mysql.init to pass configured datadir to mysql_install_db, | ||||
|   and to force user=mysql for both mysql_install_db and mysqld_safe. | ||||
| Related: #450178 | ||||
| 
 | ||||
| * Mon Mar  3 2008 Tom Lane <tgl@redhat.com> 5.0.51a-1 | ||||
| - Update to mysql version 5.0.51a | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										116
									
								
								ndb_mgmd.init
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										116
									
								
								ndb_mgmd.init
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,116 @@ | ||||
| #!/bin/bash | ||||
| # | ||||
| # ndb_mgmd	This shell script takes care of starting and stopping | ||||
| #		the MySQL Cluster management daemon (ndb_mgmd). | ||||
| # | ||||
| # chkconfig: - 62 38 | ||||
| # description:	MySQL Cluster management daemon. | ||||
| # processname: ndb_mgmd | ||||
| # config: /var/lib/mysql-cluster/config.ini | ||||
| # pidfile: /var/lib/mysql-cluster/ndb_${node_id}.pid | ||||
| 
 | ||||
| # Source function library. | ||||
| . /etc/rc.d/init.d/functions | ||||
| 
 | ||||
| # Source networking configuration. | ||||
| . /etc/sysconfig/network | ||||
| 
 | ||||
| 
 | ||||
| prog="ndb_mgmd" | ||||
| 
 | ||||
| # extract value of a MySQL option from config files | ||||
| # Usage: get_mysql_option SECTION VARNAME DEFAULT | ||||
| # result is returned in $result | ||||
| # We use my_print_defaults which prints all options from multiple files, | ||||
| # with the more specific ones later; hence take the last match. | ||||
| get_mysql_option(){ | ||||
| 	result=`/usr/bin/my_print_defaults --extra-file=/var/lib/mysql-cluster/config.ini "$1" | sed -n "s/^--$2=//p" | tail -n 1` | ||||
| 	if [ -z "$result" ]; then | ||||
| 	    # not found, use default | ||||
| 	    result="$3" | ||||
| 	fi | ||||
| } | ||||
| 
 | ||||
| get_mysql_option ndb_mgmd id "1" | ||||
| node_id="$result" | ||||
| errlogfile="/var/lib/mysql-cluster/ndb_${node_id}_out.log" | ||||
| pidfile="/var/lib/mysql-cluster/ndb_${node_id}.pid" | ||||
| 
 | ||||
| # For SELinux we need to use 'runuser' not 'su' | ||||
| if [ -x /sbin/runuser ] | ||||
| then | ||||
|     SU=runuser | ||||
| else | ||||
|     SU=su | ||||
| fi | ||||
| 
 | ||||
| start(){ | ||||
| 	touch "$errlogfile" | ||||
| 	chown mysql:mysql "$errlogfile"  | ||||
| 	chmod 0640 "$errlogfile" | ||||
| 	[ -x /sbin/restorecon ] && /sbin/restorecon "$errlogfile" | ||||
| 
 | ||||
| 	# all options are expected to be specified in | ||||
| 	# /var/lib/mysql-cluster/config.ini. | ||||
| 	$SU -l mysql -c "cd /var/lib/mysql-cluster; /usr/libexec/ndb_mgmd" >> "$errlogfile" 2>&1 < /dev/null | ||||
| 	ret=$? | ||||
| 	if [ $ret -eq 0 ]; then | ||||
| 	    action $"Starting $prog: " /bin/true | ||||
| 	else | ||||
|     	    action $"Starting $prog: " /bin/false | ||||
| 	fi | ||||
| 	[ $ret -eq 0 ] && touch /var/lock/subsys/ndb_mgmd | ||||
| 	return $ret | ||||
| } | ||||
| 
 | ||||
| stop(){ | ||||
|         NDB_MGMD_PID=`cat "$pidfile"  2>/dev/null ` | ||||
|         if [ -n "$NDB_MGMD_PID" ]; then | ||||
| 	    /usr/bin/ndb_mgm -e shutdown >/dev/null | ||||
|             ret=$? | ||||
|             if [ $ret -eq 0 ]; then | ||||
| 		rm -f /var/lock/subsys/ndb_mgmd | ||||
| 		rm -f "$pidfile" | ||||
| 		action $"Stopping $prog: " /bin/true | ||||
|             else | ||||
|                 action $"Stopping $prog: " /bin/false | ||||
|             fi | ||||
|         else | ||||
|             ret=1 | ||||
|             action $"Stopping $prog: " /bin/false | ||||
|         fi | ||||
|         return $ret | ||||
| } | ||||
|   | ||||
| restart(){ | ||||
|     stop | ||||
|     start | ||||
| } | ||||
| 
 | ||||
| condrestart(){ | ||||
|     [ -e /var/lock/subsys/ndb_mgmd ] && restart || : | ||||
| } | ||||
| 
 | ||||
| # See how we were called. | ||||
| case "$1" in | ||||
|   start) | ||||
|     start | ||||
|     ;; | ||||
|   stop) | ||||
|     stop | ||||
|     ;; | ||||
|   status) | ||||
|     status ndb_mgmd | ||||
|     ;; | ||||
|   restart) | ||||
|     restart | ||||
|     ;; | ||||
|   condrestart) | ||||
|     condrestart | ||||
|     ;; | ||||
|   *) | ||||
|     echo $"Usage: $0 {start|stop|status|condrestart|restart}" | ||||
|     exit 1 | ||||
| esac | ||||
| 
 | ||||
| exit $? | ||||
							
								
								
									
										25
									
								
								ndb_types.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								ndb_types.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,25 @@ | ||||
| /*
 | ||||
|  * Kluge to support multilib installation of both 32- and 64-bit RPMS: | ||||
|  * we need to arrange that header files that appear in both RPMs are | ||||
|  * identical.  Hence, this file is architecture-independent and calls | ||||
|  * in an arch-dependent file that will appear in just one RPM. | ||||
|  * | ||||
|  * To avoid breaking arches not explicitly supported by Red Hat, we | ||||
|  * use this indirection file *only* on known multilib arches. | ||||
|  * | ||||
|  * Note: this may well fail if user tries to use gcc's -I- option. | ||||
|  * But that option is deprecated anyway. | ||||
|  */ | ||||
| #if defined(__x86_64__) | ||||
| #include "ndb_types_x86_64.h" | ||||
| #elif defined(__i386__) | ||||
| #include "ndb_types_i386.h" | ||||
| #elif defined(__ppc64__) || defined(__powerpc64__) | ||||
| #include "ndb_types_ppc64.h" | ||||
| #elif defined(__ppc__) || defined(__powerpc__) | ||||
| #include "ndb_types_ppc.h" | ||||
| #elif defined(__s390x__) | ||||
| #include "ndb_types_s390x.h" | ||||
| #elif defined(__s390__) | ||||
| #include "ndb_types_s390.h" | ||||
| #endif | ||||
							
								
								
									
										111
									
								
								ndbd.init
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										111
									
								
								ndbd.init
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,111 @@ | ||||
| #!/bin/bash | ||||
| # | ||||
| # ndbd		This shell script takes care of starting and stopping | ||||
| #		the MySQL Cluster data node daemon (ndbd). | ||||
| # | ||||
| # chkconfig: - 63 37 | ||||
| # description:	MySQL Cluster data node daemon. | ||||
| # processname: ndbd | ||||
| # config: /etc/my.cnf | ||||
| # pidfile: /var/lib/mysql-cluster/ndb_${node_id}.pid | ||||
| 
 | ||||
| # Source function library. | ||||
| . /etc/rc.d/init.d/functions | ||||
| 
 | ||||
| # Source networking configuration. | ||||
| . /etc/sysconfig/network | ||||
| 
 | ||||
| 
 | ||||
| prog="ndbd" | ||||
| 
 | ||||
| # extract value of a MySQL option from config files | ||||
| # Usage: get_mysql_option SECTION VARNAME DEFAULT | ||||
| # result is returned in $result | ||||
| # We use my_print_defaults which prints all options from multiple files, | ||||
| # with the more specific ones later; hence take the last match. | ||||
| get_mysql_option(){ | ||||
| 	result=`/usr/bin/my_print_defaults "$1" | sed -n "s/^--$2=//p" | tail -n 1` | ||||
| 	if [ -z "$result" ]; then | ||||
| 	    # not found, use default | ||||
| 	    result="$3" | ||||
| 	fi | ||||
| } | ||||
| 
 | ||||
| get_mysql_option ndbd connect-string "nodeid=2;host=localhost:1186" | ||||
| ndbd_connect_string="$result" | ||||
| node_id=`echo "$result" | sed 's/^nodeid=\([0-9]*\);.*$/\1/'` | ||||
| connect_string=`echo "$result" | sed 's/^.*host=//'` | ||||
| pidfile="/var/lib/mysql-cluster/ndb_${node_id}.pid" | ||||
| 
 | ||||
| # For SELinux we need to use 'runuser' not 'su' | ||||
| if [ -x /sbin/runuser ] | ||||
| then | ||||
|     SU=runuser | ||||
| else | ||||
|     SU=su | ||||
| fi | ||||
| 
 | ||||
| start(){ | ||||
| 	# all options are expected to be specified in /etc/my.cnf | ||||
| 	$SU -l mysql -c "/usr/libexec/ndbd" >/dev/null 2>&1 | ||||
| 	ret=$? | ||||
| 	if [ $ret -eq 0 ]; then | ||||
| 	    action $"Starting $prog: " /bin/true | ||||
| 	else | ||||
|     	    action $"Starting $prog: " /bin/false | ||||
| 	fi | ||||
| 	[ $ret -eq 0 ] && touch /var/lock/subsys/ndbd | ||||
| 	return $ret | ||||
| } | ||||
| 
 | ||||
| stop(){ | ||||
|         NDBD_PID=`cat "$pidfile"  2>/dev/null ` | ||||
|         if [ -n "$NDBD_PID" ]; then | ||||
| 	    /usr/bin/ndb_mgm -e "$node_id STOP" "$connect_string" >/dev/null | ||||
|             ret=$? | ||||
|             if [ $ret -eq 0 ]; then | ||||
| 		rm -f /var/lock/subsys/ndbd | ||||
| 		rm -f "$pidfile" | ||||
| 		action $"Stopping $prog: " /bin/true | ||||
|             else | ||||
|                 action $"Stopping $prog: " /bin/false | ||||
|             fi | ||||
|         else | ||||
|             ret=1 | ||||
|             action $"Stopping $prog: " /bin/false | ||||
|         fi | ||||
|         return $ret | ||||
| } | ||||
|   | ||||
| restart(){ | ||||
|     stop | ||||
|     start | ||||
| } | ||||
| 
 | ||||
| condrestart(){ | ||||
|     [ -e /var/lock/subsys/ndbd ] && restart || : | ||||
| } | ||||
| 
 | ||||
| # See how we were called. | ||||
| case "$1" in | ||||
|   start) | ||||
|     start | ||||
|     ;; | ||||
|   stop) | ||||
|     stop | ||||
|     ;; | ||||
|   status) | ||||
|     status ndbd | ||||
|     ;; | ||||
|   restart) | ||||
|     restart | ||||
|     ;; | ||||
|   condrestart) | ||||
|     condrestart | ||||
|     ;; | ||||
|   *) | ||||
|     echo $"Usage: $0 {start|stop|status|condrestart|restart}" | ||||
|     exit 1 | ||||
| esac | ||||
| 
 | ||||
| exit $? | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user