mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
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>
This commit is contained in:
@ -423,10 +423,11 @@ my $mysqld_install_cmd_line = quote_options($mysqld_bootstrap,
|
|||||||
"--bootstrap",
|
"--bootstrap",
|
||||||
"--basedir=$opt->{basedir}",
|
"--basedir=$opt->{basedir}",
|
||||||
"--datadir=$opt->{ldata}",
|
"--datadir=$opt->{ldata}",
|
||||||
"--skip-innodb",
|
"--log-warnings=0",
|
||||||
"--skip-bdb",
|
"--loose-skip-innodb",
|
||||||
"--skip-ndbcluster",
|
"--loose-skip-ndbcluster",
|
||||||
"--max_allowed_packet=8M",
|
"--max_allowed_packet=8M",
|
||||||
|
"--default-storage-engine=MyISAM",
|
||||||
"--net_buffer_length=16K",
|
"--net_buffer_length=16K",
|
||||||
@args,
|
@args,
|
||||||
);
|
);
|
||||||
@ -439,6 +440,8 @@ report_verbose_wait($opt,"Installing MySQL system tables...");
|
|||||||
|
|
||||||
open(SQL, $create_system_tables)
|
open(SQL, $create_system_tables)
|
||||||
or error($opt,"can't open $create_system_tables for reading: $!");
|
or error($opt,"can't open $create_system_tables for reading: $!");
|
||||||
|
open(SQL2, $fill_system_tables)
|
||||||
|
or error($opt,"can't open $fill_system_tables for reading: $!");
|
||||||
# FIXME > /dev/null ?
|
# FIXME > /dev/null ?
|
||||||
if ( open(PIPE, "| $mysqld_install_cmd_line") )
|
if ( open(PIPE, "| $mysqld_install_cmd_line") )
|
||||||
{
|
{
|
||||||
@ -452,8 +455,20 @@ if ( open(PIPE, "| $mysqld_install_cmd_line") )
|
|||||||
|
|
||||||
print PIPE $_;
|
print PIPE $_;
|
||||||
}
|
}
|
||||||
|
while ( <SQL2> )
|
||||||
|
{
|
||||||
|
# TODO: make it similar to the above condition when we're sure
|
||||||
|
# @@hostname returns a fqdn
|
||||||
|
# When doing a "cross bootstrap" install, no reference to the current
|
||||||
|
# host should be added to the system tables. So we filter out any
|
||||||
|
# lines which contain the current host name.
|
||||||
|
next if /\@current_hostname/;
|
||||||
|
|
||||||
|
print PIPE $_;
|
||||||
|
}
|
||||||
close PIPE;
|
close PIPE;
|
||||||
close SQL;
|
close SQL;
|
||||||
|
close SQL2;
|
||||||
|
|
||||||
report_verbose($opt,"OK");
|
report_verbose($opt,"OK");
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user