Invalid FOG/MySQL Password Character: ";"
-
@christopherJames said:
Don’t use a ; (semicolon) in your FOG/MySQL password, it wreaks all manner of havoc when trying to access the management page.
Just wanted to quote that.
-
@george1421 said:
If you don’t mind me asking, did YOU key in a password that contained a special character, or did something else create this password?
I entered it, I try to use a memorable character pattern at the beginning and end of my passwords and this time I chose those characters poorly. Oops.
I entered this erroneous password during the installer script and received no notification that anything was amiss. I’m all for error trapping but checking for invalid characters during installation may be outside the scope of an installation script.
On the other hand it might save someone three hours of frustration and troubleshooting next time.
-
@george1421
This forum is strange, I quoted you in my reply to you and it went under my first post.Hmmm.
I wonder where this one will go?
-
@christopherJames It’s sorted in reverse order.
This means, when you respond, it goes to the top of the reply chain.
-
@Tom-Elliott Is there a way to trap/filter these key special key presses so they don’t enter into the install script? At least we should test the entered string to ensure it doesn’t contain special punctuation that will cause havoc later.
-
What version of FOG are you running?
Current versions use a single quote method to store the defined variables, though I cannot be sure this is always the case.
Can you change this so it only is defined using single quote, or escape the string more properly?
I’ve tested with the ; in the MySQL password and it is working fine on my system. Now if your password is literally
';SomeStrange0129Password!'
there could be some issues involved as I’m just not that good at escaping quite yet. However, just the simple ; in the password doesn’t seem to pose a direct issue. -
@Tom-Elliott said:
What version of FOG are you running?
1.2.0
Can you change this so it only is defined using single quote, or escape the string more properly?
Yes, I can and will. How’s
+-P0ck3t.M0nst3r+-
for a test password?
I’ve tested with the ; in the MySQL password and it is working fine on my system. Now if your password is literally
';SomeStrange0129Password!'
there could be some issues involved as I’m just not that good at escaping quite yet. However, just the simple ; in the password doesn’t seem to pose a direct issue.My password string was literally:
‘;Mich43l’;
and if memory serves it looked like this in the config file:
define( “MYSQL_PASSWORD”, “';Mich43l';” );
I’ll reproduce tonight and post the exact output of the log file but please be patient with me. I’m slowly learning my way around Linux based systems and could have been COMPLETELY misinterpreting the error.
Cheers
-
@christopherJames I’d actually recommend, if possible, using the dreaded semicolon. I’ll see what I can do about escaping the actual password directly, though escaping for bash is MUCH different than escaping for php.
-
Ugh, its much worse than the dreaded semicolon.
define( “MYSQL_PASSWORD”, “';Mich43l';” );
He’s also got the dreaded single quote/double quote mixture which should have driven php crazy, and then throw in that extra pair of semicolons, no wonder FOG tossed its cookies.
-
OK, I set it back up the way it was last night:
From /var/www/fog/lib/fog/Config.class.php
define('DATABASE_TYPE', 'mysql'); // mysql or oracle define('DATABASE_HOST', 'localhost'); define('DATABASE_NAME', 'fog'); define('DATABASE_USERNAME', 'root'); define('DATABASE_PASSWORD', '';Mich43l';');
The editor even thinks the ;'s are terminators, look at the color formatting of the password.
From /var/log/apache2/error.log:
[Tue Feb 16 07:37:03.775513 2016] [mpm_prefork:notice] [pid 9479] AH00163: Apache/2.4.12 (Ubuntu) configured – resuming normal operations
[Tue Feb 16 07:37:03.775586 2016] [core:notice] [pid 9479] AH00094: Command line: ‘/usr/sbin/apache2’
[Tue Feb 16 18:27:55.164487 2016] [mpm_prefork:notice] [pid 9479] AH00169: caught SIGTERM, shutting down
[Tue Feb 16 18:27:56.370153 2016] [mpm_prefork:notice] [pid 14244] AH00163: Apache/2.4.12 (Ubuntu) configured – resuming normal operations
[Tue Feb 16 18:27:56.370286 2016] [core:notice] [pid 14244] AH00094: Command line: ‘/usr/sbin/apache2’
[Tue Feb 16 18:28:29.984279 2016] [:error] [pid 14247] [client 192.168.1.101:36350] PHP Parse error: syntax error, unexpected ‘;’ in /var/www/fog/lib/fog/Config.class.php on line 32
[Tue Feb 16 18:28:37.840495 2016] [:error] [pid 14248] [client 192.168.1.101:36352] PHP Parse error: syntax error, unexpected ‘;’ in /var/www/fog/lib/fog/Config.class.php on line 32, referer: http://192.168.1.101/
[Tue Feb 16 18:28:40.093808 2016] [:error] [pid 14249] [client 192.168.1.101:36354] PHP Parse error: syntax error, unexpected ‘;’ in /var/www/fog/lib/fog/Config.class.php on line 32, referer: http://192.168.1.101/
[Tue Feb 16 18:28:40.648723 2016] [:error] [pid 14250] [client 192.168.1.101:36356] PHP Parse error: syntax error, unexpected ‘;’ in /var/www/fog/lib/fog/Config.class.php on line 32, referer: http://192.168.1.101/
[Tue Feb 16 18:28:41.766683 2016] [:error] [pid 14251] [client 192.168.1.101:36358] PHP Parse error: syntax error, unexpected ‘;’ in /var/www/fog/lib/fog/Config.class.php on line 32, referer: http://192.168.1.101/
[Tue Feb 16 18:32:06.560824 2016] [mpm_prefork:notice] [pid 14244] AH00169: caught SIGTERM, shutting down
[Tue Feb 16 18:32:52.152509 2016] [mpm_prefork:notice] [pid 1268] AH00163: Apache/2.4.12 (Ubuntu) configured – resuming normal operations
[Tue Feb 16 18:32:52.160009 2016] [core:notice] [pid 1268] AH00094: Command line: ‘/usr/sbin/apache2’
[Tue Feb 16 18:39:09.209332 2016] [:error] [pid 1271] [client 192.168.1.101:49018] PHP Parse error: syntax error, unexpected ‘;’ in /var/www/fog/lib/fog/Config.class.php on line 32, referer: http://192.168.1.101/
[Tue Feb 16 18:39:09.549352 2016] [:error] [pid 1272] [client 192.168.1.101:49020] PHP Parse error: syntax error, unexpected ‘;’ in /var/www/fog/lib/fog/Config.class.php on line 32, referer: http://192.168.1.101/
[Tue Feb 16 18:39:10.136049 2016] [:error] [pid 1273] [client 192.168.1.101:49022] PHP Parse error: syntax error, unexpected ‘;’ in /var/www/fog/lib/fog/Config.class.php on line 32, referer: http://192.168.1.101/
[Tue Feb 16 18:39:12.343867 2016] [:error] [pid 1274] [client 192.168.1.101:49024] PHP Parse error: syntax error, unexpected ‘;’ in /var/www/fog/lib/fog/Config.class.php on line 32, referer: http://192.168.1.101/
[Tue Feb 16 18:39:12.924029 2016] [:error] [pid 1275] [client 192.168.1.101:49026] PHP Parse error: syntax error, unexpected ‘;’ in /var/www/fog/lib/fog/Config.class.php on line 32, referer: http://192.168.1.101/
[Tue Feb 16 18:39:13.527040 2016] [:error] [pid 1271] [client 192.168.1.101:49028] PHP Parse error: syntax error, unexpected ‘;’ in /var/www/fog/lib/fog/Config.class.php on line 32, referer: http://192.168.1.101/ -
And if anyone is feeling especially helpful tonight… I’m now getting this error in /va/log/apache2/error.log when I try to go to the management screen:
PHP Fatal error: Call to a member function query() on null in /var/www/fog/lib/db/MySQL.class.php
Line 89 from /var/www/fog/lib/db/MySQL.class.php is:
$this->queryResult = $this->link->query($this->query) or $GLOBALS['FOGCore']->debug($this->sqlerror(),$this->query);
-
@christopherJames if this is the same password as originally setup, the ; was not the problem. Instead it is the quotes themselves.
I’m just guessing, also, that you reset the MySQL user password too. For your scenario, I’d request of you to escape the single quotes by preceding it with \ where the quotes are supposed to be in the actual password.
It is the current setup of the pw that’s failing as it is broken and unable to connect to the db.
-
I would suspect since you caused great confusion with the sql password and this error is around sql, that you are having issues access the database.
In regards to your error, you have a combination of errors in your password. What you entered for the database password was ‘;Mich43l’; which if you look at what you posted the code saw ‘’;Mich’;’ or a null string, some extra text and a semicolon as a password. A semicolon for sql is an end of command.
Can you log into the mysql utility to access the sql server at all? The password may be a single semicolon (??) If you can’t you will need to go through the process to reset the mysql password, update the .fogsettings file and then rerun the installer to fix everything.
-
@Tom-Elliott said:
@christopherJames I’d actually recommend, if possible, using the dreaded semicolon. I’ll see what I can do about escaping the actual password directly, though escaping for bash is MUCH different than escaping for php.
let’s do all things dealing with
.fogsettings
in PHP instead?#!/usr/bin/php
or
php myscript.php
-
@Tom-Elliott said:
@christopherJames if this is the same password as originally setup, the ; was not the problem. Instead it is the quotes themselves.
I’m just guessing, also, that you reset the MySQL user password too. For your scenario, I’d request of you to escape the single quotes by preceding it with \ where the quotes are supposed to be in the actual password.
It is the current setup of the pw that’s failing as it is broken and unable to connect to the db.
Aaahhhhh, OK, now think I understand.
And no, I did not reset the MySQL password, the password in
/var/www/fog/lib/fog/Config.class.php
is the only one I’ve messed with since installation.
So if I’m understanding you correctly I changed it to this:
define('DATABASE_PASSWORD', '\';Mich43l\';');
restarted the Apache server
sudo service apache2 restart
But still no love from the management screen:
-
@christopherJames anything special in error logs?
-
@george1421 said:
I would suspect since you caused great confusion with the sql password and this error is around sql, that you are having issues access the database.
In regards to your error, you have a combination of errors in your password. What you entered for the database password was ‘;Mich43l’; which if you look at what you posted the code saw ‘’;Mich’;’ or a null string, some extra text and a semicolon as a password. A semicolon for sql is an end of command.
Can you log into the mysql utility to access the sql server at all? The password may be a single semicolon (??) If you can’t you will need to go through the process to reset the mysql password, update the .fogsettings file and then rerun the installer to fix everything.
I JUST thought of the same thing, wondering if the MySQL database choked on the password and puked too, and tried this:
christopher@NUC001:/$ mysql --user=root --password=';Mich43l'; Warning: Using a password on the command line interface can be insecure. ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) christopher@NUC001:/$ mysql --user=root --password=; Warning: Using a password on the command line interface can be insecure. ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) christopher@NUC001:/$ mysql --user=root --password=' >
-
@Tom-Elliott said:
@christopherJames anything special in error logs?
Many many of these:
[Tue Feb 16 20:29:15.038672 2016] [:error] [pid 7261] [client 192.168.1.101:49802] PHP Fatal error: Call to a member function query() on null in /var/www/fog/lib/db/MySQL.class.php on line 89, referer: http://192.168.1.101/
-
@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 commandshow databases;
you will see a list of databases in mysql. Either way just key inexit
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. -
@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.