sql >> Databasteknik >  >> RDS >> Mysql

Hur man programmatiskt skapar MySQL-databaser på delade Linux-värdplaner

Tack till @Alex C som fick mig på rätt spår. Följande kommer att fungera med många delade värdplaner, men du vill kontrollera deras policyer om detta först. Min skrev tillbaka till mig i en teknisk supportbiljett och sa:"Du måste automatisera genom ett cpanel-skript." Så, det är vad det här är.

I exemplet nedan skulle jag redan ha köpt root.com som min huvudsakliga rotdomän för min delade värdplan. Jag skulle vilja ställa in en databas med namnet "user_myexample" med lösenordet "myexample" tilldelat med fullständiga rättigheter till användaren "user_myexamp". Om prefixet "user_" och "myexamp" ser udda ut -- beror det på att cpanel har ett prefix baserat på rotanvändarens användarkonto till cpanel, och databasens användarnamn kan bara vara max 7 tecken.

För att ansluta till Cpanel för att få detta att hända, angav jag en webbadress för cpanel-hemsidan (som varierar med värdplanen) så att den kunde analyseras och återanvändas. Jag tillhandahöll också min root.coms cpanel användar/pass-information.

Ekosatserna är bara utmatningssvaret oavsett om varje HTTP GET-begäran fungerade eller inte. Du kanske vill inspektera det för att se om det finns något du kan analysera ur den utgången för framgång/misslyckande.

Observera att vissa värdplaner blockerar file_get_contents från att ansluta till en URL, så du kan behöva byta med fopen($sURL, 'r') eller Curl API.

<?php

// @ input vars
$sPastedCpanelHomepageURL = 'https://root.com:2083/frontend/x3/index.html';
$sNewDB = 'myexample';
$sNewDBUser = 'myexamp'; // must be 7 chars max
$sNewDBPass = 'myexample';
$sCPanelUser = 'user';
$sCPanelPass = 'pass';

// @ processing
$sCP = dirname($sPastedCpanelHomepageURL);
$sCP = str_replace('://','://' . $sCPanelUser . ':' . $sCPanelPass . '@',$sCP);

$sPrefix = substr($sCPanelUser, 0, 7) . '_';

$sTask1 = '/sql/addb.html?';
$sTask2 = '/sql/adduser.html?';
$sTask3 = '/sql/addusertodb.html?';

$sNewDB = urlencode($sNewDB);
$sNewDBUser = urlencode($sNewDBUser);
$sNewDBPass = urlencode($sNewDBPass);
$sCPanelUser = urlencode($sCPanelUser);
$sCPanelPass = urlencode($sCPanelPass);

$sNewDBUser = substr($sNewDBUser, 0, 7);

$asData1 = array(
  'db' => $sNewDB
);
$sData1 = http_build_query($asData1);
$s = file_get_contents($sCP . $sTask1 . $sData1);
echo "$s\n";

$asData2 = array(
  'user' => $sPrefix . $sNewDBUser,
  'pass' => $sNewDBPass,
  'pass2' => $sNewDBPass
);
$sData2 = http_build_query($asData2);
$s = file_get_contents($sCP . $sTask2 . $sData2);
echo "$s\n";

$asData3 = array(
  'user' => $sPrefix . $sNewDBUser,
  'db' => $sPrefix . $sNewDB,
  'update' => '',
  'ALL' => 'ALL'
);
$sData3 = http_build_query($asData3);
$s = file_get_contents($sCP . $sTask3 . $sData3);
echo "$s\n";


  1. Benchmarking Managed PostgreSQL Cloud Solutions - Google Cloud:Del tre

  2. Koda ditt första API med Node.js och Express:Anslut en databas

  3. Hur väljer man data från flera tabeller med kopplingar/underfråga på rätt sätt? (PHP-MySQL)

  4. Postgres skiftlägeskänslighet