]> git.pld-linux.org Git - packages/mysql.git/blobdiff - mysql.init
- don't mark db error messages files with lang as these depend on db client settings...
[packages/mysql.git] / mysql.init
index 34923ec137bac2d6eba3b4daeb60204a706e544f..6b1da9b8dbfe151e9f52cd1a8c3dc2f1088aad8e 100755 (executable)
@@ -27,13 +27,13 @@ fi
 
 if [ -f /etc/mysql/clusters.conf ]; then
        MYSQL_DB_CLUSTERS=$(awk -F= '!/^#/ && /=/{print $2}' /etc/mysql/clusters.conf)
-       if [ -z "$MYSQL_DB_CLUSTERS"  ]; then
+       if [ -z "$MYSQL_DB_CLUSTERS" ]; then
                nls "Warning: there are no configured clusters."
        fi
 
 else
        nls "Warning: Missing clusters config file %s" /etc/mysql/clusters.conf
-       if [ -z "$MYSQL_DB_CLUSTERS"  ]; then
+       if [ -z "$MYSQL_DB_CLUSTERS" ]; then
                nls "Warning: there are no configured clusters."
                nls "Using default cluster /var/lib/mysql (compatibility mode)"
                MYSQL_DB_CLUSTERS=/var/lib/mysql
@@ -51,6 +51,8 @@ else
        exit 0
 fi
 
+sharedir=/usr/share/mysql
+
 action="$1"
 
 # any db cluster as command line argument?
