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;
 |