1
0
mirror of https://github.com/MariaDB/server.git synced 2025-10-16 22:27:52 +03:00
Commit Graph

1430 Commits

Author SHA1 Message Date
Timothy Smith
f6406bcdd8 auto-merge 2009-11-04 14:09:34 -07:00
Timothy Smith
345054c916 Add a few comments to clarify do_query() return values in mysql_secure_installation.pl 2009-11-03 14:34:01 -07:00
Timothy Smith
e29b7ef5b8 Bug#48031: mysql_secure_installation -- bash bug regarding passwords with
special chars

This script failed when the user tried passwords with multiple spaces, \, # or
' characters.  Now proper escaping and quoting is used in all contexts.

This problem occurs in the Perl version of this script, too, so fix it in both
places.
2009-11-03 13:50:28 -07:00
Timothy Smith
d31e4636b6 Bug#48086: mysql_secure_installation does NOT work on Solaris
Remove a bash-ism (if ! ...).
2009-11-03 13:32:12 -07:00
Timothy Smith
141e796163 Bug#35106: mysql_secure_installation fails on Windows, missing "use
Term::ReadKey"

Add the missing module import.  Also, while here, fix a few glaring problems
with the script, and ensure that it behaves properly.  It seems this script
may have never been working correctly (e.g., reading password didn't chomp()
the result, so password was set with \n at the end; comparing the re-typed
password to original was done with inverted test).

Add END { cleanup(); } block to ensure the script removes temporary working
files.

Add SIG{INT} / SIG{QUIT} handler.

Do a bit of reorganization to make the code easier to understand.

Limit failed connection attempts to 3.

Use ./bin/mysql if it exists, and then fall back on mysql in PATH (before it
assumed 'mysql' in the path).  Print a nicer error if 'mysql' can't be called.

This has been tested on Windows (ActivePerl from cmd.exe, no cygwin needed)
and Linux.
2009-10-30 14:28:33 -06:00
Sergey Glukhov
f554a3c094 5.0-bugteam->5.1-bugteam merge 2009-10-27 14:09:36 +04:00
Sergey Glukhov
f0a7ff8419 Bug#41049 does syntax "grant" case insensitive?
Problem 1:
column_priv_hash uses utf8_general_ci collation
for the key comparison. The key consists of user name,
db name and table name. Thus user with privileges on table t1
is able to perform the same operation on T1
(the similar situation with user name & db name, see acl_cache).
So collation which is used for column_priv_hash and acl_cache
should be case sensitive.
The fix:
replace system_charset_info with my_charset_utf8_bin for
column_priv_hash and acl_cache
Problem 2:
The same situation with proc_priv_hash, func_priv_hash,
the only difference is that Routine name is case insensitive.
So the fix is to use my_charset_utf8_bin for
proc_priv_hash & func_priv_hash and convert routine name into lower
case before writing the element into the hash and
before looking up the key.
Additional fix: mysql.procs_priv Routine_name field collation
is changed to utf8_general_ci.
It's necessary for REVOKE command
(to find a field by routine hash element values).
Note: 
It's safe for lower-case-table-names mode too because
db name & table name are converted into lower case
(see GRANT_NAME::GRANT_NAME).


mysql-test/include/have_case_insensitive_fs.inc:
  test case
mysql-test/r/case_insensitive_fs.require:
  test case
mysql-test/r/grant_lowercase_fs.result:
  test result
mysql-test/r/lowercase_fs_off.result:
  test result
mysql-test/r/ps_grant.result:
  test result
mysql-test/r/system_mysql_db.result:
  changed Routine_name field collation to case insensitive
mysql-test/t/grant_lowercase_fs.test:
  test case
mysql-test/t/lowercase_fs_off.test:
  test case
scripts/mysql_system_tables.sql:
  changed Routine_name field collation to case insensitive
scripts/mysql_system_tables_fix.sql:
  changed Routine_name field collation to case insensitive
