SOLVED Error 1396 while upgrading


  • I am trying to upgrade from 1.5.9 RC1 to 1.5.9 on CentOS 7. I run the installer and I get to this point with an error.

    5aa6dd9d-e144-47a1-bdc0-d31bc8dfe1b9-image.png

    I have no idea what it means and I try to access the error log file just so I can see and I get this.

    0d131929-6a12-4fc8-88d5-9554ff346189-image.png

    Also, I have no access to FOG web interface now. I get “Database Connection unavailable” now on the page.

    Any guidance would be appreciated. Thank you.

  • Senior Developer

    Found and fixed - the .fogsettings file was clearly corrupted causing this issue. Very sure this was due to manual editing.


  • @sebastian-roth
    I changed the passwords for this post.

    MariaDB [(none)]> SELECT * FROM mysql.user;
    +-----------+------------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+-----------------------+-----------------------+
    | Host      | User       | Password                                  | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv | Event_priv | Trigger_priv | Create_tablespace_priv | ssl_type | ssl_cipher | x509_issuer | x509_subject | max_questions | max_updates | max_connections | max_user_connections | plugin                | authentication_string |
    +-----------+------------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+-----------------------+-----------------------+
    | localhost | root       | *7FB1F1B8AD1B4CFD57ERT8E761B6ADFF70D04FA0 | 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            | Y                      |          |            |             |              |             0 |           0 |               0 |                    0 |                       |                       |
    | 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            | Y                      |          |            |             |              |             0 |           0 |               0 |                    0 | mysql_native_password |                       |
    | ::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            | Y                      |          |            |             |              |             0 |           0 |               0 |                    0 | mysql_native_password |                       |
    | %         | fogstorage | *35C8661957485DE278FFGH9B7C348770BB41AD4C | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          |            |             |              |             0 |           0 |               0 |                    0 |                       |                       |
    +-----------+------------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+-----------------------+-----------------------+
    4 rows in set (0.00 sec)
    
    MariaDB [(none)]> 
    
    
  • Senior Developer

    @xburnerx00 From the mysql root shell run this query and post results here: SELECT * FROM mysql.user;


  • @sebastian-roth

    Yes, I know the root password.

    [root@fogserver ~]# mysql -u root -p
    Enter password: 
    Welcome to the MariaDB monitor.  Commands end with ; or \g.
    Your MariaDB connection id is 14
    Server version: 5.5.68-MariaDB MariaDB Server
    
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    MariaDB [(none)]> 
    
    
  • Senior Developer

    @xburnerx00 Do you know the DB root password? Can you login to the database in the console? mysql -u root -p (if you don’t know the DB root password try just ENTER for an empty password - but the 1.5.9-RC1 installer should have forced you to set one on CentOS I think)

    You can also try out different usernames in config.class.php… fogmaster, root - see if any of those works.

    I am still scratching my head in what happened here.


  • @sebastian-roth
    I set the name ‘fogstorage’. There was already a randomly generated password in the line below.

    No success opening WebUI.

    private static function _dbSettings()
        {
            define('DATABASE_TYPE', 'mysql'); // mysql or oracle
            define('DATABASE_HOST', 'localhost');
            define('DATABASE_NAME', 'fog');
            define('DATABASE_USERNAME', 'fogstorage');
    
    
  • Senior Developer

    @xburnerx00 said in Error 1396 while upgrading:

    I changed snmysqluser to ‘fogmaster’. It was previously ‘foguser’.

    I thought it was ‘fogstorage’?! Something is very strange here.

    Now let’s see if we can get your FOG web UI back up by manually editing /var/www/html/fog/lib/fog/config.class.php. We saw the DATABASE_USERNAME was empty too. Put in fogstorage (as we had that in fogsettings initially I think), make sure a non-empty password is defined the line below the username, save the file and try to open the FOG web UI URL in your browser. No restart of services needed.


  • @sebastian-roth
    I changed snmysqluser to ‘fogmaster’. It was previously ‘foguser’. Re-ran installer. It stopped at same error.

    Failed!
    
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    !! The installer was not able to run all the way to the end as   !!
    !! something has caused it to fail. The following few lines are  !!
    !! from the error log file which might help us figure out what's !!
    !! wrong. Please add this information when reporting an error.   !!
    !! As well you might want to take a look at the full error log   !!
    !! in /root/fogproject/bin/error_logs/fog_error_1.5.9.log !!
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    
    chsh: Shell not changed.
    Changing shell for fogproject.
    New password: Retype new password: Changing password for user fogproject.
    passwd: all authentication tokens updated successfully.
    ERROR 1396 (HY000) at line 31: Operation CREATE USER failed for ''@'localhost'
    [root@fogserver bin]# 
    
    
  • Senior Developer

    @xburnerx00 Please try the following: Edit /opt/fog/.fogsettings (as root) and set snmysqluser='fogmaster'. Then re-run the installer.


  • @sebastian-roth

    I may have changed something during that first update, I vaguely remember changing a username.

    [root@fogserver bin]# grep DATABASE_USERNAME /var/www/html/fog/lib/fog/config.class.php
            define('DATABASE_USERNAME', '');
    You have new mail in /var/spool/mail/root
    [root@fogserver bin]# 
    
    [root@fogserver fogproject]# git status
    # On branch master
    nothing to commit, working directory clean
    
  • Senior Developer

    @xburnerx00 said in Error 1396 while upgrading:

    [root@fogserver bin]# grep snmysqluser /opt/fog/.fogsettings
    snmysqluser=‘fogstorage’

    I went over this too quickly because at first I expected the variable to be empty and so I didn’t quite notice it to be set to fogstorage which is not the default on a FOG master node but usually on a FOG storage node. Do you remember manually adjusting the DB username in /opt/fog/.fogsettings at some point?

    While I still don’t understand why this would cause this exact error I am wondering what you get when running grep DATABASE_USERNAME /var/www/html/fog/lib/fog/config.class.php

    As well run git status to see if you have any local modifications in the repo. If the output is empty, it’s all fine.

    The git commands used seem fine and /root not being accessible in the GUI is right too.


  • @sebastian-roth

    I have done an update before. I forget what the beginning version for me was, but I believe I may have done that install with tar.gz. I was following the installation instructions from the wiki. When I updated to 1.5.9RC1, just before last summer I believe, I did that one through github. I only say that because I remember asking to have that site open since our firewall was blocking it. Now I am using github to update. I ran these commands for the update I am attempting now from another post.

    cd /root/fogproject
    git checkout master
    git pull
    cd bin
    ./installfog.sh

    Separate thing I noticed was that I was trying to use the GUI to navigate to the .sql file but it has an X on the root folder.

    5679690e-e136-46b4-8cb5-6ee8d73eb33b-image.png

    Not sure if that means anything. I cannot open it. Forgive me for not being more in depth if needed, I am new to linux.

  • Senior Developer

    @xburnerx00 I still am very much at a loss on why the DB username is empty while it shouldn’t be. I will go through the installer code again and see what I can find.

    Did you extract the installer from ZIP or tar.gz or is this a repo clone from GitHub?


  • @sebastian-roth
    I was already running installer with sudo -i, but I also went back and tried it with sudo su - but with same result. Ran command. I deleted the passwords for this post.

    [root@fogserver bin]# cat /root/fogproject/tmp/fog-db-and-user-setup.sql
    SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ANSI' ;
    DELETE FROM mysql.user WHERE User='' ;
    DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1') ;
    DROP DATABASE IF EXISTS test ;
    DELETE FROM mysql.db WHERE Db='test' OR Db='test\_%' ;
    CREATE DATABASE IF NOT EXISTS fog ;
    USE fog ;
    DROP PROCEDURE IF EXISTS fog.create_user_if_not_exists ;
    DELIMITER 7061
    CREATE PROCEDURE fog.create_user_if_not_exists()
    BEGIN
      DECLARE masteruser BIGINT DEFAULT 0 ;
      DECLARE storageuser BIGINT DEFAULT 0 ;
    
      SELECT COUNT(*) INTO masteruser FROM mysql.user
        WHERE User = '' and  Host = 'localhost' ;
      IF masteruser > 0 THEN
        DROP USER ''@'localhost';
      END IF ;
      CREATE USER ''@'localhost' IDENTIFIED BY '' ;
      GRANT ALL PRIVILEGES ON fog.* TO ''@'localhost' ;
    
      SELECT COUNT(*) INTO storageuser FROM mysql.user
        WHERE User = 'fogstorage' and  Host = '%' ;
      IF storageuser > 0 THEN
        DROP USER 'fogstorage'@'%';
      END IF ;
      CREATE USER 'fogstorage'@'%' IDENTIFIED BY '' ;
    END ;7061
    DELIMITER ;
    CALL fog.create_user_if_not_exists() ;
    DROP PROCEDURE IF EXISTS fog.create_user_if_not_exists ;
    FLUSH PRIVILEGES ;
    SET SQL_MODE=@OLD_SQL_MODE ;
    [root@fogserver bin]# 
    
    
  • Senior Developer

    @xburnerx00 said in Error 1396 while upgrading:

    Yes, I re-ran installer making sure to use sudo

    Don’t use sudo directly to call the installer. Switch to a full root user environment (e.g. via sudo su - or sudo -i) and run the FOG installer from there.

    Just doesn’t make sense why it would say Operation CREATE USER failed for ''@'localhost' (username before the @ obviously being empty)!?

    Please run cat /root/fogproject/tmp/fog-db-and-user-setup.sql and post the full output here. Be aware there are two lines with a password in it - look for IDENTIFIED BY and mask the passwords in the output.


  • @sebastian-roth

    Yes, I re-ran installer making sure to use sudo, but came back with same issue. Here are the results of the command you asked for.

    [root@fogserver bin]# grep snmysqluser /opt/fog/.fogsettings
    snmysqluser='fogstorage'
    
    
  • Senior Developer

    @xburnerx00 Never saw this error before but I can imagine what is causing this. Please run grep snmysqluser /opt/fog/.fogsettings and post output here.

    Did you run the installer using sudo?

    The Permission denied message might be a bit misleading but it’s just telling you that you cannot execute that log file. If you want to read that log file on the console you need to use a tool to open it, like less /root/fogproject/bin/error_logs/fog_error_1.5.9.log

280
Online

8.8k
Users

15.5k
Topics

144.4k
Posts