1
0
mirror of https://github.com/MariaDB/server.git synced 2025-05-05 16:59:35 +03:00

1691 Commits

Author SHA1 Message Date
Venkata Sidagam
186a9fc76b Bug #12917164 DROP USER CAN'T DROP USERS WITH LEGACY
UPPER CASE HOST NAME ANYMORE
Merging from mysql-5.1 to mysql-5.5
2013-10-31 23:14:33 +05:30
Venkata Sidagam
19990c9219 Bug #12917164 DROP USER CAN'T DROP USERS WITH LEGACY
UPPER CASE HOST NAME ANYMORE

Description:
It is not possible to drop users with host names with upper case
letters in them. i.e DROP USER 'root'@'Tmp_Host_Name'; is failing
with error.

Analysis: Since the fix 11748570 we came up with lower case hostnames
as standard. But in the current bug the hostname is created by
mysql_install_db script is still having upper case hostnames. 
So, if we have the hostname with upper case letters like(Tmp_Host_Name)
then we will have as it is stored in the mysql.user table. 
In this case if use "'DROP USER 'root'@'Tmp_Host_Name';" it gives 
error because we do compare with the lower case of hostname since the 
11748570 fix.

Fix: We need to convert the hostname to lower case before storing into 
the mysql.user table when we run the mysql_install_db script.
2013-10-31 23:02:44 +05:30
Sreedhar.S
d8bcc6215e BUG 17560050 - MYSQL_INSTALL_DB SCRIPT FAILING WITH RESOLVEIP ISSUES. 2013-10-09 17:08:45 +05:30
Sreedhar.S
99146a5056 Bug #16619754 - MYSQL_INSTALL_DB.PL FAILS TO CREATE DATABASE ON WINDOWS.
As this mysql_install_db.pl file has always generated lots of confusion on Windows.  This fix will make sure to get it removed only from Windows
2013-09-30 13:01:17 +05:30
Venkata Sidagam
17eaef19d5 Bug #16776528 RACE CONDITION CAN CAUSE MYSQLD TO REMOVE SOCKET FILE ERRANTLY
Merging from 5.1 to 5.5
2013-09-09 21:31:50 +05:30
Venkata Sidagam
044a7d7c2f Bug #16776528 RACE CONDITION CAN CAUSE MYSQLD TO REMOVE SOCKET FILE ERRANTLY
Reverting the patch. Because this change is not to me made for GA versions.
2013-09-09 20:32:50 +05:30
Anirudh Mangipudi
793b5835fd Bug #16776528 RACE CONDITION CAN CAUSE MYSQLD TO REMOVE SOCKET FILE ERRANTLY
Problem Description:
A mysqld_safe instance is started. An InnoDB crash recovery begins which takes
few seconds to complete. During this crash recovery process happening, another
mysqld_safe instance is started with the same server startup parameters. Since
the mysqld's pid file is absent during the crash recovery process the second
instance assumes there is no other process and tries to acquire a lock on the
ibdata files in the datadir.  But this step fails and the 2nd instance keeps 
retrying 100 times each with a delay of 1 second. Now after the 100 attempts, 
the server goes down, but while going down it hits the mysqld_safe script's 
cleanup section and without any check it blindly deletes the socket and pid 
files. Since no lock is placed on the socket file, it gets deleted.

Solution:
We create a mysqld_safe.pid file in the datadir, which protects the presence 
server instance resources by storing the mysqld_safe's process id in it. We
place a check if the mysqld_safe.pid file is existing in the datadir. If yes
then we check if the pid it contains is an active pid or not. If yes again,
then the scripts logs an error saying "A mysqld_safe instance is already 
running". Otherwise it will log the present mysqld_safe's pid into the 
mysqld_safe.pid file.
2013-08-12 23:06:58 +05:30
Anirudh Mangipudi
8757f39543 Bug #16776528 RACE CONDITION CAN CAUSE MYSQLD TO REMOVE SOCKET FILE ERRANTLY
Problem Description:
A mysqld_safe instance is started. An InnoDB crash recovery begins which takes
few seconds to complete. During this crash recovery process happening, another
mysqld_safe instance is started with the same server startup parameters. Since
the mysqld's pid file is absent during the crash recovery process the second
instance assumes there is no other process and tries to acquire a lock on the
ibdata files in the datadir.  But this step fails and the 2nd instance keeps 
retrying 100 times each with a delay of 1 second. Now after the 100 attempts, 
the server goes down, but while going down it hits the mysqld_safe script's 
cleanup section and without any check it blindly deletes the socket and pid 
files. Since no lock is placed on the socket file, it gets deleted.

