2012-03-15 9 views
6

क्या नया MySQL डेटाबेस, एक नया MySQL उपयोगकर्ता बनाने और PHP का उपयोग कर नए डेटाबेस पर नए उपयोगकर्ता विशेषाधिकार देने का कोई तरीका है?डीबी और उपयोगकर्ता mysql बनाएँ और विशेषाधिकार सेट करें php

उत्तर

8

हां, क्योंकि ये सभी कार्य नियमित SQL क्वेरी द्वारा किए जा सकते हैं।

हालांकि, मैं रूट उपयोगकर्ता से डेटाबेस कनेक्शन के साथ PHP स्क्रिप्ट चलाने से बचना चाहता हूं।

+4

+1, कि केवल डेटाबेस और उपयोगकर्ता बनाने के लिए सक्षम है एक समर्पित खाते का उपयोग करें, क्योंकि यह दुर्घटनाओं को रोकता है और यदि खाते के साथ छेड़छाड़ कर रहा है नुकसान सीमा प्रदान करता है। यह कुछ भी नहीं छोड़ सकता है, और डेटा तक पहुंच नहीं है। –

+0

प्लस 1 बहुत अच्छा बिंदु .. –

6

आप कुछ इस तरह कर सकता है:

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

5

पर MySQL प्रलेखन पर लग सकता है आप CPanel पर अपनी परियोजना की मेजबानी कर रहे हैं तो mysql_query विधि के लिए काम नहीं करेगा डेटाबेस, उपयोगकर्ता, और अनुमति देने के लिए बनाएँ।

आपको सीपीनेल के लिए एक्सएमएल एपीआई का उपयोग करना होगा।

<?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')); 
?> 
here से

डाउनलोड xmlapi.php, या बस इसके लिए गूगल पर खोज करते हैं।

यह मेरे लिए पूरी तरह से काम किया है।

+0

डेटाबेस सफलतापूर्वक बनाया गया है साथ ही साथ उपयोगकर्ता भी सफलतापूर्वक बनाया गया है लेकिन नव निर्मित उपयोगकर्ता डेटाबेस को असाइन नहीं करता है। –

+0

आप यहां से xmlapi.php डाउनलोड कर सकते हैं: https://github.com/CpanelInc/xmlapi-php/blob/master/xmlapi.php (उत्तर में डाउनलोड लिंक स्थानांतरित हो गया है) – sudip

-1
<!-- 

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>"; 
?> 
+0

यह उत्तर देने का प्रयास नहीं करता है सवाल। –

0

मैं आपको phpmyadmin का उपयोग करने का सुझाव दूंगा।

  1. खुला phpmyadmin
  2. व्यवस्थापक अनुभाग पर जाएँ
  3. उपयोगकर्ता ऐड अकाउंट हिट
  4. डाल उपयोगकर्ता नाम और पासवर्ड
  5. सेट विशेषाधिकार
  6. हिट:

    आप चरण करने की आवश्यकता [जाओ] बटन

कि सभी होने की स्थिति में यूट्यूब [click here]

पर कार्रवाई में देखते हैं अगर आप phpMyAdmin go with official

बारे में अधिक जानना चाहते हैं, लेकिन अगर वहाँ php यहाँ के साथ ऐसा करने के लिए किसी विशेष कारण नहीं है एसक्यूएल सराहना है

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