MySQL is een populair databasebeheersysteem dat wordt gebruikt als leverancier van gegevensopslag voor duizenden web- en servertoepassingen. Deze gids helpt beginners aan de slag te gaan met MySQL op een Ubuntu Hardy Linode. Voor deze tutorial gaan we ervan uit dat je de stappen hebt gevolgd die zijn beschreven in onze Een computerinstantie instellen en beveiligen, dat je systeem up-to-date is en dat je via SSH als root op je Linode bent ingelogd. Als u deze stappen uitvoert als een standaardgebruiker met sudo-rechten, vergeet dan niet om "sudo" toe te voegen aan de onderstaande opdrachten.
MySQL installeren
Zorg ervoor dat uw pakketrepository's en geïnstalleerde programma's up-to-date zijn door de volgende opdrachten uit te voeren:
apt-get update
apt-get upgrade --show-upgraded
Begin met het geven van de volgende opdracht in uw terminal:
apt-get install mysql-server
U wordt gevraagd een wachtwoord in te stellen voor de MySQL-rootgebruiker. Kies een sterk wachtwoord en bewaar het op een veilige plaats voor toekomstig gebruik.
Het MySQL-serverpakket wordt op uw server geïnstalleerd, samen met afhankelijkheden en clientbibliotheken. Zorg er vervolgens voor dat uw /etc/hosts
bestand heeft de juiste vermeldingen, vergelijkbaar met de onderstaande:
- Bestand:/ etc/hosts
127.0.0.1 localhost.localdomain localhost 12.34.56.78 servername.mydomain.com servername
Zorg ervoor dat u in het bovenstaande voorbeeld het openbare IP-adres van uw Linode vervangt door "12.34.56.78".
Na het installeren van MySQL is het raadzaam om mysql_secure_installation
uit te voeren , een programma dat helpt bij het beveiligen van MySQL. mysql_secure_installation
geeft je de mogelijkheid om root-aanmeldingen van buiten localhost uit te schakelen, anonieme gebruikersaccounts te verwijderen en de mogelijkheid om de testdatabase te verwijderen. Bovendien kunt u uw root-wachtwoord instellen. Voer de volgende opdracht uit om het programma uit te voeren:
mysql_secure_installation
Na het uitvoeren van mysql_secure_installation
, MySQL is veilig en klaar om te worden geconfigureerd.
MySQL configureren
Standaard maakt MySQL enkele aannames over uw serveromgeving met betrekking tot geheugen. Om MySQL conservatiever te configureren, moet u enkele instellingen in het configuratiebestand wijzigen (/etc/mysql/my.cnf
) als volgt:
- Bestand:/ etc/mysql/my.cnf
1 2 3 4 5 6
key_buffer = 16M max_allowed_packet = 1M thread_stack = 64K table_cache = 4 sort_buffer = 64K net_buffer_length = 2K
Deze instellingen zijn alleen voorgestelde waarden voor een omgeving met weinig geheugen; aarzel niet om ze af te stemmen op de juiste waarden voor uw server. Raadpleeg het gedeelte 'Meer informatie' aan het einde van deze zelfstudie voor aanvullende bronnen voor dit onderwerp.
MySQL zal standaard binden aan localhost (127.0.0.1). Onbeperkte toegang tot MySQL toestaan op een openbaar IP-adres dat niet wordt geadviseerd, maar u kunt het adres waarop het luistert wijzigen door het bind-address
aan te passen parameter. Als u besluit MySQL aan uw openbare IP-adres te binden, moet u firewallregels implementeren die alleen verbindingen vanaf specifieke IP-adressen toestaan.
MySQL gebruiken
De standaard tool voor interactie met MySQL is de mysql
cliënt programma. Geef om te beginnen de volgende opdracht op uw prompt:
mysql -u root -p
U wordt gevraagd om het wachtwoord van de root MySQL-gebruiker in te voeren. Voer het wachtwoord in dat u hebt toegewezen toen u MySQL installeerde, en u krijgt het MySQL-beeldscherm te zien:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 33
Server version: 5.0.75-0ubuntu10 (Ubuntu)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
Als je je root-wachtwoord bent vergeten, gebruik dan de pakketherconfiguratietool om dat wachtwoord te wijzigen:
dpkg-reconfigure mysql-server-5.0
Om een lijst met opdrachten voor de MySQL-prompt te genereren, typt u \h
:
List of all MySQL commands:
Note that all text commands must be first on line and end with ';'
? (\?) Synonym for `help'.
clear (\c) Clear command.
connect (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter. NOTE: Takes the rest of the line as new delimiter.
edit (\e) Edit command with $EDITOR.
ego (\G) Send command to mysql server, display result vertically.
exit (\q) Exit mysql. Same as quit.
go (\g) Send command to mysql server.
help (\h) Display this help.
nopager (\n) Disable pager, print to stdout.
notee (\t) Don't write into outfile.
pager (\P) Set PAGER [to_pager]. Print the query results via PAGER.
print (\p) Print current command.
prompt (\R) Change your mysql prompt.
quit (\q) Quit mysql.
rehash (\#) Rebuild completion hash.
source (\.) Execute an SQL script file. Takes a file name as an argument.
status (\s) Get status information from the server.
system (\!) Execute a system shell command.
tee (\T) Set outfile [to_outfile]. Append everything into given outfile.
use (\u) Use another database. Takes database name as argument.
charset (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
warnings (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.
For server side help, type 'help contents'
mysql>
Laten we een database maken en er een gebruiker aan toewijzen. Geef de volgende opdrachten op de MySQL-prompt:
| |
Laten we nu weer inloggen op de MySQL-client als testuser
en maak een voorbeeldtabel met de naam 'klanten'. Geef de volgende opdrachten:
mysql -u testuser -p
| |
Dit creëert een tabel met een klant-ID-veld van het type INT voor integer (automatisch verhoogd voor nieuwe records, gebruikt als de primaire sleutel), evenals twee velden voor het opslaan van de naam van de klant. Natuurlijk wilt u waarschijnlijk veel meer informatie dan dit over een klant opslaan, maar het is niettemin een goed voorbeeld van een veelvoorkomend geval.
Meer informatie
U kunt de volgende bronnen raadplegen voor aanvullende informatie over dit onderwerp. Hoewel deze worden verstrekt in de hoop dat ze nuttig zullen zijn, houd er rekening mee dat we niet kunnen instaan voor de nauwkeurigheid of tijdigheid van extern gehost materiaal.
- MySQL 5.1-referentiehandleiding
- PHP MySQL-handleiding
- Perl DBI-voorbeelden voor DBD::mysql
- Gebruikershandleiding voor MySQLdb