有没有办法创建一个新的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创建MySQL数据库
- 2. 使用SMO创建和设置数据库权限?
- 3. 用户权限与mysql数据库和php
- 4. 为授权用户创建账户的数据库设计
- 5. Heroku PostgreSQL用户和数据库创建
- 6. 的MySQL创建数据库和用户脚本
- 7. 创建数据库与编码和设置用户名和密码
- 8. MYSQL PHP用户特权
- 9. MySQL用户创建数据库需要什么权限?
- 10. 在bash脚本中创建mysql数据库和用户
- 11. MySQL - 自动创建数据库,表和用户
- 12. 使用PHP和MySql数据库设置网页标题
- 13. 用php为MySQL数据库设置用户的默认图像
- 14. 创建mysql数据库和导入XML
- 15. hibernate是否可以创建数据库和数据库用户?
- 16. 数据库设计:为循环事件创建数据库和用户界面
- 17. MySQL和PHP数据库
- 18. MySQL数据库和PHP
- 19. 创建MySQL数据库,用户和授予权限所需的最低权限是什么?
- 20. 创建PHP和MySQL
- 21. 创建使用PHP和MySQL
- 22. 使用php和mysql创建群集和图形数据
- 23. PHP/Mysql:注册不会在数据库中创建新用户
- 24. 的Nexus库“创建”特权
- 25. 查询数据库和特权
- 26. 从ASP.NET站点创建Windows帐户和设置文件权限
- 27. 为用户配置文件创建mysql数据库
- 28. 使用PouchDB创建应用程序范围和用户特定的数据库
- 29. 从PHP和设置权限在phpBB3中创建论坛
- 30. 授权用户从MySQL数据库
+1使用专用帐户只能够创建数据库和用户,因为它可以防止意外,如果账户被攻破提供损坏限制。它不能丢弃任何东西,并且无法访问数据。 – 2012-03-16 11:54:58
plus1非常好的点.. – 2017-07-10 03:31:36