有没有办法创建一个新的MySQL数据库,一个新的MySQL用户,并给新的数据库所有使用PHP的用户权限?创建数据库和用户的MySQL和设置特权php
回答
是的,因为所有这些操作都可以通过常规SQL查询来执行。
但是,我不会从root用户运行带有数据库连接的PHP脚本。
你可以做这样的事情:
mysql_connect('localhost','user',password);
mysql_query("CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';");
mysql_query("GRANT ALL ON db1.* TO 'username'@'localhost'");
mysql_query("CREATE DATABASE newdatabase");
mysql_close();
你可以看看MySQL文档GRANT和CREATE USER
如果你正在主持上的cPanel您的项目,那么mysql_query
方法将无法工作创建数据库,用户并授予权限。
您必须为CPanel使用XML Api。
<?php
include("xmlapi.php");
$db_host = 'yourdomain.com';
$cpaneluser = 'your cpanel username';
$cpanelpass = 'your cpanel password';
$databasename = 'testdb';
$databaseuser = 'test'; // Warning: in most of cases this can't be longer than 8 characters
$databasepass = 'dbpass'; // Warning: be sure the password is strong enough, else the CPanel will reject it
$xmlapi = new xmlapi($db_host);
$xmlapi->password_auth("".$cpaneluser."","".$cpanelpass."");
$xmlapi->set_port(2082);
$xmlapi->set_debug(1);//output actions in the error log 1 for true and 0 false
$xmlapi->set_output('array');//set this for browser output
//create database
$createdb = $xmlapi->api1_query($cpaneluser, "Mysql", "adddb", array($databasename));
//create user
$usr = $xmlapi->api1_query($cpaneluser, "Mysql", "adduser", array($databaseuser, $databasepass));
//add user
$addusr = $xmlapi->api1_query($cpaneluser, "Mysql", "adduserdb", array("".$cpaneluser."_".$databasename."", "".$cpaneluser."_".$databaseuser."", 'all'));
?>
下载xmlapi.php从here,或者干脆在谷歌搜索它。
这是完美的工作。
数据库创建成功,用户也成功创建,但新创建的用户不分配给数据库。 – 2015-04-11 06:39:38
你可以从这里下载xmlapi.php:https://github.com/CpanelInc/xmlapi-php/blob/master/xmlapi.php(回答中的下载链接被移动) – sudip 2017-08-02 20:12:47
<!--
Go to setup on line 48
Created by [email protected]
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="en-gb" http-equiv="Content-Language" />
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Create Database</title>
</head>
<body>
<!-- Title -->
<p><h1>Create Database</h1></p>
<p></p>
<p>
<!-- The form -->
<form action="<?php $currentFile = $_SERVER["PHP_SELF"];$parts = Explode('/', $currentFile);echo $parts[count($parts) - 1];?>" method="post">
Database Name: <input name="databasename" type="text" />
<br>
DB Pass: <input name="dbpass" type="text" />
<br>
Admin Pass: <input name="passbox" type="password" />
<p><input name="Submit1" type="submit" value="submit" /></p>
</form>
<!-- end form -->
</p>
</body>
</html>
<?php
//*********************** CONFIG SETUP ************************************//
// Created by [email protected]
//
// set the admin pass for the page
$adminpass = "*******"; // change ******* with your page pass
//
// set mysql root pass
$mysqlRootPass = "*******"; // change ******* with your mysql root pass
//
//
//*********************** CONFIG SETUP ************************************//
// if isset set the varibables
if(isset($_POST["passbox"]) && ($_POST["databasename"])){
$databasename = $_POST["databasename"];
$password = $_POST["passbox"];
$dbpass = $_POST["dbpass"];
}
else { exit;}
if(($password) == ($adminpass)) {
}
else {
echo "Incorrect Password!";
exit;}
// store connection info...
$connection=mysqli_connect("localhost","root","$mysqlRootPass");
// check connection...
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// Create database
echo "<br><br>";
#echo "$sql";
$sql="CREATE DATABASE $databasename";
if (mysqli_query($connection,$sql))
{
echo "<h2>Database <b>$databasename</b> created successfully!</h2>";
}
else
{
echo "Error creating database: " . mysqli_error($con);
}
// Create user
$sql='grant usage on *.* to ' . $databasename . '@localhost identified by ' . "'" . "$dbpass" . "'";
echo "<br><br>";
#echo "$sql";
if (mysqli_query($connection,$sql))
{
echo "<h2>User Created... <b>$databasename</b> created successfully!</h2>";
}
else
{
echo "Error creating database user: " . mysqli_error($con);
}
// Create user permissions
$sql="grant all privileges on $databasename.* to [email protected]";
echo "<br><br>";
#echo "$sql";
if (mysqli_query($connection,$sql))
{
echo "<h2>User permissions Created... <b>$databasename</b> created successfully!</h2>";
}
else
{
echo "Error creating database user: " . mysqli_error($con);
}
echo "<p>Database Name: $databasename</p>";
echo "<p>Database Username: $databasename</p>";
echo "<p>Database Password: $dbpass</p>";
echo "<p>Database Host: localhost</p>";
?>
这不会试图回答题。 – 2013-08-18 15:42:10
我会建议你使用phpmyadmin。
你需要做的步骤:
- 开放的phpmyadmin
- 去管理部分
- 上添加用户帐户命中
- 看跌的用户名和密码,
- 组权限
- 命中[go]按钮
这一切 在行动中看到YouTube上的[click here]
的情况下,如果你想知道更多关于phpMyAdmin的go with official
但如果有什么特别的理由用PHP这里这样做是sql表彰
CREATE USER 'tesrytss'@'%'//user name IDENTIFIED VIA mysql_native_password USING '***';.//set pass GRANT SELECT, INSERT, UPDATE, DELETE, FILE ON *.* TO 'tesrytss'@'%' // previlages and username and location REQUIRE NONE WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0; //other requerment
- 1. PHP PDO创建MySQL数据库和用户,并授予权限
- 2. 数据库创建使用PHP和MySQL
- 3. 使用用户名,密码和所有权限从PHP创建MySQL数据库
- 4. 使用SMO创建和设置数据库权限?
- 5. 使用cPanel API在PHP中创建MySQL数据库和用户
- 6. PHP - 创建MySQL数据库和用户代码不起作用
- 7. 用户权限与mysql数据库和php
- 8. 为授权用户创建账户的数据库设计
- 9. 使用PHP和MySQL重置数据库
- 10. 创建登录和PHP和数据库
- 11. 在MySQL VIA脚本中为数据库创建用户和权限
- 12. Heroku PostgreSQL用户和数据库创建
- 13. 的MySQL创建数据库和用户脚本
- 14. 创建数据库与编码和设置用户名和密码
- 15. PHP和MYSQL数据库连接和表创建只有一次
- 16. 在PHP和MYSQL中设置用户权限
- 17. 从php和mysql数据库中获取数据(创建报告)
- 18. MYSQL PHP用户特权
- 19. MySQL用户创建数据库需要什么权限?
- 20. 在bash脚本中创建mysql数据库和用户
- 21. MySQL - 自动创建数据库,表和用户
- 22. 当我尝试通过PHP创建数据库并设置用户权限时,MySQL语法错误
- 23. 如何使用android连接php创建mysql数据库和表?
- 24. 如何使用PHP和MySQL创建数据库?
- 25. 使用PHP和MySql数据库设置网页标题
- 26. 用php为MySQL数据库设置用户的默认图像
- 27. 创建mysql数据库和导入XML
- 28. MYSQL - 用户数据库设置
- 29. 用PHP创建多个MySQL数据库
- 30. hibernate是否可以创建数据库和数据库用户?
+1使用专用帐户只能够创建数据库和用户,因为它可以防止意外,如果账户被攻破提供损坏限制。它不能丢弃任何东西,并且无法访问数据。 – 2012-03-16 11:54:58
plus1非常好的点.. – 2017-07-10 03:31:36