50 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			SQL
		
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			SQL
		
	
	
	
-- Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
 | 
						|
-- Use is subject to license terms.
 | 
						|
-- 
 | 
						|
-- This program is free software; you can redistribute it and/or modify
 | 
						|
-- it under the terms of the GNU General Public License as published by
 | 
						|
-- the Free Software Foundation; version 2 of the License.
 | 
						|
-- 
 | 
						|
-- This program is distributed in the hope that it will be useful,
 | 
						|
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
						|
-- GNU General Public License for more details.
 | 
						|
-- 
 | 
						|
-- You should have received a copy of the GNU General Public License
 | 
						|
-- along with this program; if not, write to the Free Software
 | 
						|
-- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
 | 
						|
 | 
						|
--
 | 
						|
-- The inital data for system tables of MySQL Server
 | 
						|
--
 | 
						|
 | 
						|
-- When setting up a "cross bootstrap" database (e.g., creating data on a Unix
 | 
						|
-- host which will later be included in a Windows zip file), any lines
 | 
						|
-- containing "@current_hostname" are filtered out by mysql_install_db.
 | 
						|
 | 
						|
-- Get the hostname, if the hostname has any wildcard character like "_" or "%" 
 | 
						|
-- add escape character in front of wildcard character to convert "_" or "%" to
 | 
						|
-- a plain character
 | 
						|
SELECT LOWER( REPLACE((SELECT REPLACE(@@hostname,'_','\_')),'%','\%') )INTO @current_hostname;
 | 
						|
 | 
						|
 | 
						|
-- Fill "db" table with default grants for anyone to
 | 
						|
-- access database 'test' and 'test_%' if "db" table didn't exist
 | 
						|
CREATE TEMPORARY TABLE tmp_db LIKE db;
 | 
						|
INSERT INTO tmp_db VALUES ('%','test','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','N','N','Y','Y');
 | 
						|
INSERT INTO tmp_db VALUES ('%','test\_%','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','N','N','Y','Y');
 | 
						|
INSERT INTO db SELECT * FROM tmp_db WHERE @had_db_table=0;
 | 
						|
DROP TABLE tmp_db;
 | 
						|
 | 
						|
 | 
						|
-- Fill "user" table with default users allowing root access
 | 
						|
-- from local machine if "user" table didn't exist before
 | 
						|
CREATE TEMPORARY TABLE tmp_user LIKE user;
 | 
						|
INSERT INTO tmp_user VALUES ('localhost','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);
 | 
						|
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 @current_hostname != 'localhost';
 | 
						|
REPLACE INTO tmp_user VALUES ('127.0.0.1','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);
 | 
						|
INSERT INTO tmp_user (host,user) VALUES ('localhost','');
 | 
						|
INSERT INTO tmp_user (host,user) SELECT @current_hostname,'' FROM dual WHERE @current_hostname != 'localhost';
 | 
						|
INSERT INTO user SELECT * FROM tmp_user WHERE @had_user_table=0;
 | 
						|
DROP TABLE tmp_user;
 |