Commit graph

1471 commits

Author SHA1 Message Date
Nirbhay Choubey
04caf341b9 Bug#12671635 HELP-TABLEFORMAT DOESN'T MATCH HELP-FILES
As current size limit of 'url' field of help_topic
table is no longer sufficient for the contents of
the fill_help_tables-5.1.sql. So, loading the contents
in the table might result in warning (or error with
stricter modes).

Updated the type for 'url' field of help_topic as well
as help_category tables from char(128) to text.
2013-03-21 23:36:02 +05:30
Murthy Narkedimilli
fe85f54640 Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 13:29:12 +01:00
Murthy Narkedimilli
053d7e775c Updated/added copyright headers. 2013-02-25 15:26:00 +01:00
Sujatha Sivakumar
4d494b1726 Bug#11746817:MYSQL_INSTALL_DB CREATES WILDCARD GRANTS WHEN
HOST HAS '_' IN THE HOSTNAME

Problem:
=======
'_' and '%' are treated as a wildcards by the ACL code and
this is documented in the manual. The problem with
mysql_install_db is that it does not take this into account
when creating the initial GRANT tables:

--- cut ---
REPLACE INTO tmp_user SELECT @current_hostname,'root','','Y',
'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',
'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',
0,0,0,0 FROM dual WHERE LOWER( @current_hostname) != 'localhost';
--- cut ---

If @current_hostname contains any wildcard characters, then 
a wildcard entry will be defined for the 'root' user, 
which is a flaw.

Analysis:
========
As per the bug description when we have a hostname with a
wildcard character in it, it allows clients from several other
hosts with similar name pattern to connect to the server as root.
For example, if the hostname is like 'host_.com' then the same
name is logged in mysql.user table. This allows 'root' users
from other hosts like 'host1.com', 'host2.com' ... to connect
to the server as root user.

While creating the intial GRANT tables we do not have a check
for wildcard characters in hostname.

Fix:
===
As part of fix escape character "\" is added before wildcard
character to make it a plain character, so that the one and
only host with the exact name will be able to connect to the
server.

scripts/mysql_system_tables_data.sql:
  while creating default users get the hostname and
  replace the wildcard characters within the hostname after
  escaping them.
2013-02-19 14:31:11 +05:30
Nirbhay Choubey
825459b8cd Bug#16046140 BIN/MYSQLD_SAFE: TEST: ARGUMENT EXPECTED
Some shell interpreters do not support '-e' test
primary to construct conditions.

man test 1 (on S10)
...skip...
-e file True if file exists. (Not available in sh.)
...skip...

Hence, check for the existence of a file using
'-e' might result in a syntax error on such
shell programs.

Fixed by replacing it by '-f'.
2012-12-27 17:33:34 +05:30
Joerg Bruehe
86b311fbdf Automerge into main 5.1 2012-10-19 20:09:29 +02:00
Tatjana Azundris Nuernberg
b86aea6ce5 Bug#11764559: UMASK IS IGNORED BY ERROR LOG
mysqld_safe script did not heed MySQL specific environment variable
$UMASK, leading to divergent behavior between mysqld and mysqld_safe.

Patch adds an approximation of mysqld's behavior to mysqld_safe,
within the bounds dictated by attempt to have mysqld_safe run on
even the most basic of shells (proper '70s sh, not just bash
with a fancy symlink).

Patch also adds approximation of said behavior to mysqld_multi
(in perl).
2012-10-17 07:22:06 +01:00
Joerg Bruehe
575a64c48e Backport this change from MySQL 5.5 to 5.1:
Bug #14181049: MYSQL_INSTALL_DB.PL CREATES EMPTY SYSTEM TABLES FOR MYSQL

  The script is different from what's used on unixes.
  It was not playing the table insertion script (mysql_system_tables_data.sql),
  although it was checking for the presence of this script.
  Fixed by re-enabling the lookup for this file and replaying it at bootstrap
  time. Note that on the Unixes "SELECT @@hostname" does return a fully qualified
  name, whereas on Windows it returns only a hostname.
  So by default we're filtering records in the mysql.user table until we ensure
  this is fixed.

