2010-06-09 6 views

Répondre

4

Ok, c'est la chose.

La 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:[email protected]: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

+0

aucune erreur tout en ayant comme- http: // USER: PASS @ HOST: 2082/frontend/SKIN/sql/adddb.html? Db = DB mais aussi aucune base de données créée; est-il d'ailleurs –

0

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 creat e compte d'utilisateur en générant le SQL et en l'exécutant mysql_query (tout comme le premier exemple): http://dev.mysql.com/doc/refman/5.1/en/adding-users.html

+0

Je ne pense pas que ce soit possible. cPanel ne vous permet pas simplement de créer des bases de données comme celles-ci en utilisant n'importe quel ID utilisateur/pwd cPanel. Vous devez utiliser les informations d'identification racine. –

0

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 de CREATE privilege (pour les supprimer, ce qui serait le privilège DROP), afin de créer les utilisateurs dont vous avez besoin pour CREATE USER privilege. Vous pourriez également avoir besoin du GRANT OPTION privilege pour pouvoir accorder des privilèges à d'autres utilisateurs.

Tant que les utilisateurs DB que vous pouvez créer via WHM/cPanel possèdent ces privilèges, cela devrait fonctionner.

0

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'); 
Questions connexes