I samtliga exempel nedan kan man se -u root -p som del av kommandona. root är administratörskontot för vår databas, och förutom namnet har det inget alls att göra med Unix-root. -p ser till att det promptas efter lösenord. Om du inte vet om det lösenordet är det mycket möjligt att du heller inte borde veta det, men du kan ju alltid prova att fråga någon snällt så kanske denne släpper ifrån sig lösenordet till dig. Not till administratörerna: var restriktiva med att ge ut det här lösenordet!
Om du är ute efter en egen databas är det naturligtvis mycket bättre att helt enkelt be administratörerna att bygga den åt dig. Du kan t.o.m. hjälpa dem genom att berätta om den här sidan, så blir det hela enklare för dem också!
$ mysqladmin -u root -p create {databasnamn}
Databasens namn får enbart innehålla bokstäver, siffror och '_'.
$ mysql -u root -p mysql mysql> CREATE DATABASE {databasnamn};
Att skapa nya användare och koppla dessa till sin databas görs i ett huj. För att göra det krävs också att man är inloggad på sql.stacken.kth.se och har gjort module add mysql.
$ mysql -u root -p mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX ON {databasnamn}.* TO {användare} IDENTIFIED BY '{lösenord}';
{användare} kan skrivas i två former, antingen bara ett användarnamn, eller some {user}@{host}. {host} är "localhost" om det inte anges. {host} kan innehålla tecknet "%" some wildcard, t.ex. "%.e.kth.se" eller "130.237.234.%".
Om man inte tycker att användare ska kunna skapa index så kan man låta bli privilegien INDEX.
Rekommendationer:
Typexempel (dvs, så här brukar jag göra):
$ mysql -u root -p [...] mysql> CREATE DATABASE test_db; mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX ON test_db.* TO "test-db-user" IDENTIFIED BY 'räksmörgås'; mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX ON test_db.* TO "test-db-user"@"%.stacken.kth.se" IDENTIFIED BY 'räksmörgås'; mysql> GRANT SELECT ON test_db.* TO "test-db-user-v" IDENTIFIED BY 'kalleanka'; mysql> GRANT SELECT ON test_db.* TO "test-db-user-v"@"%.stacken.kth.se" IDENTIFIED BY 'kalleanka';
Att koppla redan befintliga användare till en ny databas funkar exakt som att skapa nya användare, med den enda skillnaden att man inte har med IDENTIFIED BY '{lösenord}'.
Backup av samtliga databaser tas varje natt. Det görs genom att root kör följande kommando på shake:
/pkg/mysql/3.23.28/bin/mysqldump --opt --all-databases -ubup -ppub \ > /var/mysql/3.23.28/.backup/bup
Resten tas om hand av vårt vanliga backupsystem. bup roteras också, så man hittar den förra backupen som bup.1, den innan som bup.2 osv fram till bup.9.
Om något går åt pipan med databassystemet återskapar man det senaste genom att utföra följande:
/pkg/mysql/3.23.28/bin/mysql -u root -p < /var/mysql/3.23.28/.backup/bup
Notera att det bygger om allt! Om det bara är en individuell databas man vill återskapa så kan man plocka ut rätt bitar ur bup till en annan fil och använda den filen som input, eller be någon om hjälp.
levitte