The change was coded in 5.5 by Georgi Kodinov <Georgi.Kodinov@Oracle.com>
2012-09-11 20:56:22 +02:00
Nirbhay Choubey
55f3fd4d63 Bug#13741677 MYSQL_SECURE_INSTALLATION DOES NOT
WORK + SAVES ROOT PASSWORD TO DISK!

The secure installation scripts connect to the
server by storing the password in a temporary
option file. Now, if the script gets killed or
fails for some reason, the removal of the option
file may not take place.

This patch introduces following enhancements :
* (.sh) Made sure that cleanup happens at every
  call to 'exit 1'. This is performed implicitly
  by END{} in pl.in.
* (.pl.in) Added a warning in case unlink fails
  to delete the option/query files.
* (.sh/.pl.in) Added more signals to the signal
  handler list. SIG# 1, 3, 6, 15
2012-07-26 21:47:03 +05:30
Kent Boortz
6a003dd8ef Updated/added copyright headers 2012-02-15 17:21:38 +01:00
Nirbhay Choubey
a667fe030b Bug#11765888 58898: MYSQL_INSTALL_DB: NOT ALL OPTIONS DOCUMENTED
(EG: --DEFAULTS-FILE )
  
Updating help message in scripts/mysql_install_db.pl.in file.


scripts/mysql_install_db.pl.in:
  Bug#11765888 58898: MYSQL_INSTALL_DB: NOT ALL OPTIONS DOCUMENTED
                              (EG: --DEFAULTS-FILE )
    
  Updating help message.
2011-09-06 21:50:04 +05:30
Nirbhay Choubey
d24953af5c Removing a stray line, went into the last push. 2011-09-06 21:25:28 +05:30
Nirbhay Choubey
079d3cc6a6 Bug#11765888 58898: MYSQL_INSTALL_DB: NOT ALL OPTIONS DOCUMENTED
(EG: --DEFAULTS-FILE )