@@ -463,7 +465,7 @@ mysqlinit() {
                exit 6
        fi
 
-       show "Installing MySQL system tables for $MYSQL_DATA_DIR"
+       show "Initializing MySQL database for $MYSQL_DATA_DIR"
        busy
        TMP=/tmp TMPDIR=/tmp
 
@@ -473,92 +475,70 @@ mysqlinit() {
        chown mysql:mysql "$MYSQL_CLUSTER_DIR/mysqldb" "$MYSQL_DATA_DIR" > /dev/null 2>&1
        chmod 751 "$MYSQL_CLUSTER_DIR" "$MYSQL_CLUSTER_DIR/mysqldb"
 
-       if [ -f /usr/share/percona-server/mysqld.conf -a ! -f "$MYSQL_CLUSTER_DIR/mysqld.conf" ]; then
-           sed -e "
-               s#\(datadir.*\)=.*#\1= $MYSQL_DATA_DIR#g;
-               s#\(pid-file.*\)=.*#\1= $MYSQL_PIDFILE#g;
-               s#\(socket.*\)=.*#\1= $MYSQL_SOCKET#g;
-               s#@clusterdir@#$MYSQL_CLUSTER_DIR#g;
-               " /usr/share/percona-server/mysqld.conf > "$MYSQL_CLUSTER_DIR/mysqld.conf"
-           chown root:root "$MYSQL_CLUSTER_DIR/mysqld.conf"
-           chmod 640 "$MYSQL_CLUSTER_DIR/mysqld.conf"
+       if [ -f $sharedir/mysqld.conf -a ! -f "$MYSQL_CLUSTER_DIR/mysqld.conf" ]; then
+               sed -e "
+                       s#\(datadir.*\)=.*#\1= $MYSQL_DATA_DIR#g;
+                       s#\(pid-file.*\)=.*#\1= $MYSQL_PIDFILE#g;
+                       s#\(socket.*\)=.*#\1= $MYSQL_SOCKET#g;
+                       s#@clusterdir@#$MYSQL_CLUSTER_DIR#g;
+               " $sharedir/mysqld.conf > "$MYSQL_CLUSTER_DIR/mysqld.conf"
+               chown root:root "$MYSQL_CLUSTER_DIR/mysqld.conf"
+               chmod 640 "$MYSQL_CLUSTER_DIR/mysqld.conf"
        fi
 
-       cat > $MYSQL_DATA_DIR/mysql-init.sql <<-EOF
-               CREATE DATABASE mysql;
-               use mysql;
-               $(cat /usr/share/percona-server/mysql_system_tables.sql)
-               $(sed -e "/@current_hostname/d" /usr/share/percona-server/mysql_system_tables_data.sql)
-EOF
-
        ok=0
        /usr/sbin/mysqld \
                --defaults-file=$MYSQL_CLUSTER_DIR/mysqld.conf \
-               --bootstrap \
+               --initialize \
                --skip-grant-tables \
                --datadir=$MYSQL_DATA_DIR \
                --user=$MYSQL_USER \
                --slave-load-tmpdir=$MYSQL_DATA_DIR \
                --tmpdir=$MYSQL_DATA_DIR \
                --log-error=$MYSQL_ERRLOG \
-               < $MYSQL_DATA_DIR/mysql-init.sql && ok=1
+               && ok=1
        [ -f $MYSQL_DATA_DIR/mysql/user.frm ] || ok=0
 
        if [ "$ok" = 1 ]; then
-               rm -f $MYSQL_DATA_DIR/mysql-init.sql
                ok
                cat << END_OF_MSG
 
 PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL USERS!
-This is done, after starting database, in the order shown,
-with:
 
-For 'mysql_sysadmin' (RELOAD and SHUTDOWN privileges):
+CURRENT TEMPORARY ROOT PASSWORD CAN BE FOUND IN LOG
+(grep for "A temporary password is generated" string):
+$MYSQL_ERRLOG
+
+
+Start database:
+$ service mysql start
+
+and set passwords:
+
+FIXME FIXME: For 'mysql_sysadmin' (RELOAD and SHUTDOWN privileges):
 echo "update mysql.user set password=password('newpassword') where user='mysql_sysadmin'; FLUSH PRIVILEGES;" | mysql -u mysql -S $MYSQL_SOCKET
 
-For 'mysql' user (ALL privileges, DB admin):
-echo "update mysql.user set password=password('newpassword') where user='mysql'; FLUSH PRIVILEGES;" | mysql -u mysql -S $MYSQL_SOCKET
+For 'root' user (ALL privileges, DB admin), paste command with new password:
+ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword'; FLUSH PRIVILEGES;
+
+into command:
+$ mysql -u root -p -S $MYSQL_SOCKET
 
 NOTE: mysql_sysadmin password should be placed to $MYSQL_CONFIG in
 mysqladmin section. See the manual for more instructions.
 (This user is used at logs rotation and server shutdown)
 
 END_OF_MSG
-               show "Filling help tables..."
-               ok=0
-               ( echo "use mysql;"; cat /usr/share/percona-server/fill_help_tables.sql ) | \
-                       /usr/sbin/mysqld \
-                       --defaults-file=$MYSQL_CLUSTER_DIR/mysqld.conf \
-                       --bootstrap \
-                       --skip-grant-tables \
-                       --datadir=$MYSQL_DATA_DIR \
-                       --user=$MYSQL_USER \
-                       --slave-load-tmpdir=$MYSQL_DATA_DIR \
-                       --tmpdir=$MYSQL_DATA_DIR \
-                       --log-error=$MYSQL_ERRLOG \
-                       && ok=1
-               if [ "$ok" = 1 ]; then
-                       ok
-               else
-                       cat << END_OF_MSG
-
-WARNING: HELP FILES ARE NOT COMPLETELY INSTALLED!
-The "HELP" command might not work properly.
-
-END_OF_MSG
-               fi
        else
                fail
                cat << END_OF_MSG
 ERROR:
 ERROR:
-ERROR: Installation of grant tables FAILED!
+ERROR: Installation FAILED!
 ERROR:
 ERROR:
 
-The initialization SQL script was preserved at $MYSQL_DATA_DIR/mysql-init.sql
-
-Examine the logs in /var/log/mysql for more information.  You can
+Examine the logs in $MYSQL_ERRLOG for more information. You can
 also try to start the mysqld daemon with:
 
 /usr/sbin/mysqld --skip-grant &
@@ -578,7 +558,7 @@ Please check PLD Linux ftp site for newer versions of this package.
 
 Please consult the MySQL manual section: 'Problems running
 mysql_install_db', and the manual section that describes problems on
-your OS.  Another information source is the MySQL email archive.
+your OS. Another information source is the MySQL email archive.
 
 END_OF_MSG
                exit 1
@@ -587,7 +567,11 @@ END_OF_MSG
        # if it's first server, register as default
        if [ ! -e /var/lib/mysql/mysql.sock ] || [ -L /var/lib/mysql/mysql.sock ] && [ -z "$(readlink /var/lib/mysql/mysql.sock)" ]; then
                sock=${MYSQL_SOCKET#/var/lib/mysql/} # make it relative if possible
-           ln -s "$sock" /var/lib/mysql/mysql.sock
+               ln -s "$sock" /var/lib/mysql/mysql.sock
+       fi
+       # same for config, move to /etc
+       if [ ! -e /etc/mysql/mysqld.conf ]; then
+               mv "$MYSQL_CLUSTER_DIR/mysqld.conf" /etc/mysql/mysqld.conf
        fi
 }
 
@@ -718,7 +702,7 @@ case "$action" in
        ;;
   flush-logs)
        for mysqldir in $DB_CLUSTERS; do
-           mysqlgetconfig "$mysqldir"
+               mysqlgetconfig "$mysqldir"
                # just if mysqld is really running
                if /usr/bin/mysqladmin --defaults-file="$MYSQL_CONFIG" --socket="$MYSQL_SOCKET" ping >/dev/null 2>&1; then
                        /usr/bin/mysqladmin --defaults-file="$MYSQL_CONFIG" --socket="$MYSQL_SOCKET" flush-logs
This page took 0.054467 seconds and 4 git commands to generate.