Whilst setting up the phpipam tool (the one i mentioned in my last post http://phpipam.net/) i decided to use a MySQL PaaS in Azure to host the database part rather than manage MySQL myself - however this proved a little tricky to get working.
Well i say tricky - it just needed the config file amended and then it was fine - however this was not at all obvious - let me explain what happened.
So after loading the software using the normal yum tooling you then have to link the app to a database via the gui screen below - you have a few options - i chose the last one the manual install
So I click that then follow the steps as described on the screen below - after that I put the login details in the config.php file and then the login button should redirect me to the login page
However that wasn't happening at all and I was just being redirected to the main install screen - and it continued round in that loop with no error message coming out at all.....
So I started to dig into the php code to see what was happening ( I don't know php by the way so I was learning as I went along).
After a lot of trial and error and tracking the code path through i finally came across this piece of code
/* open persistent DB connection */
$database = new database($db['host'], $db['user'], $db['pass'], $db['name'], NULL, false);
if($database->connect_error) { $dbFail = true; }
This connects to the mysql database based on the contents of the config.php file - however if there are any errors all that happens is the value of the dbFail variable is set to true - but no actual errors about what is wrong are displayed.
So i added an extra line based on what i found on google for this kind of thing
/* open persistent DB connection */
$database = new database($db['host'], $db['user'], $db['pass'], $db['name'], NULL, false);
if($database->connect_error) { $dbFail = true; }
/* added by rich */
echo ('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error());
Now when i run the page i see this " connect error (9002) "
So progress - something to go on. However in this case there is nothing of any use that comes up on Google - however based on my experiences with setting up another MySQL PaaS I suspected the username format may be the problem.
So i changed the config file from this
/* database connection details
******************************/
$db['host'] = "mysqlpaas.mysql.database.azure.com";
$db['user'] = "phpipam";
$db['pass'] = "password";
$db['name'] = "phpipam";
to this
/* database connection details
******************************/
$db['host'] = "mysqlpaas.mysql.database.azure.com";
$db['user'] = "phpipam@mysqlpaas.mysql.database.azure.com";
$db['pass'] = "password";
$db['name'] = "phpipam";
After I did that the connect error went away and I'm presented with the proper login screen.
I thought it worth sharing as this different username format for PaaS will likely cause a lot of confusion - I've been trying to find a note that describes this and why it has to be specified this way but not real luck so far.
Hopefully this helps someone else
Thanks for posting.
ReplyDeleteMicrosoft Azure Online Training