sql/sql_acl.cc:
  Problem 1:
  column_priv_hash uses utf8_general_ci collation
  for the key comparison. The key consists of user name,
  db name and table name. Thus user with privileges on table t1
  is able to perform the same operation on T1
  (the similar situation with user name & db name, see acl_cache).
  So collation which is used for column_priv_hash and acl_cache
  should be case sensitive.
  The fix:
  replace system_charset_info with my_charset_utf8_bin for
  column_priv_hash and acl_cache
  Problem 2:
  The same situation with proc_priv_hash, func_priv_hash,
  the only difference is that Routine name is case insensitive.
  So the fix is to use my_charset_utf8_bin for
  proc_priv_hash & func_priv_hash and convert routine name into lower
  case before writing the element into the hash and
  before looking up the key.
  Additional fix: mysql.procs_priv Routine_name field collation
  is changed to utf8_general_ci.
  It's necessary for REVOKE command
  (to find a field by routine hash element values).
  Note: 
  It's safe for lower-case-table-names mode too because
  db name & table name are converted into lower case
  (see GRANT_NAME::GRANT_NAME).
2009-10-27 12:09:19 +04:00
Jonathan Perkin
f021d44687 bug#41546: mysql-stress-run.pl is not packaged on Windows
Copy mysql-stress-run.pl into noinstall package.
2009-09-30 14:46:47 +01:00
Jonathan Perkin
c7d32876f3 Install mysqld.lib 2009-09-04 17:45:07 +02:00
Jonathan Perkin
71f4bfd6c7 Only install the innodb plugin if the plugin directory exists. 2009-09-01 08:40:13 +02:00
Georgi Kodinov
40defb1d53 backport of Chad's fix for bug #39326 to 5.0-bugteam 2009-08-19 10:59:17 +03:00
Jonathan Perkin
f0e14f7181 Install innodb_plugin on Windows. 2009-08-18 16:23:15 +02:00
Joerg Bruehe
886c982730 Merge the bug fix for 37808 ("make_binary_distribution.sh")
into 5.0-build.
2009-07-21 19:37:28 +02:00
Joerg Bruehe
35d6a155a9 Merge the fix for bug#37808 into 5.1-build. 2009-07-21 18:49:42 +02:00
Joerg Bruehe
64c7dff6f5 Upmerge a bug fix from 5.0 to 5.1:
bug#37808
"make_binary_distribution" does not always generate correct names

Successfully tested on 5.1 sources.
2009-07-21 09:36:43 +02:00
Joerg Bruehe
4bcab578af This is a fix for bug#37808
"make_binary_distribution" does not always generate correct names

Originally, we solved deficiencies of the predefined "autoconf" macros
(at least on OS X 10.5, they do not correctly differ between "x86" and
"x86_64") by providing explicit "--platform" arguments.

With this patch, "make_binary_distribution" evaluates CFLAGS, so it
"just works" because CFLAGS contains information about the target CPU.

This patch is accompanied by a change in our build tools that drops the
setting of "--platform" arguments.

scripts/make_binary_distribution.sh:
  This is a fix for bug#37808
     "make_binary_distribution" does not always generate correct names
  
  Our platform names are the combination of operating system, architecture (CPU),
  and a possible suffix (typically "64bit", if a CPU is available in 32 bit too).
  We get these values from some predefined "autoconf" macros.
  
  However, these macros are not perfect, especially on OS X 10.5 they do not
  differ correctly between x86 (32 bit) and x86_64 (64 bit).
  Originally, we solved that by providing an explicit "--platform" argument,
  but it is better to get rid of that and ensure the script "just works".
  
  The best indication we have about the CPU is the "CFLAGS" value provided
  with "configure" and used in "make": It describes for which CPU the
  binaries are generated, not just which one was running the build.
  This approach should work even if we implement cross-compilation.
  
  So this patch evaluates CFLAGS and extracts its "-arch XYZ" part.
  
  When touching the file, I also replaced some tab characters by blanks.
