MySQL-databaser spelar en integrerad del i många datorsystem, särskilt när det gäller webbhotell och internettjänster. Med all den värdefulla data som anförtrotts databasen är det viktigt att göra säkerhetskopior, och det är viktigt att veta hur man administrerar databasservern. MySQL innehåller två kraftfulla verktyg för dessa uppgifter: "mysqldump" och "mysqladmin." Som deras namn antyder är den första för säkerhetskopiering och den andra är för administration. Att mastera dessa två kommandon är avgörande om du vill bli en kompetent MySQL-administratör.

Säkerhetskopior

Kommandot mysqldump skapar en fil med SQL-satser som när de körs, kommer att återskapa samma tabeller och data som finns i databasen. Den kan användas som en metod för säkerhetskopiering eller som ett enkelt sätt att kopiera en databas från en server till en annan. Det kan också skapa produktion som kommaseparerade värden (CSV), eller till och med i XML. Eftersom den resulterande utsignalen är en textfil med SQL-satser, har administratörer möjlighet att visa och ändra dumpfilen.

För att dumpa ett enda bord i en databas, använd mysqldump enligt följande:

 mysqldump -u root -p testdb tabellename 

Där "testdb" är namnet på databasen och "tabellenamn" är namnet på tabellen du vill dumpa. Alternativet "-u" anger vilken MySQL-användare som ska använda under dumpningen och "-p" berättar mysqldump för att få lösenordet interaktivt (dvs. du måste skriva in lösenordet när du blir ombedd). Användaren behöver ha läsåtkomst till databasen som dumpas (tekniskt behöver användaren SELECT, SHOW VIEW, TRIGGER och LOCK TABLES privilegier). Användaren "root" är normalt konfigurerad (tillsammans med ett lösenord) under MySQL-serverns installation.

Utgången skickas direkt till konsolen. Om du vill skicka utmatningen till en fil och ange lösenordet på kommandoraden (användbar för säkerhetskopieringskript), använd:

 mysqldump -u root --password = 'hemlig' testdb tabellename> testdb_table_backup.sql 

Där "hemligt" är lösenordet för användarrotten, och tabellenamn är namnet på tabellen du vill säkerhetskopiera. Du ska ersätta "_table_" i filnamnet med det riktiga tabellenavnet. Den resulterande filen "testdb_table_backup.sql" innehåller alla SQL-satser som är nödvändiga för att återskapa tabellen.

Du kan leverera mer än en tabellparameter för att säkerhetskopiera flera tabeller, eller om du släpper ut det helt, kommer hela databasen att dumpas. Till exempel:

 mysqldump -u root --password = 'secret' testdb> testdb_backup.sql 

Den resulterande filen "testdb_backup.sql" innehåller en dumpning av alla tabeller i databasen.

För att dumpa mer än en databas måste du använda alternativet - --databases . Till exempel:

 mysqldump -u root --password = 'secret' --databaser testdb testdb2> testbd_testdb2_backup.sql 

För att säkerhetskopiera alla tabeller från alla databaser på MySQL-servern, använd --all-databases " --all-databases ":

 mysqldump -u root --password = 'secret' --all-databaser> all_dbs.sql 

Administration

Mysqladmin-verktyget används för att utföra administrativa uppgifter, inklusive kontroll av serverns konfiguration och nuvarande status samt att skapa och släppa databaser etc. För att skapa en databas som heter "testdb":

 mysqladmin -u root -p skapa testdb 

Alternativen "-u" och "-p" fungerar på samma sätt som med kommandot mysqldump.

För att radera en databas tillsammans med alla dess tabeller använd "kommandot":

 mysqladmin -u root -p drop testdb 

När du har bekräftat att databasen raderas kommer den, tillsammans med alla dess tabeller, att tas bort från servern.

Kommandot mysqadmin kan också hämta olika statistik från MySQL-servern. Prova underkommandonerna "status" och "extended status". Den enklaste statusförfrågan är kommandot "ping" som kontrollerar om servern är levande. Här är ett exempel på hur du använder det:

 mysqladmin -u root --password = "hemlig" ping 

Du kan få detaljerad information om kommandot mysqldump från MySQL-dokumentationssidan Ett databasskopieringsprogram, och även för mysqladmin-kommandot från klienten för att administrera en MySQL Server-sida.

Om du har några frågor angående ovanstående exempel, fråga i kommentarfältet nedan.