Create database programatically from PHP on WHM/cPanel server

走远了吗. 提交于 2019-12-01 00:30:24
titel

Ok, this is the thing.

'mysql_create_db' function does not work properly on cPanel servers.

There is a solution to this though, by using the proprietary cPanel function like so

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

There is also a ready-made script that can be used here http://www.zubrag.com/scripts/cpanel-database-creator.php

For 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');

To create a DB:

mysql_query('create database foo');

or

mysql_create_db('foo');

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

To create a MySQL user:

You can create user account by generating the SQL and running it through mysql_query (just like the first example): http://dev.mysql.com/doc/refman/5.1/en/adding-users.html

As long as the user you use to connect to the database has the appropriate privileges defined in MySQL this shouldn't be a problem.

To create databases the user needs the CREATE privilege (to drop them that would be DROP privilege), to create user(s) you need to have the CREATE USER privilege. You also might need the GRANT OPTION privilege to be able to grant privileges to other users.

So as long as the DB user(s) you can create through WHM/cPanel have these privileges, you should be ok.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!