2009-06-26 11:58:19 +02:00
Georgi Kodinov
a11f9409e1 automerge 2009-06-19 18:32:10 +03:00
Georgi Kodinov
014e289125 Bug #36654: mysqld_multi cannot start instances with different versions
occasionally.

mysql_multi can call mysqld_safe. In doing this it's not changing the 
current working directory. This may cause confusion in the case where 
mysqld_multi is handling instances of servers of different versions 
and the current working directory is the installation directory of one 
of these servers.

Fixed by enhancing the meaning of basedir in [mysqldN] sections of 
mysqld_multi. If specified, mysqld_multi will change the current 
working directory to the basedir directory before starting the server 
in mysqld_multi ... start ... and then change it back to what it was.

scripts/mysqld_multi.sh:
  Bug #36654: optionally preserve, change and restore the cwd when 
  starting server instances
2009-06-19 15:52:20 +03:00
Joerg Bruehe
74507d486a Merge up 5.0-build into 5.1-build:
mostly just the merge changesets,
but also a change of Perl scripts to use "/usr/bin/perl" fixed.
2009-05-29 15:40:55 +02:00
Staale Smedseng
a1212080ad Bug #44736 mysqld_safe's my_which() is broken and
doesn't find 'logger'

Due to a variable quoting mistake, the $PATH environment
variable isn't parsed correctly when searching for the
existence of the desired executable(s) (logger in this 
case).

