MySQL is een populair databasebeheersysteem dat wordt gebruikt als leverancier van gegevensopslag voor duizenden web- en servertoepassingen. Deze gids helpt beginners om aan de slag te gaan met MySQL op een Ubuntu 10.04 LTS (Lucid) 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.
Basissysteemconfiguratie
Zorg ervoor dat uw /etc/hosts
bestand bevat verstandige waarden. In het onderstaande voorbeeldbestand vervangt u "12.34.56.78" door het IP-adres van uw Linode en "servernaam.voorbeeld.com" door de volledig gekwalificeerde domeinnaam (FQDN) van uw Linode. Het is raadzaam om iets unieks en gedenkwaardigs te gebruiken voor "servernaam" in dit bestand.
- Bestand:/ etc/hosts
1 2
127.0.0.1 localhost.localdomain localhost 12.34.56.78 servername.example.com servername
Zorg er vervolgens voor dat de hostnaam van uw Linode is ingesteld op de korte waarde die u hebt opgegeven in /etc/hosts
:
echo "servername" > /etc/hostname
hostname -F /etc/hostname
Om er zeker van te zijn dat universe
repositories zijn ingeschakeld, wijzig uw /etc/apt/sources.list
bestand om het onderstaande voorbeeldbestand te spiegelen.
- Bestand:/ etc/apt/sources.list
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
## main & restricted repositories deb http://us.archive.ubuntu.com/ubuntu/ lucid main restricted deb-src http://us.archive.ubuntu.com/ubuntu/ lucid main restricted deb http://security.ubuntu.com/ubuntu lucid-security main restricted deb-src http://security.ubuntu.com/ubuntu lucid-security main restricted ## universe repositories deb http://us.archive.ubuntu.com/ubuntu/ lucid universe deb-src http://us.archive.ubuntu.com/ubuntu/ lucid universe deb http://us.archive.ubuntu.com/ubuntu/ lucid-updates universe deb-src http://us.archive.ubuntu.com/ubuntu/ lucid-updates universe deb http://security.ubuntu.com/ubuntu lucid-security universe deb-src http://security.ubuntu.com/ubuntu lucid-security universe
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. Na het installeren van MySQL is het raadzaam om mysql_secure_installation
uit te voeren om MySQL te helpen beveiligen. Tijdens het uitvoeren van mysql_secure_installation
, krijgt u de mogelijkheid om het MySQL-rootwachtwoord te wijzigen, anonieme gebruikersaccounts te verwijderen, rootaanmeldingen buiten localhost uit te schakelen en testdatabases te verwijderen. Het wordt aanbevolen om ja te antwoorden op deze opties. Als u wordt gevraagd om de privilegetabellen opnieuw te laden, selecteert u ja. 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 bewerken. Uw bestand zou er als volgt uit moeten zien:
- 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 tutorial voor aanvullende bronnen over dit onderwerp.
MySQL zal standaard binden aan localhost (127.0.0.1). Raadpleeg onze beveiligde MySQL-handleiding voor externe toegang voor informatie over verbinding maken met uw databases met lokale clients.
Het is niet aan te raden om onbeperkte toegang tot MySQL op een openbaar IP-adres toe te staan, 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 van 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 34
Server version: 5.1.41-3ubuntu12 (Ubuntu)
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Als je je root-wachtwoord bent vergeten, gebruik dan de pakketherconfiguratietool om dat wachtwoord te wijzigen:
dpkg-reconfigure mysql-server-5.1
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 the current input statement.
connect (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement 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:
CREATE DATABASE testdb;
CREATE USER 'testuser'@localhost IDENTIFIED BY 'changeme';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@localhost;
exit
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
USE testdb;
CREATE TABLE customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
Dit creëert een tabel met een klant-ID-veld van het type INT voor integer (automatisch verhoogd voor nieuwe records en gebruikt als de primaire sleutel), evenals twee velden voor het opslaan van de naam van de klant.
Standaard is de toegang tot databases beperkt tot verbindingen van localhost. Om uw databases veilig vanaf een externe locatie te beheren, volgt u onze handleiding voor het veilig beheren van mysql met een SSH-tunnel. Het is niet een goede gewoonte om MySQL op uw openbare IP-adres uit te voeren, tenzij u een zeer goede reden hebt om dit te doen.
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