PHPMyAdmin (PMA) er en utmerket gratis, åpen kildekodebasert databaseklient som kan brukes til å samhandle lettere med MySQL og applikasjonsdatabaser. Jeg vil beskrive hvordan du installerer det, sikre det og noen vanlige scenarier som det kan hjelpe deg med i databasedrift. Her er en online demo av PMA for deg å utforske.
I tillegg til å tilby et visuelt GUI for databasetjenester, setter jeg også pris på å kunne kjøre kommandolinjens SQL-operasjoner via nettleseren min uten å måtte logge på serveren via SSH. For eksempel, noen WiFi-tilkoblinger og mobile hotspots avslutter jevnlig vedvarende SSH-økter, noe som gjør databasen oppgaver problematisk.
Komme i gang med PMA er ganske grei på Linux. Jeg skal beskrive hvordan du gjør det med Ubuntu 14.x på Digital Ocean. Logg inn på serveren din via SSH.
apt-get installer phpmyadmin
Du kan bruke standardinnstillingene under installasjonen eller tilpasse dem etter eget ønske.
Når du begrenser MySQL-tilgang til bare localhost (som du burde), er det ikke noen eksterne porter til MySQL for en hacker å prøve å få tilgang til. De kan prøve å bryte inn via SSH eller prøve SQL-injeksjonsangrep mot dine applikasjoner, men de kan ikke direkte angripe databasen. Når du har installert PMA, kan alle kjøre nettbaserte angrep mot det for å få kontroll over databasen din, så det er nødvendig å ta vare på det.
Det er noen forholdsregler jeg anbefaler når du konfigurerer PMA.
1. Bruk veldig sterke passord for alle dine MySQL-kontoer, spesielt root-kontoen. f.eks 25 tegn for root-passordet.
2. Bruk forskjellige MySQL-kontoer og privilegier for hvert program / nettsted som kjører på en enkelt server. På denne måten hvis ett passord er kompromittert, blir bare ett nettsteds database kompromittert.
3. Endre standard nettadressen som brukes av PMA. På denne måten kan folk ikke besøke http://yourblog.com/phpmyadmin. Selv om denne sikkerheten ved dunkelhet ikke er en veldig effektiv teknikk, gir den noe beskyttelse.
Legg til et alias til apache.conf
fil:
nano /etc/phpmyadmin/apache.conf
Alias / myobscuredpma / usr / share / phpmyadmin
Last opp apache:
service apache2 reload
Så, for å få tilgang til PMA, besøk http://yourblog.com/myobscuredpma
Hvis du må endre PHPMyAdmin-passordet ditt, kan du redigere config-db.php
her:
nano /etc/phpmyadmin/config-db.php
4. Konfigurer webgodkjenning for PMA-nettstedet. Dette vil kreve at du skriver inn et ekstra passord for å få tilgang til PMA, i tillegg til databasens passord, slik:
For å konfigurere Apache brukerbegrensninger, følg disse trinnene:
Installere htpasswd
som en del av apache2-utils:
apt-get install apache2-utils
Lag en katalog for å lagre passordene dine:
mkdir / etc / htpasswd
Legg til htaccess
støtte for PMA:
nano /etc/phpmyadmin/apache.conf
Legg til Tillat Override All
under
Alternativer FollowSymLinks DirectoryIndex index.php AllowOverride All
Konfigurer brukerautentisering for PMA:
nano /usr/share/phpmyadmin/.htaccess
AuthType Basic AuthName "Login Required for Access" AuthUserFile /etc/htpasswd/.htpasswd Krev gyldig bruker
Angi passordet ditt:
htpasswd -c /etc/htpasswd/.htpasswd brukernavn
Og start Apache på nytt:
service apache2 restart
Bla gjennom til ditt PMA-nettsted, og du blir bedt om ditt brukernavn og passord som vist ovenfor.
Jeg finner PMA spesielt nyttig i utviklings- og testfaser der jeg kanskje vil tilbakestille databasen eller sikkerhetskopiere operasjoner gjentatte ganger.
Uten PMA, ville jeg logge på serveren min via SSH. Logg inn på MySQL, og kjør deretter:
opprett database myapp; gi alle privilegier på myapp_database. * TIL "ditt-mysql-brukernavn" @ "localhost" identifisert av "ditt-mysql-passord"; flush privilegier;
Med PMA kan du kjøre alle kommandolinjespørsmål med det visuelle grensesnittet. Klikk på SQL-fanen og lim inn MySQL-databasens instruksjoner ovenfor. Klikk deretter på Gå for å opprette databasen.
Du kan også bruke det visuelle grensesnittet direkte:
Du kan også legge til brukere og definere privilegier på denne måten. Klikk på fanen privilegier:
Klikk på Legg til bruker, og definer privilegiene for databasen du ønsker:
For din typiske applikasjonsdatabasekonto, vil du sjekke boksene i Datamaskin og strukturfeltene.
For å slette en database, besøk databasemenyen. Klikk på databasen du vil slippe, og klikk på Drop:
Det er en veldig god ide å sikkerhetskopiere søknadsdatabasen før du utfører utvidede operasjoner på databasen eller oppgraderingen av koden. Hvis noe går galt, kan du gjenopprette nettstedet ditt fra sikkerhetskopien.
Bruk PMA-webgrensesnittet, klikk på databasen, klikk på Export-fanen og velg Tilpasset.
Aktiver "Legg til tabellen Tabell / Vis / Prosedyre / Funksjon / Hendelse":
Når du klikker på Go, laster PMA ned en sikkerhetskopi av hele databasen. Hvis du er ikke konfigurert for Apache PHP-tidsavbrudd, kan noen lange filnedlastinger avbryte og mislykkes. Du kan justere dette inn php.ini
som jeg beskriver på nettstedet mitt.
PMA er fantastisk for testing av SQL-spørringer under utviklingen. Da jeg opprettet Geogram (se også min kommende veiledning MapApp on Tuts +), trengte jeg å lære og teste en rekke komplekse geolocation-spørringer for nabolaget shapefiles, f.eks. finn nærmeste nabolag til adressen min. PMA gjorde dette mye lettere.
Velg databasen din, klikk på Spørring. Lim inn eller rediger dine komplekse søk og test dem direkte fra PMA:
Når jeg hadde spørsmålene mine, kunne jeg skrive programmatisk ActiveRecord kode lettere. Bare som et eksempel:
$ kriterier = nye CDbCriteria; $ Criteria-> sammen = true; $ kriterier-> har = "avstand < 100"; $criteria->ordre = "avstand ASC"; $ kriterium-> med = array ('place_geometry' => array ('select' => 'place_id, center,'. Ny CDbExpression ('(3959 * acos (cos (radianer ('. $ lat. ')) * cos (radianer (X (senter))) * cos (radianer (Y (senter)) - radianer ('. $ lon.')) + synd (radianer ('. $ lat.')) * sin senter))))) som avstand "))); $ dataProvider = ny CActiveDataProvider (Plass :: modell () -> aktiv () -> inkludererMember ($ id), array ('criteria' => $ kriterier, 'pagination' => array ('pageSize' => 10,) ,));
Hvis du er en utvikler, har du sannsynligvis hatt en feil i en app, ødelagt databasen din. Jeg vet, ikke sant?
For eksempel, noen av mine e-postadministrasjonsapps blir noen ganger fast på uvanlige meldinger som kommer inn; Disse feilene er vanskelig å finne i vanlig testing. Når dette skjer, har jeg funnet det nyttig å endre databasen direkte med PMA for å løsne oppgaver og få siden til å kjøre igjen. I noen tilfeller er det bare å være i stand til enkelt å bla tabeller som kan hjelpe deg med å diagnostisere hva som er ødelagt.
I PMA, åpne databasen og velg tabellen. Dobbeltklikk på en kolonne for å redigere den direkte på plass. Gjør endringen du trenger og trykk på retur:
Hvis du bruker et rammeverk (som Yii), kan du bruke programmatiske databasemigrasjoner. Databasemigrasjoner gjør det enklere å gjenkjenne funksjonutvikling og oppgradere dine applikasjoner. Testing av dem kan imidlertid ødelegge ting i din lokale database.
Vanligvis vil jeg komme inn i migreringsfeil, og jeg kan ikke migrere opp eller ned på grunn av ubemerkede indekser, utenlandske nøkler eller tabeller. I dette tilfellet kan jeg bruke PMA til å slippe et bord og slette uønskede indeksfiler.
I PMA, velg databasen din, klikk på SQL-fanen og skriv inn SQL for å slippe din utenlandske nøkkel eller indeks. Her er et par eksempler:
Jeg håper du har funnet dette nyttig. Vennligst legg inn eventuelle kommentarer, rettelser eller flere ideer nedenfor. Du kan bla gjennom mine andre Tuts + tutorials på min forfatterside eller følge meg på Twitter @ reifman.