This patch removes the quotes.
2009-05-25 18:21:40 +02:00
Georgi Kodinov
feef9ed1de merged 5.1-main -> 5.1-bugteam 2009-05-15 16:03:22 +03:00
Kent Boortz
6d7f876a88 Use /usr/bin/perl as standard Perl install path (bug#44643) 2009-05-09 23:43:48 +02:00
Joerg Bruehe
d3dbf166b6 Merge main 5.0 into 5.0-build 2009-05-08 22:16:06 +02:00
Joerg Bruehe
d2fe2a71da Merge main 5.1 into 5.1-build
165 changesets with 23 conflicts:
Text conflict in mysql-test/r/lock_multi.result
Text conflict in mysql-test/t/lock_multi.test
Text conflict in mysql-test/t/mysqldump.test
Text conflict in sql/item_strfunc.cc
Text conflict in sql/log.cc
Text conflict in sql/log_event.cc
Text conflict in sql/parse_file.cc
Text conflict in sql/slave.cc
Text conflict in sql/sp.cc
Text conflict in sql/sp_head.cc
Text conflict in sql/sql_acl.cc
Text conflict in sql/sql_base.cc
Text conflict in sql/sql_class.cc
Text conflict in sql/sql_crypt.cc
Text conflict in sql/sql_db.cc
Text conflict in sql/sql_lex.cc
Text conflict in sql/sql_parse.cc
Text conflict in sql/sql_select.cc
Text conflict in sql/sql_table.cc
Text conflict in sql/sql_view.cc
Text conflict in storage/innobase/handler/ha_innodb.cc
Text conflict in storage/myisam/mi_packrec.c
Text conflict in tests/mysql_client_test.c

Updates to Innobase, taken from main 5.1:
bzr: ERROR: Some change isn't sane:
File mysql-test/r/innodb-semi-consistent.result is owned by Innobase and should not be updated.
File mysql-test/t/innodb-semi-consistent.test is owned by Innobase and should not be updated.
File storage/innobase/handler/ha_innodb.cc is owned by Innobase and should not be updated.
File storage/innobase/ibuf/ibuf0ibuf.c is owned by Innobase and should not be updated.
File storage/innobase/include/row0mysql.h is owned by Innobase and should not be updated.
File storage/innobase/include/srv0srv.h is owned by Innobase and should not be updated.
File storage/innobase/include/trx0trx.h is owned by Innobase and should not be updated.
File storage/innobase/include/trx0trx.ic is owned by Innobase and should not be updated.
File storage/innobase/lock/lock0lock.c is owned by Innobase and should not be updated.
File storage/innobase/page/page0cur.c is owned by Innobase and should not be updated.
File storage/innobase/row/row0mysql.c is owned by Innobase and should not be updated.
File storage/innobase/row/row0sel.c is owned by Innobase and should not be updated.
File storage/innobase/srv/srv0srv.c is owned by Innobase and should not be updated.
File storage/innobase/trx/trx0trx.c is owned by Innobase and should not be updated.
(Set env var 'ALLOW_UPDATE_INNOBASE_OWNED' to override.)
2009-05-08 21:04:07 +02:00
Jim Winstead
d0a1de80b4 The arguments to use for ps on Mac OS X were mis-detected by the mysql_zap
utility. (Bug #41883, patch by Nicklas Westerlund)
2009-05-07 17:53:03 -07:00
Jim Winstead
cc3f48b2e1 mysqld_safe could generate filenames with spaces and then didn't properly
quote them in later use. (Bug #33685, based on a patch by Hartmut Holzgraefe)
2009-05-07 17:25:23 -07:00
Jim Winstead
b78f9a8659 Add explanation of the possible -s values for mysqldumpslow. (Bug #35663,
based on a contribution by Ask Bjørn Hansen)
2009-05-07 10:40:00 -07:00
Jim Winstead
f72fd8fe21 Add support for wildcards in mysql_convert_table_format, and add
short options for all of the long options. (Bug #30373, original
contribution by Tobias Asplund)
2009-04-28 11:47:34 -07:00
Jim Winstead
a9a322e11f mysqld_multi still had mentions of safe_mysqld instead of mysqld_safe,
as well as some unclear example paths. (Bug #28094)
2009-04-28 11:28:03 -07:00
Jim Winstead
137ec698ff Update list of sorting options in mysqldumpslow (Bug #20454) 2009-04-28 11:19:58 -07:00
Jim Winstead
5faee8ed81 Check for MEMORY, HEAP, and BLACKHOLE in mysql_convert_table_format when
preventing a change that would result in table data loss. (Bug #27149)

Also updated mysql_convert_table_format to use --engine as the documentation
claimed, and use the engine terminology throughout instead of the obsolete
'table type'.
2009-04-28 11:12:50 -07:00
Staale Smedseng
90815182f0 Merge from 5.0-bugteam 2009-04-28 18:19:55 +02:00
Staale Smedseng
9f04d27027 Bug#35769 typo in mysqlhotcopy documentation
Fixed a number of typos, and made punctuation and
capitalization more consistent in documentation
and help.
2009-04-28 18:16:17 +02:00
Joerg Bruehe
1b4cfc3632 Upmerge the fix of an error message typo
(in "scripts/make_win_bin_dist")
from 5.0 into 5.1
2009-04-14 21:53:00 +02:00
Joerg Bruehe
5a1124fa98 Just fix a silly typo in an error message ...
scripts/make_win_bin_dist:
  Just fix a silly typo in an error message ...
  Change is so insignificant I even don't update the copyright year.
2009-04-14 21:46:56 +02:00
Joerg Bruehe
11e4e24bc7 Merge a tool change needed for cluster ("CGE") builds
to achieve the correct package names ("scripts/make_binary_distribution.sh").
2009-04-14 12:29:59 +02:00
Chad MILLER
56d421e478 Merge revert of bug32136 into 5.1. 2009-04-02 15:42:29 -04:00
Chad MILLER
02f8ec4d76 Bug#43876: mysqld_multi introduces --no-defaults which screws up my system
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.
2009-04-02 11:29:28 -04:00
Joerg Bruehe
d6e40e1032 Handle the two part version number of cluster builds
(general server part + NDB part)
automatically when creating a binary package,
include only the NDBpart in the package (file) name.

scripts/make_binary_distribution.sh:
  The "version" string of a cluster build contains information
  about both the general server part and the NDB part.
  This is intentional, but it isn't suitable for the package file name.
  
  When packaging a binary build, the script now detects whether
  it is dealing with a cluster build or not.
  If it is a cluster build, the script now removes the server part
  from the version number, leaving the NDB part.
  
  Example:  "5.1.31-ndb-6.4.2"  ->  "6.4.2"
  so packages are named like
            "mysql-cluster-gpl-6.4.2-linux-i686-glibc23.tar.gz"
2009-03-31 17:31:17 +02:00
Staale Smedseng
ab958ee0bd Bug #39852 bug in mysql_setpermission
mysql_setpermission is modified to honor the $db 
variable as suggested when doing a REVOKE ALL for 
menu option 7.
2009-03-31 12:59:22 +02:00
Chad MILLER
3b32eea2a2 Fix several quoting problems, and clean up IFS on failure in my_which(). 2009-03-16 15:28:06 -04:00
Chad MILLER
c924f116f6 Bug#39326: mysqld_safe doesn't use --basedir value in search of \
my_print_defaults

Now use basedir to set an unset ledir and to find the location of
my_print_defaults .
2009-03-16 14:54:28 -04:00
Davi Arnaut
402bc523b2 Bug#36540: CREATE EVENT and ALTER EVENT statements fail with large server_id
The problem is that creating a event could fail if the value of
the variable server_id didn't fit in the originator column of
the event system table. The cause is two-fold: it was possible
to set server_id to a value outside the documented range (from
0 to 2^32-1) and the originator column of the event table didn't
have enough room for values in this range.

The log tables (general_log and slow_log) also don't have a proper
column type to store the server_id and having a large server_id
value could prevent queries from being logged.

The solution is to ensure that all system tables that store the
server_id value have a proper column type (int unsigned) and that
the variable can't be set to a value that is not within the range.

mysql-test/r/events_bugs.result:
  Add test case result for Bug#36540
mysql-test/r/log_tables.result:
  Update column type.
mysql-test/r/system_mysql_db.result:
  Update column type.
mysql-test/r/variables.result:
  Add test case result for server_id value range.
mysql-test/suite/sys_vars/r/server_id_basic_64.result:
  Update test case results.
mysql-test/t/events_bugs.test:
  Add test case for Bug#36540
mysql-test/t/log_tables.test:
  Fix column type.
mysql-test/t/variables.test:
  Add test case for server_id value range.
scripts/mysql_system_tables.sql:
  Columns that store the server_id value must be of type INT UNSIGNED,
  fix event (originator), general_log and slow_log (server_id) tables
  in accordance.
scripts/mysql_system_tables_fix.sql:
  Columns that store the server_id value must be of type INT UNSIGNED,
  fix event (originator), general_log and slow_log (server_id) tables
  in accordance.
sql/mysqld.cc:
  Set min and max values for the server_id variable.
  Unfortunately we can't easily change server_id variable type
  from ulong to uint32 because of the sys_var classes.
2009-03-11 17:30:56 -03:00
Tatiana A. Nurnberg
565660edfa automerge 2009-02-24 09:07:40 +01:00
Tatiana A. Nurnberg
ec8de22f9f Bug#42027: Incorrect parsing of debug and verbose options for mysqldumpslow
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.
2009-02-16 15:38:18 +01:00
Timothy Smith
af193ed97e Auto-merge 5.1-build -> 5.1-bugteam 2009-02-07 16:29:37 +01:00
unknown
5a4e3eaa7a Merge from mysql-5.1.31-release 2009-02-05 20:34:22 +01:00
Chad MILLER
078e413e88 Merge from 5.0-bugteam. 2009-02-04 14:26:04 -05:00
Chad MILLER
243b2639cc Merge from bug tree. 2009-02-04 13:57:33 -05:00
Kent Boortz
e610f61d0e From 5.0.48 the NDB client libraries has been missing in the cluster
packages, this is now corrected (Bug#42278)
2009-01-23 02:59:03 +01:00