Invalid FOG/MySQL Password Character: ";"



  • Just a suggestion to anyone reading this… Don’t use a ; (semicolon) in your FOG/MySQL password, it wreaks all manner of havoc when trying to access the management page.

    Why?

    Because it looks like an end-of-statement character.

    I spent HOURS trying to figure out why I couldn’t access the FOG management page before I looked at the log file and saw (this isn’t the exact verbiage but you’ll get the idea):

    “Error on line 32 of/var/www/fog/commons/config.php expected “;” at the the end of…”

    So if you enter ‘;PotatoesAndRice’; as your MySQL password during installation there will be no error notification and your password REALLY is now just: or maybe just some other invalid nonsense. I don’t know.

    This is from the config file

    define( “MYSQL_DATABASE”, “fog” );
    define( “MYSQL_USERNAME”, “fogstorage” );
    define( “MYSQL_PASSWORD”, “’;PotatoesAndRice’;” );

    So anything after ; is treated as another statement. Think of it like this:

    define( “MYSQL_DATABASE”, “fog” );
    define( “MYSQL_USERNAME”, “fogstorage” );
    define( “MYSQL_PASSWORD”, “’;
    PotatoesAndRice’;
    ” );

    Which SOOOOOOOOO doesn’t work. :P

    Anyway, tonight I’m going to figure out how to set the FOG user account password and MySQL password to the SAME string. Then I should be up and running with the management page. https://wiki.fogproject.org/wiki/index.php?title=Password_Central

    FYI - Ubuntu 15.10 and FOG 1.2, this is my first foray into Ubuntu, MySQL, PHP, PXE, pretty much everything I’m working in right now so THANK you all for the myriad instructional and troubleshooting documents I’ve found on-line over the last few days.

    PS - If anyone wants to expand upon this or correct any errors in my assumptions please feel free, I always want to learn something new. Preferrably not from my mistakes though. 8)



  • @Wayne-Workman said:

    Ubuntu doesn’t come with SELinux by default. Unless he installed the Debian package for SELinux (which pales in comparison to the Red Hat implementation), then he doesn’t have it.

    I didn’t install it.

    And I agree - just go with FOG Trunk, please. Getting 1.2.0 working on newer Ubuntu seems to work for some (how I don’t know) but not for others obviously. FOG Trunk just works.

    Weeeeelllll… I finally got to the log in screen. Next time I run into a problem i’ll do as recommended.

    And if you’re new to Linux and just learning, I might even suggest CentOS 7 instead of Ubuntu. Red Hat has a plethora of very, very, very respected certifications that are very, very, very expensive and are not, not, not a joke that will, will, will get you a good job. :-)

    I’ll check it out, thanks.

    Thank you to the three of you for the help!

    PS - I couldn’t find a way to mark this as SOLVED. :(


  • Moderator

    Ubuntu doesn’t come with SELinux by default. Unless he installed the Debian package for SELinux (which pales in comparison to the Red Hat implementation), then he doesn’t have it.

    And I agree - just go with FOG Trunk, please. Getting 1.2.0 working on newer Ubuntu seems to work for some (how I don’t know) but not for others obviously. FOG Trunk just works.

    And if you’re new to Linux and just learning, I might even suggest CentOS 7 instead of Ubuntu. Red Hat has a plethora of very, very, very respected certifications that are very, very, very expensive and are not, not, not a joke that will, will, will get you a good job. :-)


  • Moderator

    Interesting, it appears that you http server is listing on an ipv6 interface (not sure I understand the netstat output at this second.) I can say that the web server IS running. Did you remember to disable selinux? Because you have all of the bits in place to have FOG running. Selinux may/will block the web server from accessing the web pages as well as cause other annoying access blockages.

    [edit] Ignore the tcp v6 reference, I just confirmed my prod FOG server has the same results [/edit]



  • @george1421 said:

    But where you are at in the process. You are installing fog 1.2.0, you probably have to answer a bunch of questions every time you run the installer

    Affirmative.

    So you run the installer and then it stops at the use the url …/fog/management. On that page you will run the schema install that will create the missing FOG database entries. Without those tables being created the reset of the install will fail, spectacularly. If you can’t access the management page then ensure that th httpd server is running on your FOG server (it should be by default). If it is running but you can’t access the web page, then I would have to ask if you disabled the firewall (and disabled selinux) like you were instructed.

    Yes, I did

    sudo ufw disable
    

    and received confirmation if I remember correctly.

    To see if your web server is only you can use the following command sudo netstat -an|grep :80 which should return lines if your web server is listening on port 80 (standard http). You could also use the command ps aux|grep http to report if there are any processes in memory with the name http.

    Just now:

    christopher@NUC001:~$ sudo netstat -an|grep :80
    [sudo] password for christopher: 
    tcp6       0      0 :::80                   :::*                    LISTEN     
    christopher@NUC001:~$ ps aux|grep http
    christo+ 14436  0.0  0.0  13692  2136 pts/19   S+   19:39   0:00 grep --color=auto http
    

    That’s what we’re looking for, right?

    the reset of the install will fail, spectacularly.

    Amen, hallelujah, testify. :)

    Tomorrow I will follow the instructions at the link you posted and report back.

    “In for a penny, in for a pound” as they say. :P

    Thanks so much.


  • Moderator

    If you want to upgrade to the pre 1.3.0 release then you can follow the instructions in this: https://wiki.fogproject.org/wiki/index.php/Upgrade_to_trunk

    For my purposes I create a directory in /opt/fog_trunk and download the trunk installer files there. Then I run the setup program found in /opt/fog_trunk/bin


  • Moderator

    Ok lets see if we can get you going here. The easiest may be to have you acutally deploy the trunk version of fog over 1.2.0. There are so many changes in 1.3.0 (a.k.a trunk version, understanding that 1.3.0 hasn’t been released yet) that there may be little benefit in rolling out 1.2.0.

    But where you are at in the process. You are installing fog 1.2.0, you probably have to answer a bunch of questions every time you run the installer, those answers are saved in the .fogsettings file we keep talking about. Wayne mentioned that those values are only saved if the installer completes correctly.

    So you run the installer and then it stops at the use the url …/fog/management. On that page you will run the schema install that will create the missing FOG database entries. Without those tables being created the reset of the install will fail, spectacularly. If you can’t access the management page then ensure that th httpd server is running on your FOG server (it should be by default). If it is running but you can’t access the web page, then I would have to ask if you disabled the firewall (and disabled selinux) like you were instructed.

    To see if your web server is only you can use the following command sudo netstat -an|grep :80 which should return lines if your web server is listening on port 80 (standard http). You could also use the command ps aux|grep http to report if there are any processes in memory with the name http.



  • @Wayne-Workman

    No, I’ve never gotten through it successfully. I get to this

    You still need to install/update your database schema.
      This can be done by opening a web browser and going to:
    
          http://192.168.1.101/fog/management
    
      Press [Enter] key when database is updated/installed.
    

    Follow the link but always get this in the browser:

    The website encountered an error while retrieving http://192.168.1.101/fog/management/. It may be down for maintenance or configured incorrectly.

    I can’t do anything else in the terminal until I press enter so… I press enter. Is that where I cocked it all up?

    The rest of the install log (done tonight):

      * Configuring Fresh Clam...OK
      * Setting up storage...OK
      * Setting up and starting NFS Server...OK
      * Setting up and starting DHCP Server...OK
      * Setting up and starting TFTP and PXE Servers...OK
      * Setting up and starting VSFTP Server...OK
      * Setting up sudo settings...OK
      * Setting up FOG Snapins...OK
      * Setting up and building UDPCast...OK
      * Installing init scripts...OK
      * Setting up FOG Services...OK
      * Starting FOG Multicast Management Server...Failed!
    
    Script done on Wed 17 Feb 2016 06:07:08 PM EST
    

    So is this a chicken-or-the-egg problem? I need to edit .fogsettings before I can re-install successfully but .fogsettings is not there because I never really had a successful installation in the first place.

    Additionally, (and hopefully not to muddy the water any further) this evening when I ran the FOG installation script I tried, while still paused at

    You still need to install/update your database schema.
      This can be done by opening a web browser and going to:
    
          http://192.168.1.101/fog/management
    
      Press [Enter] key when database is updated/installed.
    

    to navigate according to your instruction to:

    /opt/fog/.fogsettings

    however

    /opt/fog/

    didn’t even exist until I pressed enter. The only one in existence was

    /opt/fog-setup

    If you think this is a lost cause just let me know, this isn’t a production machine that anyone is depending on, I can nuke/pave and try again from scratch.

    No big.

    Seriously.


  • Moderator

    @christopherJames Well that output is concerning. Have you ever gotten through the installer completely? You know that when you go to update the database via web browser, that you need to come back to the installer afterwards to continue right? I believe 1.2.0 doesn’t write the .fogsettings file unless installation completes.



  • @Wayne-Workman

    Thanks, I guess it’s obvious I lack some fundamentals when it comes to administering Linux, eh? Thank you for educating me, I’ve read and added that link to my ever-growing list of references.

    christopher@NUC001:~$ ls -la /opt/fog
    total 20
    drwxr-xr-x 5 root     root 4096 Feb 17 18:07 .
    drwxr-xr-x 4 root     root 4096 Feb 17 18:06 ..
    drwxr-xr-x 2 root     root 4096 Feb 17 18:07 log
    drwxr-xr-x 6 root     root 4096 Feb 17 18:07 service
    drwxr-xr-x 2 www-data root 4096 Feb 17 18:06 snapins
    

  • Moderator

    @christopherJames Files in linux that begin with a . are hidden. Open up terminal, and issue ls -la /opt/fog and you’ll see it. Additionally, via CLI you can issue vi /opt/fog/.fogsettings to edit the file with a text-based editor. Here’s basic instructions on Vi: https://wiki.fogproject.org/wiki/index.php?title=Vi



  • @Wayne-Workman

    Well that could be a problem, that file doesn’t exist. Got a copy?

    0_1455750627238_opt_fog_noFogSettings.png


  • Moderator

    @christopherJames said:

    I’m assuming by .fogsettings you mean /var/www/fog/lib/fog/Config.class.php

    No. Anytime you see someone refer to .fogsettings they mean /opt/fog/.fogsettings



  • @george1421 said:

    @christopherJames Great! now you have access to mysql, and we can see fog did not create anything in the DB. Tomorrow, update the .fogsettings file with the password you just created and proved that it worked.

    I’m assuming by .fogsettings you mean /var/www/fog/lib/fog/Config.class.php

    Next run the installer again so it will recreate the fog install with the updated password. During the install you will be prompted to access the web management console to install/update the schema. If you can get past the update schema page, then complete the install and you should be set.

    I re-installed (is there even a way to uninstall first?) but still get:

    The website encountered an error while retrieving http://192.168.1.101/fog/management/. It may be down for maintenance or configured incorrectly.

    I checked the status of the apache server:

    christopher@NUC001:~$ systemctl status -l apache2.service
    ● apache2.service - LSB: Apache2 web server
       Loaded: loaded (/etc/init.d/apache2)
       Active: active (running) since Wed 2016-02-17 17:52:45 EST; 5min ago
         Docs: man:systemd-sysv-generator(8)
      Process: 10184 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
      Process: 5510 ExecReload=/etc/init.d/apache2 reload (code=exited, status=0/SUCCESS)
      Process: 10221 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
       CGroup: /system.slice/apache2.service
               ├─10235 /usr/sbin/apache2 -k start
               ├─10238 /usr/sbin/apache2 -k start
               ├─10239 /usr/sbin/apache2 -k start
               ├─10240 /usr/sbin/apache2 -k start
               ├─10241 /usr/sbin/apache2 -k start
               ├─10242 /usr/sbin/apache2 -k start
               └─10843 /usr/sbin/apache2 -k start
    
    Feb 17 17:52:44 NUC001 systemd[1]: Starting LSB: Apache2 web server...
    Feb 17 17:52:44 NUC001 apache2[10221]: * Starting web server apache2
    Feb 17 17:52:44 NUC001 apache2[10221]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
    Feb 17 17:52:45 NUC001 apache2[10221]: *
    Feb 17 17:52:45 NUC001 systemd[1]: Started LSB: Apache2 web server.
    
    
    

  • Moderator

    @christopherJames Great! now you have access to mysql, and we can see fog did not create anything in the DB. Tomorrow, update the .fogsettings file with the password you just created and proved that it worked. Next run the installer again so it will recreate the fog install with the updated password. During the install you will be prompted to access the web management console to install/update the schema. If you can get past the update schema page, then complete the install and you should be set.

    (I might say you could “cheat” and just update the php config page directly with the password, then try to update the schema, but there is no guaranty that it will work this way.)



  • @Wayne-Workman @Tom-Elliott @george1421

    Thank you guys for ALL your tireless help, you’re amazing.

    I will have to pick this up again tomorrow evening, no more time tonight.

    And thank you again.



  • @george1421 said:

    @christopherJames I think the first / next thing you need to do is get control of your sql server. To do this you need to work through the process of resetting root’s password for mssql. Here is a guide to get you started. https://support.rackspace.com/how-to/mysql-resetting-a-lost-mysql-root-password/
    Please don’t use any special characters in the password especially '?%"/#`

    After you get the password reset ensure that you can login to mysql as root using mysql -u root then it will prompt you for the password. Now I’m going to suspect that nothing fog related is in the database. If you then issue the command show databases; you will see a list of databases in mysql. Either way just key in exit to leave the mysql console. Then move over to the .fogsettings file and update the database password with what you set the root password for mysql to. Then rerun the installer and hopefully it will recreate the missing mysql stuff.

    I did as instructed by what I found at that link and now I can access the MySQL database:

    christopher@NUC001:~$ mysql --user=root --password=6sharp.dripping
    Warning: Using a password on the command line interface can be insecure.
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 3
    Server version: 5.6.28-0ubuntu0.15.10.1 (Ubuntu)
    
    Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | test               |
    +--------------------+
    4 rows in set (0.03 sec)
    
    mysql> quit
    Bye
    christopher@NUC001:~$ 
    
    

  • Senior Developer

    @christopherJames for command line to work I think you would need to double quote the password so it sends all the data. Currently it’s just sending the stuff between the quotes, not the quotes themselves.


  • Senior Developer

    @christopherJames can you try double escaping? Make the single quotes where needed in the password as \\’.

    I’m suspecting the first one is close, but sql is the one needing the escape, not php at that point. The php is still sending the unescaped quote.


  • Moderator

    @christopherJames I think the first / next thing you need to do is get control of your sql server. To do this you need to work through the process of resetting root’s password for mssql. Here is a guide to get you started. https://support.rackspace.com/how-to/mysql-resetting-a-lost-mysql-root-password/
    Please don’t use any special characters in the password especially '?%"/#`

    After you get the password reset ensure that you can login to mysql as root using mysql -u root then it will prompt you for the password. Now I’m going to suspect that nothing fog related is in the database. If you then issue the command show databases; you will see a list of databases in mysql. Either way just key in exit to leave the mysql console. Then move over to the .fogsettings file and update the database password with what you set the root password for mysql to. Then rerun the installer and hopefully it will recreate the missing mysql stuff.


Log in to reply
 

431
Online

38918
Users

10688
Topics

101398
Posts

Looks like your connection to FOG Project was lost, please wait while we try to reconnect.