Bug#32136: mysqld_multi --defaults-file not respected while using \
--mysqld=mysqld_safe
Revert change that adds "--no-defaults" to mysqld_multi.
This closes Bug#43508 and re-opens Bug#32136.
Options got normalised to long rather than short options
since we gave primary name and alias in wrong order.
Consequently querying for the option using the short
options (the correct primary name) didn't work, rendering
the options in question inaccessible.
We restore the right order of the universe, or at least
the alii for --debug and --verbose.
scripts/mysqldumpslow.sh:
Normalise --verbose/-v and --debug/-d to short
options, not long options.
--mysqld=mysqld_safe
The server run didn't know the correct section to read in a
configuration file, and would read from "[mysqld]" even though
mysqld_multi had already read the defaults and made them into explicit
parameters.
Worse, the "defaults-file" parameter says that it means "Read only
this configuration file, do not read the standard system-wide and
user-specific files", which should apply not only to mysql-multi, but
to the server also.
So, now if "defaults-file" is given, put "no-defaults" before all the
explicit parameters we read from the defaults-file and feed to the
mysqld or mysqld_safe.
Machines with hostname set to "localhost" cause uniqueness errors in
the SQL bootstrap data.
Now, insert zero lines for cases where the (lowercased) hostname is
the same as an already-inserted 'localhost' name. Also, fix a few tests
that expect certain local accounts to have a certain host name.
Mostly, this affected files (programs, scripts, and manual pages)
which got built during a RPM build but were not listed in the
appropriate "%files" section of the "spec" file.
This is fixed now, they are added.
To make this consistent, this patch also makes the build of "innochecksum"
(and its inclusion in a tar.gz or other package) depend on whether InnoDB
is configured in the build.
Also, some tools to create Windows packages are irrelevant in any binary
Unix package (not the sources !), and so they are deleted before packaging.
configure.in:
To prevent "innochecksum" from getting built even if InnoDB is not configured
(and then being included in such packages),
we need an "automake condition" that evaluates whether we have InnoDB.
extra/Makefile.am:
Evaluate the new automake condition about having InnoDB,
and make the build of "innochecksum" depend on it.
man/Makefile.am:
Cleanup: There are manual files which we do not need,
like those about tools for Windows builds / packaging
(irrelevant in any Unix binary package)
and about NDB tools which do not get built.
scripts/make_binary_distribution.sh:
In any Unix binary package, do not include tools for Windows builds
(and their manual pages).
This does not affect source packages, of course.
support-files/mysql.spec.sh:
There were several files (binaries, scripts, and manuals)
which got built with a RPM but never packages,
add them to the respective RPM.
Reset session sql_mode before creating system tables as it
is done in the mysql_fix_privilege_tables.sql script.
scripts/mysql_system_tables.sql:
reset sql mode
into kaamos.(none):/data/src/opt/mysql-5.0-opt
client/mysql.cc:
Auto merged
sql/filesort.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/item_func.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
tests/mysql_client_test.c:
Auto merged
mysql-test/r/view.result:
Manual merge.
mysql-test/t/view.test:
Manual merge.
scripts/mysql_config.sh:
Manual merge.
Make mysqld_multi.server executable, and allow it to be installed
via chkconfig on LSB-compliant systems.
scripts/make_binary_distribution.sh:
Adjust permissions on some support-files/* scripts: make mysqld_multi.server
executable, and mysql-VERSION.spec not executable.
support-files/mysqld_multi.server.sh:
Add LSB comments for chkconfig to simplify installation for sysadmins.
- Make sure mysqlhotcopy doesn't create unrestorable slaves.
scripts/mysqlhotcopy.sh:
Bug #27101 mysqlhotcopy --record_log_pos retrieves wrong slave parameters
- Record what's been executed by the slave, not what's been delivered.
mysql_config --cflags gave a flag that forced the HP/UX
C++ compiler into C-mode; as a result, C++ sources could
not be compiled correctly.
We now filter out the offending flag (like we do for Sun)
so that --cflags will work for both C and C++.
scripts/mysql_config.sh:
Add -AC99 (for HP/UX) to the list of flags we need to remove
from "mysql_config --cflags" so they work for C and C++ both.
Remove code from mysqlhotcopy which deals with the so-called "RAID"
feature of older MyISAM.
scripts/mysqlhotcopy.sh:
Remove code which tried to handle the so-called "RAID" files.
The "RAID" feature has been dropped from MySQL builds, and this
code caused mysqlhotcopy to skip (silently) over databases with
two-character names (e.g., "ab").
Add -lmygcc to mysql_config output for libs, libs_r, and embedded_libs.
Required when linking against our static libs, if yassl is used, and gcc
used to build library is significantly different from that which is using
the library.
scripts/mysql_config.sh:
Add -lmygcc to --libs, --libs_r, and --embedded-libs output, if libmygcc.a
is found in the pkglibdir.
This works around a problem when linking against the static client
libs which were built with a different GCC than the current compiler.
In this case, without -lmygcc, several builtin functions (e.g.,
__pure_virtual, __builtin_delete) are left undefined. Currently it
is yassl which pulls in these symbols.
This isn't a problem when linking against shared libraries, or when
using the same compiler version.
Currently it shows up with libs built on build.mysql.com with gcc 2.95.3,
when using them on more recent systems.
Also strip the -mcpu, -mtune, and -march cflags. The calling package can
determine what optimization parameters to choose.
Added Perl version of script "mysql_secure_installation"
make_win_bin_dist:
Corrected copy of SQL files to "share" directory
scripts/mysql_secure_installation.pl.in:
Added Perl version of script "mysql_secure_installation"
scripts/CMakeLists.txt:
Added Perl version of script "mysql_secure_installation"
scripts/Makefile.am:
Added Perl version of script "mysql_secure_installation"
scripts/make_win_bin_dist:
Corrected copy of SQL files to "share" directory
Better Windows support in the scripts directory
mysql_config.pl.in, mysql_install_db.pl.in:
New Perl version of Unix shell script, mainly for Windows
Many files in scripts directory:
Use default Perl location "#!/usr/bin/perl" instead of the build host path
extra/CMakeLists.txt:
Added target for executable "resolveip"
extra/resolveip.c:
Exclude Unix specific headers when compiling on Windows
scripts/CMakeLists.txt:
On Windows, filter Perl scripts and change name from ".sh" to ".pl"
mysql_convert_table_format.sh mysql_explain_log.sh
mysql_secure_installation.sh mysql_tableinfo.sh
mysqld_multi.sh mysqldumpslow.sh
mysqlhotcopy.sh
Do the same for the new Windows specific Perl versions of shell scripts
mysql_config.pl.in mysql_install_db.pl.in
In CMake, set reasonable values for 'CFLAGS', 'prefix', 'datadir' and so on.
scripts/Makefile.am:
Include "mysql_config.pl.in" and "mysql_install_db.pl.in" in the source TAR
scripts/make_win_bin_dist:
Only include explicitly listed scripts from the "scripts" directory
scripts/mysql_convert_table_format.sh:
Use default Perl location "#!/usr/bin/perl" instead of the build host path
scripts/mysql_explain_log.sh:
Use default Perl location "#!/usr/bin/perl" instead of the build host path
scripts/mysql_tableinfo.sh:
Use default Perl location "#!/usr/bin/perl" instead of the build host path
scripts/mysqld_multi.sh:
Use default Perl location "#!/usr/bin/perl" instead of the build host path
scripts/mysqldumpslow.sh:
Use default Perl location "#!/usr/bin/perl" instead of the build host path
scripts/mysqlhotcopy.sh:
Use default Perl location "#!/usr/bin/perl" instead of the build host path
scripts/mysql_config.pl.in:
New Perl version of Unix shell script, mainly for Windows
scripts/mysql_install_db.pl.in:
New Perl version of Unix shell script, mainly for Windows
Fix the code to get the "libgcc" file name so that the failure of Intel's ICC
to provide this information does not cause any problems.
This fixes bug#33536 Option "--print-libgcc-file" does not work with ICC compiler
scripts/make_binary_distribution.sh:
The (old) code to get the "libgcc" file name does not really work when using Intel's ICC.
ICC accepts the "--print-libgcc-file" option but ignores it, does not produce any output.
However, ICC tricks automake into taking it for a GCC ("GXX" variable is set, see
http://www.gnu.org/software/autoconf/manual/html_node/C_002b_002b-Compiler.html#C_002b_002b-Compiler
and its discussion of the "AC_PROG_CXX" macro).
There are two possible approaches:
a) Check "$CC" or "$CXX" to tell ICC from GCC, and do not ask ICC for the "libgcc" file name.
b) Just ask it, but protect that code so that its failure does not cause any damage.
This patch takes the second route:
1) Put the call "@CC@ ... --print-libgcc-file" into a pipeline, followed by "|| true",
so that (for the shell semantics) the command cannot fail.
(ICC will exit non-zero because it is not given a source file.)
2) Explicitly redirect any error messages.
3) Do not use the compiler's return code but rather the (non)empty variable to check success.
4) Ensure that the contents really is a file before taking it as a file name.
Item 1) is especially important when the tool gets a "set -e" (this happens in 5.1, currently)
which would make the failing compiler call a fatal thing.
This fixes bug#33536 Option "--print-libgcc-file" does not work with ICC compiler
into mysql.com:/home/gluh/MySQL/Merge/5.0-opt
client/mysql.cc:
Auto merged
client/mysqltest.c:
Auto merged
include/mysql_com.h:
Auto merged
libmysql/CMakeLists.txt:
Auto merged
myisam/mi_check.c:
Auto merged
mysql-test/r/delayed.result:
Auto merged
mysql-test/r/innodb.result:
Auto merged
mysql-test/r/myisam.result:
Auto merged
mysql-test/r/ps.result:
Auto merged
mysql-test/t/merge.test:
Auto merged
mysql-test/t/myisam.test:
Auto merged
mysql-test/t/subselect.test:
Auto merged
mysql-test/t/type_datetime.test:
Auto merged
mysql-test/t/variables.test:
Auto merged
sql/field.cc:
Auto merged
sql/ha_myisam.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/opt_range.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/set_var.h:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
mysql-test/r/func_misc.result:
manual merge
mysql-test/r/innodb_mysql.result:
manual merge
mysql-test/t/func_misc.test:
manual merge
mysql-test/t/innodb_mysql.test:
manual merge
sql/sql_insert.cc:
manual merge
Fix is to remove any references to the current hostname when running
mysql_install_db --cross-bootstrap. (The dist-hook make target makes
this call, and the resulting data directory is included in the source
distribution as win/data/*.)
Also, a few other clean-ups to mysql_install_db while there.
Makefile.am:
Adapt to clean-up in mysql_install_db (--windows becomes --cross-bootstrap)
scripts/mysql_install_db.sh:
Filter out references to the current hostname when performing
a cross-bootstrap installation by removing any lines which
contain the string "@current_hostname".
Deprecate the old --windows option; use --cross-bootstrap
instead, since it more accurately reflects the purpose.
Other clean-up: the wrong syntax was being used to test the
exit status of mysqld --bootstrap. It mostly worked, as long
as mysqld succeeded. However, it was not robust.
scripts/mysql_system_tables_data.sql:
Rename local @hostname variable to @current_hostname, which is a more
unique label to search on. mysql_install_db now filters out all
lines which include "@current_hostname" during a --cross-bootstrap
installation.
and the modified values of the compile-related variables used in "configure".
Make the necessary adjustments in "configure.in" and "scripts/Makefile.am".
This fixes bug#31644
Values of *FLAGS that were used for building packages is missed in mysqlbug
configure.in:
Add more variables to the "substitution" list: SAVE_CC, SAVE_CXX, ASFLAGS.
This is necessary so that the "mysqlbug" script can output the variables affecting
compilation with both their original (on call) and final (modified) values.
This work is related to fixing bug#31644
Values of *FLAGS that were used for building packages is missed in mysqlbug
scripts/Makefile.am:
Clearly differ between the original and the modified values of the compile-related
variables used in "configure".
This is to fix bug#31644
Values of *FLAGS that were used for building packages is missed in mysqlbug
scripts/mysqlbug.sh:
Have separate variables "COMP_CALL_INFO" and "COMP_RUN_INFO"
which contain the original (call parameters, environment) and the modified values
of the "configure" variables controlling the compile process.
This fixes bug#31644
Values of *FLAGS that were used for building packages is missed in mysqlbug
Our web server has been restructured several times, and references
to it in our source code has stayed the same. This patch from Paul
DuBois updates all URLs to modern semantics.
debian/po/ca.po:
Change URLs.
debian/po/cs.po:
Change URLs.
debian/po/da.po:
Change URLs.
debian/po/gl.po:
Change URLs.
debian/po/ja.po:
Change URLs.
debian/po/pt_BR.po:
Change URLs.
debian/po/sv.po:
Change URLs.
debian/po/tr.po:
Change URLs.
mysql-test/lib/mtr_report.pl:
Change URLs.
mysql-test/mysql-test-run-shell.sh:
Change URLs.
ndb/include/ndbapi/Ndb.hpp:
Change URLs.
netware/mysql_test_run.c:
Change URLs.
scripts/mysqld_safe.sh:
Change URLs.
sql/mysqld.cc:
Change URLs.
were accidentally removed during a previous rototill of this
code. Fixes bug#27692.
While it can be argued we should strive to provide a 'secure by
default' installation, this happens to be the setup currently
documented in the manual as the default, so defer changes that
improve security out of the box to a co-ordinated effort later
on.
For now, make a note about the test databases and anonymous user
in mysql_install_db and recommend that mysql_secure_installation
be ran for users wishing to remove these defaults.
[..re-commit of previously lost change..]
scripts/mysql_system_tables_data.sql:
Add anonymous accounts.
scripts/mysql_install_db.sh:
Point users at the mysql_secure_installation script.
mysql-test/mysql-test-run.pl:
Add a comment where removing anonymous users.
- Use a local uservariable to avoid @@hostname in binlog
scripts/mysql_system_tables_data.sql:
Load @@hostname into a local user variable to avoid
writing @@hostname to the binary log that potentially
would be replicated to a slave server that not yet was upgraded
to have @@hostname.
into mysql.com:/home/tnurnberg/15327/50-15327
client/mysql.cc:
Auto merged
client/mysql_upgrade.c:
Auto merged
client/mysqldump.c:
Auto merged
client/mysqltest.c:
Auto merged
configure.in:
Auto merged
libmysql/libmysql.c:
Auto merged
mysql-test/Makefile.am:
Auto merged
scripts/Makefile.am:
Auto merged
sql/mysqld.cc:
Auto merged
tests/mysql_client_test.c:
Auto merged
make sure that if builder configured with a non-standard (!= 3306)
default TCP port that value actually gets used throughout. if they
didn't configure a value, assume "use a sensible default", which
will be read from /etc/services or, failing that, from the factory
default. That makes the order of preference
- command-line option
- my.cnf, where applicable
- $MYSQL_TCP_PORT environment variable
- /etc/services (unless configured --with-tcp-port)
- default port (--with-tcp-port=... or factory default)
client/mysql.cc:
Bug #15327: configure: --with-tcp-port option being partially ignored
make help on --port a little more clear
client/mysql_upgrade.c:
Bug #15327: configure: --with-tcp-port option being partially ignored
make help on --port a little more clear
client/mysqladmin.cc:
Bug #15327: configure: --with-tcp-port option being partially ignored
make help on --port a little more clear
client/mysqlbinlog.cc:
Bug #15327: configure: --with-tcp-port option being partially ignored
make help on --port a little more clear
client/mysqlcheck.c:
Bug #15327: configure: --with-tcp-port option being partially ignored
make help on --port a little more clear
client/mysqldump.c:
Bug #15327: configure: --with-tcp-port option being partially ignored
make help on --port a little more clear
client/mysqlimport.c:
Bug #15327: configure: --with-tcp-port option being partially ignored
make help on --port a little more clear
client/mysqlmanagerc.c:
Bug #15327: configure: --with-tcp-port option being partially ignored
make help on --port a little more clear
configure.in:
Bug #15327: configure: --with-tcp-port option being partially ignored
If MYSQL_TCP_PORT defaulted in configure (factory default 3306
at the time of this writing), set MYSQL_TCP_PORT to factory
default, then clear factory default after. That way, we lose no
information, and we can distinguish between "defaulted" and the
pathological case "builder specifically configured a port that
coincides with factory default." This can in theory happen if
builder configures and builds several servers from a script
(--with-tcp-port=3306, --with-tcp-port=3316, --with-tcp-port=3326).
Not all that probable, but much preferable to having more "magic"
happen in the server when we can solve this without any guesswork.
client/mysqlshow.c:
Bug #15327: configure: --with-tcp-port option being partially ignored
make help on --port a little more clear
client/mysqltest.c:
Bug #15327: configure: --with-tcp-port option being partially ignored
make help on --port a little more clear
include/mysql_version.h.in:
Bug #15327: configure: --with-tcp-port option being partially ignored
make factory default for TCP port available as MYSQL_PORT_DEFAULT
if build-time configured with a different default. (0 if unchanged)
libmysql/libmysql.c:
Bug #15327: configure: --with-tcp-port option being partially ignored
initialize default tcp port for client, like so:
- if user configured --with-tcp-port, use that value as default
- otherwise assume "use a good default": search mysqld/tcp in
/etc/services; if that doesn't exist, use factory default (3306)
- environment variable MYSQL_TCP_PORT overrides this default
- command-line option overrides all of the above
mysql-test/Makefile.am:
Bug #15327: configure: --with-tcp-port option being partially ignored
make factory default for TCP port available as MYSQL_TCP_PORT_DEFAULT
if build-time configured with a different default. (0 if unchanged)
mysql-test/mysql-test-run-shell.sh:
Bug #15327: configure: --with-tcp-port option being partially ignored
set up MYSQL_TCP_PORT if not already set in environment:
- if user configured --with-tcp-port, use that value as default
- otherwise assume "use a good default": search mysqld/tcp in
/etc/services; if that doesn't exist, use factory default (3306)
netware/mysql_test_run.c:
Bug #15327: configure: --with-tcp-port option being partially ignored
account for non-standard default port-no. configured at build-time
netware/mysqld_safe.c:
Bug #15327: configure: --with-tcp-port option being partially ignored
account for non-standard default port-no. configured at build-time
scripts/Makefile.am:
Bug #15327: configure: --with-tcp-port option being partially ignored
make factory default for TCP port available as MYSQL_TCP_PORT_DEFAULT
if build-time configured with a different default. (0 if unchanged)
scripts/mysql_config.sh:
Bug #15327: configure: --with-tcp-port option being partially ignored
set up MYSQL_TCP_PORT if not already set in environment:
- if user configured --with-tcp-port, use that value as default
- otherwise assume "use a good default": search mysqld/tcp in
/etc/services; if that doesn't exist, use factory default (3306)
scripts/mysql_fix_privilege_tables.sh:
Bug #15327: configure: --with-tcp-port option being partially ignored
clarifying notice only
scripts/mysqld_safe-watch.sh:
Bug #15327: configure: --with-tcp-port option being partially ignored
account for non-standard default port-no. configured at build-time
server-tools/instance-manager/priv.h:
Bug #15327: configure: --with-tcp-port option being partially ignored
account for non-standard default port-no. configured at build-time
sql/mysqld.cc:
Bug #15327: configure: --with-tcp-port option being partially ignored
if builder specifically requested a default port, use that
(even if it coincides with our factory default).
only if they didn't do we check /etc/services (and, failing
on that, fall back to the factory default of 3306).
either default can be overridden by the environment variable
MYSQL_TCP_PORT, which in turn can be overridden with command
line options.
tests/mysql_client_test.c:
Bug #15327: configure: --with-tcp-port option being partially ignored
make help on --port a little more clear
tests/ssl_test.c:
Bug #15327: configure: --with-tcp-port option being partially ignored
account for non-standard default port-no. configured at build-time
tests/thread_test.c:
Bug #15327: configure: --with-tcp-port option being partially ignored
make help on --port a little more clear