创建数据库和用户mysql并设置权限php

yqkkidmi  于 2021-06-20  发布在  Mysql
关注(0)|答案(6)|浏览(374)

关闭。这个问题需要更加突出重点。它目前不接受答案。
**想改进这个问题吗?**通过编辑这篇文章更新这个问题,使它只关注一个问题。

两年前关门了。
改进这个问题
有没有一种方法可以创建一个新的mysql数据库,一个新的mysql用户,并授予新用户在新数据库上的权限,所有这些都使用php?

q5lcpyga

q5lcpyga1#

我建议你用phpmyadmin。
您需要执行以下步骤:
打开phpmyadmin
转到管理部分
点击添加用户帐户
输入用户名和密码
设置权限
按[go]键
这是youtube上的全部内容[点击此处]
如果你想了解更多关于phpmyadmin的信息,请与官方联系
但是,如果有任何特殊的理由使用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
5kgi1eie

5kgi1eie2#

是的,因为所有这些操作都可以通过常规sql查询执行。
但是,我不想使用root用户的数据库连接运行php脚本。

nkcskrwz

nkcskrwz3#

<!--

Go to setup on line 48
Created by kierzo@kierzo.com

-->

<!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 kierzo@kierzo.com
//
// 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 $databasename@localhost";
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>";
?>
p1iqtdky

p1iqtdky4#

如果您在cpanel上托管您的项目,那么 mysql_query 方法无法创建数据库、用户和授予权限。
您必须使用cpanel的xmlapi。

<?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,或者在google上搜索它。
这对我来说非常有效。

4dc9hkyq

4dc9hkyq5#

打开php myadmin或mysql workbench转到查询窗口,然后运行下面的查询

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON db1.* TO 'username'@'localhost'"
myzjeezk

myzjeezk6#

你可以这样做:

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();

您可以查看关于grant和create user的mysql文档

相关问题