在 WHM/cPanel 服务器上以编程方式从 PHP 创建数据库

问题描述 投票:0回答:4

我想知道是否可以在 WHM/cPanel 服务器上从 PHP 创建新的数据库和用户。

php database cpanel whm
4个回答
3
投票

好吧,就是这样。

“mysql_create_db”功能在 cPanel 服务器上无法正常工作。

不过有一个解决方案,通过使用专有的 cPanel 函数,如下所示

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

这里还有一个现成的脚本可以使用http://www.zubrag.com/scripts/cpanel-database-creator.php


2
投票

对于 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');

0
投票

创建数据库:

mysql_query('create database foo');

mysql_create_db('foo');

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

创建 MySQL 用户:

您可以通过生成 SQL 并通过

mysql_query
运行它来创建用户帐户(就像第一个示例):http://dev.mysql.com/doc/refman/5.1/en/adding-users.html


0
投票

只要您用来连接数据库的用户具有 MySQL 中定义的适当权限,这就不成问题。

要创建数据库,用户需要具有 CREATE 权限(若要删除数据库,则为 DROP 权限),要创建用户,您需要具有 CREATE USER 权限。您可能还需要 GRANT OPTION 权限 才能向其他用户授予权限。

因此,只要您可以通过 WHM/cPanel 创建的数据库用户拥有这些权限,就应该没问题。

© www.soinside.com 2019 - 2024. All rights reserved.