• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Google Cloud SQL connection

#1
I have just moved form CI2 to CI3 and I am having trouble getting a DB connection to my Google Cloud SQL DB.

In CI2, I used:

PHP Code:
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'my_db';
$db['default']['dbdriver'] = 'mysqli';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
$db['default']['socket'] = '/cloudsql/my-google-project-name:my-db-name'

And I had to modify the MySQLi Driver:

PHP Code:
function db_connect()
 {
 
           if(isset($this->socket)){

 
               return mysqli_connect(null$this->usernamenull$this->databasenull$this->socket);

 
           }
 
           elseif ($this->port != '')
 
           {
 
               return @mysqli_connect($this->hostname$this->username$this->password$this->database$this->port);
 
           }
 
           else
            
{
 
                   return @mysqli_connect($this->hostname$this->username$this->password$this->database);
 
           }

 } 

But now in CI3, the DB config does not work.

I changed the hostname to be what the socket is set to, but it doesn't seem to have helped.

Any ideas?


EDIT - Never mind, I was being stupid. I hadn't set my development environment session variables properly.
Reply

#2
I am also facing this issue. Not sure what to do. It appears I am not being able to use the socket parameter even if I add it to the config array in the database.php. I have tried mysqli_connect in a test php file. The connection has no issues, it's completely a CI issue. The error I am getting is this:


PHP Code:
real_connect(): (HY000/2002): Unable to find the socket transport "unix" did you forget to enable it when you configured PHP
Reply


Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


  Theme © 2014 iAndrew  
Powered By MyBB, © 2002-2021 MyBB Group.