Solution:
We create a mysqld_safe.pid file in the datadir, which protects the presence 
server instance resources by storing the mysqld_safe's process id in it. We
place a check if the mysqld_safe.pid file is existing in the datadir. If yes
then we check if the pid it contains is an active pid or not. If yes again,
then the scripts logs an error saying "A mysqld_safe instance is already 
running". Otherwise it will log the present mysqld_safe's pid into the 
mysqld_safe.pid file.
2013-08-12 21:54:50 +05:30
Nirbhay Choubey
3f14ac0406 Merge of patch for Bug#12671635 from mysql-5.1. 2013-03-21 23:40:25 +05:30
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
8afe262ae5 Fix for Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 15:53:48 +01:00
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
1048aed515 Merge from mysq-5.1 to mysql-5.5 2013-02-19 14:36:30 +05:30
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
519daab67a Merge of patch for Bug#16046140 from mysql-5.1. 2012-12-27 17:36: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
b4a7756186 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).

(backport)

manual merge
2012-10-17 07:36:40 +01: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
Georgi Kodinov
4fb57747fe Bug #13548161: MYSQLD_SAFE IMPROVEMENTS FOR 5.5 ALLWAYS SETS PLUGIN_DIR
TO DEFAULT IGNOR

The test in mysqld_safe for the presence of the --plugin-dir and assigning a default
value to it were performed before the actual argument parsing.
This is wrong, as PLUGIN_DIR mysqld_safe code also uses MY_BASEDIR_VERSION to 
look for version specific plugin directory if present.
Fixed by moving the PLUGIN_DIR logic after the parse_arguments() call.
2012-08-27 15:30:58 +03:00
Georgi Kodinov
aa624daf8b 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.
2012-08-24 15:01:31 +03:00
Venkata Sidagam
94bd7bd6b7 Bug #12992993 MYSQLHOTCOPY FAILS IF VIEW EXISTS
Problem description:
mysqlhotcopy fails if a view presents in the database.

Analysis:
Before 5.5 'FLUSH TABLES <tbl_name> ... WITH READ LOCK' will able 
to get lock for all tables (i.e. base tables and view tables). 
In 5.5 onwards 'FLUSH TABLES <tbl_name> ... WITH READ LOCK' for 
'view tables' will not work, because taking flush locks on view 
tables is not valid.

Fix:
Take flush lock for 'base tables' and read lock for 'view table' 
separately.

Note: most of the patch has been backported from bug#13006947's patch
2012-08-14 15:13:30 +05:30
Nirbhay Choubey
251545431d Merge of patch for Bug#13741677 from mysql-5.1. 2012-07-26 21:59:05 +05:30
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
MySQL Build Team
7a35cb9150 Updated/added copyright headers 2012-02-16 10:48:16 +01:00
Kent Boortz
6a003dd8ef Updated/added copyright headers 2012-02-15 17:21:38 +01:00
Georgi Kodinov
cc76953cde Bug #11761530: 54035: MSYQLD_SAFE BEHAVIOUR CONSUMES TOO MUCH CPU IF IT IS UNABLE TO RESTART MY
Added a trottling mechanism to mysqld_safe.
On every 5 sub-second restarts it will wait for a second before attempting again.
Note that this requires 'sleep' and 'date' command line utilities.
The code would adjust and will do nothing if any of them is not present.
2011-11-10 15:46:51 +02:00
unknown
e36692d0c2 fix for bug 11748060/34981 2011-11-17 09:13:43 +01:00
Joerg Bruehe
3690fa63e3 Bug #58241
Please exclude make_binary_distribution from the distribution

