]> git.pld-linux.org Git - packages/mysql.git/commitdiff
- whole mysql_init_db in mysql.init script
authorArtur Frysiak <artur@frysiak.net>
Thu, 24 Feb 2000 14:43:13 +0000 (14:43 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    mysql.init -> 1.6

mysql.init

index 4c46e535d6d59bde5db7c109a37dfc1c264f0ae2..4aa51f1053ffeead01139d6f89a3e522fab749c3 100644 (file)
 # Get network config
 . /etc/sysconfig/network
 
+MYSQL_DATA_DIR=/var/state/mysql
+MYSQL_USER=mysql
+
 # Get service config
 if [ -f /etc/sysconfig/mysql ] ; then
        . /etc/sysconfig/mysql
        if [ -z "${MYSQL_DATA_DIR}" ]; then
                MYSQL_DATA_DIR=/var/state/mysql
        fi
-else
-       MYSQL_DATA_DIR=/var/state/mysql
 fi
 
 # Check that networking is up.
@@ -63,12 +64,182 @@ case "$1" in
        # Check if not exist init database
        if [ ! -d "$MYSQL_DATA_DIR/mysql" ]; then
                show Creating privilege mysql tables
-               started
-               TMP=/tmp TMPDIR=/tmp mysql_install_db &>/tmp/initdb.mysql
-               show Creating privilege mysql tables
-               ok
-               echo "Now You can setup database administrator password by:"
-               echo "# mysqladmimn -u mysql -h <host> password <new-password>"
+               busy
+               TMP=/tmp TMPDIR=/tmp 
+               hostname=`hostname`             # Install this too in the user table
+
+               # Check if hostname is valid
+               resolved=`/usr/bin/resolveip $hostname 2>&1`
+               if [ $? -ne 0 ]; then
+               resolved=`/usr/bin/resolveip localhost 2>&1`
+               if [ $? -eq 0 ]; then
+                       deltext
+                       fail
+                       echo "Sorry, the host '$hostname' could not be looked up."
+                       echo "Please configure the 'hostname' command to return a correct hostname."
+                       exit 1
+               fi
+               fi
+
+               # Create database directories mysql & test
+               if test ! -d $MYSQL_DATA_DIR/mysql; then 
+                       install -d -m700 -o mysql $MYSQL_DATA_DIR/mysql;  
+               fi
+               if test ! -d $MYSQL_DATA_DIR/test; then 
+                       install -d -m700 -o mysql $MYSQL_DATA_DIR/test;  
+               fi
+
+               #mysqld --bootstrap need whole (and only one) sql command in one line
+               create_db=""
+               create_db="$create_db CREATE TABLE db ( "
+               create_db="$create_db Host char(60) DEFAULT '' NOT NULL, "
+               create_db="$create_db Db char(32) DEFAULT '' NOT NULL," 
+               create_db="$create_db User char(16) DEFAULT '' NOT NULL, "
+               create_db="$create_db Select_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_db="$create_db Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_db="$create_db Update_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_db="$create_db Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_db="$create_db Create_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_db="$create_db Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_db="$create_db Grant_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_db="$create_db References_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_db="$create_db Index_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_db="$create_db Alter_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_db="$create_db PRIMARY KEY Host (Host,Db,User), "
+               create_db="$create_db KEY User (User)"
+               create_db="$create_db );"
+
+               create_host=""
+               create_host="$create_host CREATE TABLE host ( "
+               create_host="$create_host Host char(60) DEFAULT '' NOT NULL, "
+               create_host="$create_host Db char(32) DEFAULT '' NOT NULL, "
+               create_host="$create_host Select_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_host="$create_host Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_host="$create_host Update_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_host="$create_host Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_host="$create_host Create_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_host="$create_host Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_host="$create_host Grant_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_host="$create_host References_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_host="$create_host Index_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_host="$create_host Alter_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_host="$create_host PRIMARY KEY Host (Host,Db)"
+               create_host="$create_host       );"
+
+               create_user=""
+               create_user="$create_user CREATE TABLE user (" 
+               create_user="$create_user Host char(60) DEFAULT '' NOT NULL, "
+               create_user="$create_user User char(16) DEFAULT '' NOT NULL, "
+               create_user="$create_user Password char(16) DEFAULT '' NOT NULL, "
+               create_user="$create_user Select_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_user="$create_user Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_user="$create_user Update_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_user="$create_user Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_user="$create_user Create_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_user="$create_user Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_user="$create_user Reload_priv enum('N','Y') DEFAULT 'N' NOT NULL," 
+               create_user="$create_user Shutdown_priv enum('N','Y') DEFAULT 'N' NOT NULL," 
+               create_user="$create_user Process_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_user="$create_user File_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_user="$create_user Grant_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_user="$create_user References_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_user="$create_user Index_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_user="$create_user Alter_priv enum('N','Y') DEFAULT 'N' NOT NULL, "
+               create_user="$create_user PRIMARY KEY Host (Host,User)"
+               create_user="$create_user );"
+
+               create_func=""
+               create_func="$create_func CREATE TABLE func ( "
+               create_func="$create_func name char(64) DEFAULT '' NOT NULL, "
+               create_func="$create_func ret tinyint(1) DEFAULT '0' NOT NULL," 
+               create_func="$create_func dl char(128) DEFAULT '' NOT NULL, "
+               create_func="$create_func type enum ('function','aggregate') NOT NULL, "
+               create_func="$create_func PRIMARY KEY (name)"
+               create_func="$create_func ); "
+               
+               create_tblpriv=""
+               create_tblpriv="$create_tblpriv CREATE TABLE tables_priv ( "
+               create_tblpriv="$create_tblpriv Host char(60) DEFAULT '' NOT NULL, "
+               create_tblpriv="$create_tblpriv Db char(60) DEFAULT '' NOT NULL, "
+               create_tblpriv="$create_tblpriv User char(16) DEFAULT '' NOT NULL," 
+               create_tblpriv="$create_tblpriv Table_name char(60) DEFAULT '' NOT NULL, "
+               create_tblpriv="$create_tblpriv Grantor char(77) DEFAULT '' NOT NULL, "
+               create_tblpriv="$create_tblpriv Timestamp timestamp(14), "
+               create_tblpriv="$create_tblpriv Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter') DEFAULT '' NOT NULL, "
+               create_tblpriv="$create_tblpriv Column_priv set('Select','Insert','Update','References') DEFAULT '' NOT NULL,"
+               create_tblpriv="$create_tblpriv PRIMARY KEY (Host,Db,User,Table_name), "
+               create_tblpriv="$create_tblpriv KEY Grantor (Grantor)"
+               create_tblpriv="$create_tblpriv );"
+
+               create_colpriv=""
+               create_colpriv="$create_colpriv CREATE TABLE columns_priv ( "
+               create_colpriv="$create_colpriv Host char(60) DEFAULT '' NOT NULL, "
+               create_colpriv="$create_colpriv Db char(60) DEFAULT '' NOT NULL, "
+               create_colpriv="$create_colpriv User char(16) DEFAULT '' NOT NULL, "
+               create_colpriv="$create_colpriv Table_name char(60) DEFAULT '' NOT NULL, "
+               create_colpriv="$create_colpriv Column_name char(60) DEFAULT '' NOT NULL, "
+               create_colpriv="$create_colpriv Timestamp timestamp(14), "
+               create_colpriv="$create_colpriv Column_priv set('Select','Insert','Update','References') DEFAULT '' NOT NULL, "
+               create_colpriv="$create_colpriv PRIMARY KEY (Host,Db,User,Table_name,Column_name)"
+               create_colpriv="$create_colpriv );"
+
+               if /usr/sbin/mysqld --bootstrap --skip-grant-tables \
+               --basedir=/usr --datadir=$MYSQL_DATA_DIR --user=mysql << END_OF_DATA
+                       use mysql;
+                       $create_db
+                       $inser_db
+                       $create_host
+                       $create_user
+                       $insert_user
+                       $create_func
+                       $create_tblpriv
+                       $create_colpriv
+
+                       INSERT INTO db VALUES ('%','test','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y');
+                       INSERT INTO db VALUES ('%','test\_%','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y');
+                       INSERT INTO user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
+                       INSERT INTO user VALUES ('$hostname','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
+                       REPLACE INTO user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
+                       REPLACE INTO user VALUES ('$hostname','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
+                       INSERT INTO user VALUES ('localhost','','','N','N','N','N','N','N','N','N','N','N','N','N','N','N');
+                       INSERT INTO user VALUES ('$hostname','','','N','N','N','N','N','N','N','N','N','N','N','N','N','N');
+
+END_OF_DATA
+               then
+                       deltext
+                       ok
+                       echo "  PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !"
+                       echo "  This is done with:"
+                       echo "  /usr/bin/mysqladmin -u root password 'new-password'"
+                       echo "  See the manual for more instructions."
+                       echo
+               else
+               deltext
+                       fail
+                       echo "  Installation of grant tables failed!"
+                       echo
+                       echo "  Examine the logs in $MYSQL_DATA_DIR for more information."
+                       echo "  You can also try to start the mysqld demon with:"
+                       echo "  /usr/sbin/mysqld --skip-grant &"
+                       echo "  You can use the command line tool"
+                       echo "  /usr/bin/mysql to connect to the mysql"
+                       echo "  database and look at the grant tables:"
+                       echo
+                       echo "shell> /usr/bin/mysql -u root mysql"
+                       echo "mysql> show tables"
+                       echo
+                       echo "Try 'mysqld --help' if you have problems with paths. Using --log"
+                       echo "gives you a log in $MYSQL_DATA_DIR that may be helpful."
+                       echo
+                       echo "The latest information about MySQL is available on the web at"
+                       echo "http://www.mysql.com"
+                       echo "Please consult the MySQL manual section: 'Problems running mysql_install_db',"
+                       echo "and the manual section that describes problems on your OS."
+                       echo "Another information source is the MySQL email archive."
+                       echo "Please check all of the above before mailing us!"
+                       echo "And if you do mail us, you MUST use the /usr/bin/mysqlbug script!"
+                       exit 1
+               fi
        else
                echo "Semms that database is initialized now. Remove by hand $MYSQL_DATA_DIR/mysql"
                echo "before initialize database.".
This page took 0.129899 seconds and 4 git commands to generate.