【发布时间】:2011-10-21 02:20:21
【问题描述】:
有谁知道是否有一个脚本可以自动创建一个 mysql 数据库,而不必进入 cpanel 并手动创建一个数据库、用户名和密码?
谢谢
【问题讨论】:
有谁知道是否有一个脚本可以自动创建一个 mysql 数据库,而不必进入 cpanel 并手动创建一个数据库、用户名和密码?
谢谢
【问题讨论】:
除非您使用更高级别的用户自己登录,否则您无法创建用户名和密码。这通常是根。使用具有足够权限的用户名和密码后,创建数据库变得轻而易举。
<?php
$dsn = $dsn = "mysql:host=localhost";
$pdo = new PDO($dsn,"root","");
//Creation of user "user_name"
$pdo->query("CREATE USER 'user_name'@'%' IDENTIFIED BY 'pass_word';");
//Creation of database "new_db"
$pdo->query("CREATE DATABASE `new_db`;");
//Adding all privileges on our newly created database
$pdo->query("GRANT ALL PRIVILEGES on `new_db`.* TO 'user_name'@'%';");
?>
在此脚本中,我假设您的 root 用户名为“root”,其密码为 空,如果不是这样,请更改第 4 行进行匹配。
【讨论】:
($dsn = $dsn)
不登录就无法创建新用户。
您可以使用root帐户或具有权限的用户创建数据库
【讨论】:
<?php
mysql_connect("localhost", "root", "gm123") or die(mysql_error());
mysql_query("CREATE DATABASE cat") or die(mysql_error());
mysql_select_db("cat") or die(mysql_error());
mysql_query("CREATE TABLE user(username varchar(20), password varchar(20), permission varchar(20))") or die(mysql_error());
mysql_query("INSERT INTO user(username,password,permission) VALUES('gm','311807','admin')") or die(mysql_error());
mysql_query("CREATE TABLE cattbl(id INT NOT NULL PRIMARY KEY ,name VARCHAR(30),roll INT NOT NULL,technology VARCHAR(30),semister VARCHAR(30),shift VARCHAR(30),bdate varchar(30),cell VARCHAR(30),address VARCHAR(30),picture LONGBLOB)") or die(mysql_error());
header("Location: index.php");
?>
你可以试试这个解决你的问题
【讨论】:
我刚刚在我的项目中这样做
实际答案是可以,但有点复杂。
Cpanel 不允许您使用普通的“CREATE DATABASE 'mydbname';”在 php 脚本中创建一个新的数据库。
您可以做到这一点的唯一方法是登录到您的 cpanel,通过数据库向导并创建一个新的。到目前为止,您可能每次都手动执行此操作。
这可以通过 php 脚本来完成,但您必须使用 api——它会自动执行相同的操作。您必须向 api 提供您的 cpanel 用户名和 cpanel 密码。
只要按照这个问题的答案 Create cpanel database through php script
希望对你有帮助
【讨论】:
require_once 'database.php' 将这行代码添加到你的 index.php 中
$servername = 'localhost';
$username= 'root';
$password ='';
$conn = new mysqli($servername,$username,$password);
if($conn->connect_error)
{
die("Connection Failed !" . $conn->connect_error());
}
else
{
$sql = "CREATE DATABASE test_employee";
if($conn->query($sql)== TRUE )
{
echo "Database Created Successfully";
}
}
【讨论】:
你绝对可以!你可以使用 PHP。
首先您需要连接到数据库。然后,您需要在创建数据库的那个数据库上运行 SQL 查询。 (这本质上就是 cpanel 所做的)
编辑:自 my_sql 已弃用后更新
这是关于如何做到这一点的 stackoverflow 帖子...
【讨论】:
mysql_* 函数。如果可以的话,我会给你另一个使用 w3schools 的例子。见w3fools.com