Créer la base de données par programmation à partir de PHP sur le serveur WHM / cPanel

StackOverflow https://stackoverflow.com/questions/3005466

  •  25-09-2019
  •  | 
  •  

Question

Je me demandais s'il est possible de créer une nouvelle base de données et l'utilisateur, de PHP, sur un serveur WHM / cPanel.

Était-ce utile?

La solution

Ok, c'est la chose.

fonction 'mysql_create_db' ne fonctionne pas correctement sur les serveurs cPanel.

Il y a une solution à ce que, en utilisant la fonction cPanel propriétaire comme si

http://USER:PASS@HOST:2082/frontend/SKIN/sql/adddb.html?db=DB

Il y a aussi un script ready-made qui peut être utilisé ici http: //www.zubrag.com/scripts/cpanel-database-creator.php

Autres conseils

Pour cPanel:

function create_db($cPanelUser,$cPanelPass,$dbName) {

$buildRequest = "/frontend/x3/sql/addb.html?db=".$dbName;

$openSocket = fsockopen('localhost',2082);
if(!$openSocket) {
    return "Socket error";
    exit();
}

$authString = $cPanelUser . ":" . $cPanelPass;
$authPass = base64_encode($authString);
$buildHeaders  = "GET " . $buildRequest ."\r\n";
$buildHeaders .= "HTTP/1.0\r\n";
$buildHeaders .= "Host:localhost\r\n";
$buildHeaders .= "Authorization: Basic " . $authPass . "\r\n";
$buildHeaders .= "\r\n";

fputs($openSocket, $buildHeaders);
while(!feof($openSocket)) {
    fgets($openSocket,128);
}
fclose($openSocket);


//echo "Created database $dbName";

}

create_db('username','password','dbName');

Pour créer un DB:

mysql_query('create database foo');

ou

mysql_create_db('foo');

http://www.php.net/manual /en/function.mysql-create-db.php

Pour créer un utilisateur MySQL:

Vous pouvez créer le compte utilisateur en générant le SQL et l'exécuter à travers mysql_query (comme le premier exemple): http://dev.mysql.com/doc/refman/5.1/en/adding-users.html

Tant que l'utilisateur que vous utilisez pour vous connecter à la base de données a les privilèges appropriés, définis dans MySQL cela ne devrait pas être un problème.

Pour créer des bases de données à l'utilisateur a besoin privilège de création (pour les laisser tomber ce serait un privilège DROP), pour créer utilisateur (s), vous devez avoir le CREATE uSER privilège . Vous pourriez aussi avoir besoin privilège GRANT OPTION pour pouvoir accorder des privilèges aux autres utilisateurs.

Donc, tant que l'utilisateur DB (s), vous pouvez créer par WHM / cPanel ont ces privilèges, vous devriez être ok.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top