With cmake (5.5 and up), "make package" will do it,
or cpack.
The (generated) "scripts/make_binary_distribution" is just
a wrapper around a "cpack" call,
with path names set at build time.

Similar, "make_win_bin_dist" is not needed any more.

scripts/CMakeLists.txt:
  Cleanup:
  Append a trailing newline when generating "make_binary_distribution"
  (which is just a wrapper around a "cpack" call).
support-files/mysql.spec.sh:
  "make_win_bin_dist" is removed from the sources,
  so its man page is gone,
  and it need not be removed when creating the RPMs.
2011-09-13 12:32:53 +02:00
Nirbhay Choubey
e435365b45 Local merge from mysql-5.1. 2011-09-06 21:52:03 +05:30
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
1439641fef Local merge from mysql-5.1. 2011-09-06 21:27:32 +05:30
Nirbhay Choubey
d24953af5c Removing a stray line, went into the last push. 2011-09-06 21:25:28 +05:30
Nirbhay Choubey
b91308e938 Local merge of patch for bug#11765888 from mysql-5.1. 2011-09-06 21:09:35 +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
Nirbhay Choubey
a3ff4f7c93 BUG#11878394 - MYSQLD_SAFE TEST FOR ALREADY RUNNING PROCESS
FAILS, CAUSING CLOBBERED SOCKET

A check for running mysqld instances was failing in mysqld_safe
because of an incorrect shell command generated by cmake. The
problem is that cmake retains the '\' of escaped double-quote,
so the generated mysqld_safe script's command contained \" in
the shell command, and hence the failure. 

Fixed the command in scripts\CMakeLists.txt.


scripts/CMakeLists.txt:
  BUG#1878394 - MYSQLD_SAFE TEST FOR ALREADY RUNNING PROCESS
                FAILS, CAUSING CLOBBERED SOCKET
  
  Removed the escaped quotes and grep for 'grep process' from
  the shell commands.
2011-09-02 16:52:04 +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
Kent Boortz
02e07e3b51 Updated/added copyright headers 2011-06-30 17:46:53 +02:00
Georgi Kodinov
814dc637c9 merge mysql-5.1-security->mysql-5.5-security 2011-04-07 13:57:32 +03:00
Georgi Kodinov
6d849b93f2 Merged the fix for bug #11936829 to 5.5.11 release
Bug #11936829: DIFF. BETWEEN MYSQL.USER (AUTHENTICATION_STRING) IN 
  FRESH AND UPGRADED 5.5.11
             
There was no modification for pre 5.5.11 builds that had 
authentication_string.  Thus the column was not upgraded 
by mysql_upgrade.
                         
Fixed by adding an ALTER TABLE MODIFY to update an existing 
column to the latest type version.
                                     
Test suite added.
2011-03-31 16:08:31 +03:00
Georgi Kodinov
a4d073ccc0 merge mysql-5.0-security->mysql-5.1-security 2011-03-21 16:03:35 +02:00
Georgi Kodinov
dd0823cc03 Bug # 11766011: mysql.user.authentication_string column causes
configuration wizard to fail

Made the fields mysql.user.plugin and mysql.user.authentication_string
nullable to conform with some older clients doing inserts instead of 
using the commands.
2011-03-18 16:16:17 +02:00
Chuck Bell
178bacbb3f BUG#59752 : mysql.user.plugin length (60) vs. mysql.plugin.name length (64)
This patch corrects the problem by fixing the definition and alterations
of the mysql.user table in the .sql files.

Also included are new result files for tests that examine the name 
column of the mysql.user table.
2011-03-11 10:15:57 -05: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
be6c3fd8aa Merge 2010-12-29 01:26:31 +01:00