Added help message for the missing options (--no-defaults,
--defaults-file and --defaults-extra-file).
2011-09-06 21:06:09 +05:30
Kent Boortz
027b5f1ed4 Updated/added copyright headers 2011-07-03 17:47:37 +02:00
Kent Boortz
bb3723835e Updated/added copyright headers 2011-06-30 21:27:04 +02:00
Kent Boortz
68f00a5686 Updated/added copyright headers 2011-06-30 17:37:13 +02:00
Kent Boortz
44135d4725 Updated/added copyright headers 2011-06-30 17:31:31 +02:00
Georgi Kodinov
a4d073ccc0 merge mysql-5.0-security->mysql-5.1-security 2011-03-21 16:03:35 +02:00
Georgi Kodinov
0e28a072e3 Bug #59815: Missing License information with enterprise GPL packages
on behalf of Kent: Include the README into the binary packages
2011-02-08 17:36:25 +02:00
Kent Boortz
4acfdb9df1 Merge 2010-12-29 00:47:05 +01:00
Kent Boortz
85323eda8a - Added/updated copyright headers
- Removed files specific to compiling on OS/2
- Removed files specific to SCO Unix packaging
- Removed "libmysqld/copyright", text is included in documentation
- Removed LaTeX headers for NDB Doxygen documentation
- Removed obsolete NDB files
- Removed "mkisofs" binaries
- Removed the "cvs2cl.pl" script
- Changed a few GPL texts to use "program" instead of "library"
2010-12-28 19:57:23 +01:00
Alexander Nozdrin
1e43b94c70 Merge from mysql-5.0-bugteam. 2010-11-24 13:07:37 +03:00
Alexander Nozdrin
85f855e0ed A follow-up for Bug#58340 (Remove Server GPL EXCEPTIONS-CLIENT file) -- remove all
EXCEPTIONS-CLIENT from all the places.
2010-11-24 12:53:39 +03:00
Davi Arnaut
8822ecff2d Bug#55846: Link tests fail on Windows - my_compiler.h missing
Make the my_compiler.h header, like my_attribute.h, part of
the distribution. This is required due to the dependency of
the former on the latter (which can undefine __attribute__).
2010-08-24 10:48:45 -03:00
Georgi Kodinov
1919414fbe Bug #54004 : mysql_secure_installation identifies "local host" incorrectly
The removal of non-local root users is overzealous in
mysql_secure_installation. (Bug #54004)
2010-07-14 13:53:49 +03:00
Georgi Kodinov
266ca421da Bug #52274 : Missing path to mysql in mysql_secure_installation
Added some code to try to find the mysql command line in the most 
common places and stop if it's not there.
2010-07-09 14:11:12 +03:00
Georgi Kodinov
279b3adfc7 Bug #53613: mysql_upgrade incorrectly revokes TRIGGER privilege on given table
Fixed an incomplete historical ALTER TABLE MODIFY trimming the trigger 
privilege bit from mysql.tables_priv.Table_priv column.
Removed the duplicate ALTER TABLE MODIFY.
Test suite added.
2010-07-01 12:05:09 +03:00
Joerg Bruehe
10d0786cd4 Bug#54590 "make_binary_distribution" fails because a command
line exceeds the limit

Upmerge the fix from 5.0 to 5.1
2010-06-17 19:55:21 +02:00
Joerg Bruehe
609e65ba54 Bug#54590 "make_binary_distribution" fails because a command
line exceeds the limit

The number and/or names of our files for the main test suite
(contents of "mysql-test/t/") now exceeds the command line
length limit on AIX.
Solve the problem by using separate "cp" commands for the
various file name extensions.
2010-06-17 19:47:38 +02:00
Georgi Kodinov
f34a731b6a Bug #43594: mysqlhotcopy does not ignore log tables and others in mysql database
Added a filter to mysqlhotcopy to filter out the same tables in the 'mysql' 
database that mysqldump filters out.
2010-04-12 11:56:28 +03:00
Georgi Kodinov
83dfeb2435 Bug #47095: Can't open_files_limit really be larger than 65535?
Several problems addressed:

1. The maximum value for --open_files_limit on non-windows boxes
is now raised to UINT_MAX (the maximum possible without significant
changes in the code). The maximum value on windows is kept to be
2048 due to a known limitation (bug 24509).

2. mysqld_safe now supports --open_files_limit=xx in addition to 
--open-files-limit=xx

3. mysqld_safe always passes through --open[_-]files[_-]limit
to the underlying mysqld. It used to pass it through only if it 
the user running the script has access to the root directory or
there was an --user argument specified.

4. Fixed a prototype in my_file.c to match its counterpart in 
the other #ifdef branch.
2010-04-09 14:47:18 +03:00
Georgi Kodinov
d63b0a5c62 Bug #35250: readline check breaks when doing vpath build
MySQL uses two source layouts when building : the bzr 
layout and the source package layout.
The previous fix for bug 35250 contained 1 change that is
valid for both modes and a number of changes that are valid
only for the bzr source layout.
The important thing was to fix the source package layout.
And for this the change in configure.in was sufficient.
It's not trivial (and not requested by this bug) to support 
VPATH builds from the bzr trees.
This is why the other changes are reverted and the change to
fix the VPATH build for source distributions is left intact.
2010-03-09 17:51:31 +02:00
Georgi Kodinov
b7a63ac9e2 merge 2010-03-01 10:44:34 +02:00
Georgi Kodinov
54639a1597 Bug #51468: mysqld_multi is broken in 5.1.44
Fixed a syntax error in mysqld_multi.sh
2010-02-26 14:49:13 +02:00
Davi Arnaut
b0a1ae09ae Bug#49823: mysql_upgrade fatal error due to general_log / slow_low CSV NULL
The problem was that the CSV storage engine does not support NULL
fields, yet in some early 5.1 version the log tables (general_log
and slow_log) were created with null fields. On top of this, when
altering a CSV table column, all fields of the table must be NOT
NULL otherwise the alteration fails.

The solution is to ensure that during upgrade all columns of the
log tables are NOT NULL.

mysql-test/r/log_tables_upgrade.result:
  Add test case result for Bug#49823.
mysql-test/std_data/bug49823.CSV:
  Sample data for test.
mysql-test/std_data/bug49823.frm:
  Add a CSV table which mimics the general_log table, except that
  it contains a nullable column.
mysql-test/t/log_tables_upgrade.test:
  Add test case for Bug#49823.
scripts/mysql_system_tables_fix.sql:
  Ensure that all columns of the log tables are NOT NULL.
2010-02-26 09:22:48 -03:00
Georgi Kodinov
792fc9f784 Bug #35250: readline check breaks when doing vpath build
Fixed several (obvious) places that don't work with vpath
build.
2010-02-12 18:28:35 +02:00
unknown
62db6839b8 configure.in
- Changes to the banner text
 - Use older AC_PROG_LIBTOOL (Bug#51009)

scripts/mysql_install_db.sh
 - Changes to banner text
2010-02-17 18:39:28 +01:00
Magne Mahre
132b46e96e WL#5154 Remove deprecated 4.1 features
Several items said to be deprecated in the 4.1 manual
have never been removed.  This worklog adds deprecation
warnings when these items are used, and warns the user 
that the items will be removed in MySQL 5.6.

A couple of previously deprecation decision have been
reversed (see single file comments)



client/client_priv.h:
  Macro similar to the one in the server (mysql_priv.h)
  for printing a deprecation warning message
client/mysql.cc:
  no-auto-rehash  will not be deprecated
  skip-line-numbers will not be deprecated
  skip-column-names will not be deprecated
  no-pager is deprecated
  set-variable is deprecated
  no-named-commands is deprecated
client/mysqladmin.cc:
  set-variable is deprecated
client/mysqlbinlog.cc:
  position is deprecated
client/mysqldump.c:
  first-slave is deprecated
  no-set-names is deprecated
  set-variable is deprecated
mysql-test/r/mysqlbinlog.result:
  Adding the [Warning] to the test case, just to show that the
  deprecation works.
  The test case will be changed in Celosia to use --start-position.
mysys/my_getopt.c:
  set-variable (include -O) is deprecated
scripts/mysqld_multi.sh:
  Warning for mysqld_multi
sql/mysqld.cc:
  default-collation is deprecated
  log-bin-trust-routine-creators is deprecated
  set-variable is deprecated
  default-character-set is deprecated
  safe-show-database is deprecated
sql/share/errmsg.txt:
  Added version number for sql_log_update deprecation message.
2010-01-21 09:10:05 +01:00
unknown
699a87110d This is a patch for bug#41569.
"mysql_upgrade (ver 5.1) add 3 fields to mysql.proc table but does
not set values".
            
mysql_upgrade (ver 5.1) adds 3 fields (character_set_client, 
collation_connection and db_collation) to the mysql.proc table, but 
does not set any values. When we run stored procedures, which were 
created with mysql 5.0, a warning is logged into the error log.
            
The solution to this is for mysql_upgrade to set default best guess
values for these fields. A warning is also written during upgrade, to
make the user aware that default values are set.

client/mysql_upgrade.c:
  Result lines which start with "WARNING" are passed through to the output. 
  This way we have a way of triggering WARNING-messages during upgrade 
  directly from the .sql-script.
mysql-test/r/mysql_upgrade.result:
  Expected result of the test.
mysql-test/t/mysql_upgrade.test:
  Added a test-case for the bug.
scripts/mysql_system_tables_fix.sql:
  The new fields are populated, and warnings are written.
2009-12-03 17:15:47 +01:00
Kent Boortz
eb7bfcac40 Merge 2009-11-17 17:53:45 +01:00
Kent Boortz
f881a7baa1 Include the "mysql-test/collections" directory when creating windows ZIP archive 2009-11-17 17:49:24 +01: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
Timothy Smith
f6406bcdd8 auto-merge 2009-11-04 14:09:34 -07: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