/**
  * Create MySQL databases, users and grant permissions.
  */
 public function createDatabases()
 {
     /** @var $dbs MysqlDatabase[] */
     $dbs = $this->_getRepository()->findAll();
     foreach ($dbs as $db) {
         $userModel = new MysqlUserModel();
         $userModel->setUsername($db->getName())->setPassword($this->_cryptservice->decrypt($db->getPassword()));
         $dbModel = new MysqlDatabaseModel();
         $dbModel->setName($db->getName())->setUsers(array($userModel));
         if ($this->_mysqladmin->checkUserExists($userModel)) {
             $this->_mysqladmin->setUserPassword($userModel);
         } else {
             $this->_mysqladmin->createUser($userModel);
         }
         if (!$this->_mysqladmin->checkDatabaseExists($dbModel)) {
             $this->_mysqladmin->createDatabase($dbModel);
             $this->_mysqladmin->grantPermissionsOnDatabase($dbModel);
         }
     }
 }
Esempio n. 2
0
 /**
  * Checks, if a specified user exists in MySQL.
  *
  * @param MysqlUserModel $user
  *
  * @return bool
  */
 public function checkUserExists(MysqlUserModel $user)
 {
     $q = sprintf('SELECT User, Host FROM mysql.user WHERE User = "******" AND Host = "%s"', $user->getUsername(), $user->getHost());
     $result = $this->_mysqli->query($q);
     if ($result->num_rows > 0) {
         return true;
     }
     return false;
 }