Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建数据库和用户mysql并在php中设置权限_Php_Mysql_Database_Privileges - Fatal编程技术网

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

创建数据库和用户mysql并在php中设置权限,php,mysql,database,privileges,Php,Mysql,Database,Privileges,有没有一种方法可以创建一个新的MySQL数据库,一个新的MySQL用户,并在新数据库上授予新用户权限?所有这些操作都可以通过常规SQL查询执行 但是,我不想使用root用户的数据库连接运行PHP脚本。您可以这样做: mysql_connect('localhost','user',password); mysql_query("CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';"); mysql_query("GRANT AL

有没有一种方法可以创建一个新的MySQL数据库,一个新的MySQL用户,并在新数据库上授予新用户权限?所有这些操作都可以通过常规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文档,如果您在CPanel上托管项目,那么
MySQL\u 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'));
?>

创建数据库
创建数据库


我建议您使用phpmyadmin

您需要执行以下步骤:

  • 打开phpmyadmin
  • 转到管理部分
  • 点击添加用户帐户
  • 输入用户名和密码
  • 设置特权
  • 按[开始]按钮
  • 就这些 见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
    

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

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

    +1使用只能创建数据库和用户的专用帐户,因为它可以防止事故发生,并在帐户受损时提供损害限制。它不能删除任何内容,也无法访问数据。这不会试图回答问题。数据库创建成功,用户也创建成功,但新创建的用户未分配到数据库。您可以从此处下载xmlapi.php:(答案中的下载链接已移动)mysqli with php 7
    CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
    GRANT ALL ON db1.* TO 'username'@'localhost'"