MySQL is een relationeel databasebeheersysteem (RDBMS) dat wordt gebruikt als backend voor talloze web- en servertoepassingen. Oorspronkelijk uitgebracht in 1995, blijft het een populaire keuze voor ontwikkelaars als databaseserver.
Voordat u aan deze handleiding begint, moet u ervoor zorgen dat u de stappen hebt voltooid die zijn beschreven in onze Een computerinstantie instellen en beveiligen. Zorg er bovendien voor dat u bent ingelogd op uw systeem als de rootgebruiker.
MySQL installeren
Geef de volgende opdracht om ervoor te zorgen dat uw pakketrepository up-to-date is:
emerge --sync
Met de volgende opdracht worden alle pakketten en hun afhankelijkheden op het systeem bijgewerkt. Als u zich niet op uw gemak voelt bij het uitvoeren van deze opdracht, kunt u deze overslaan of emerge --update world
gebruiken :
emerge --update --deep world
Voer de volgende opdracht uit om MySQL te installeren:
emerge dev-db/mysql
Zodra dit proces is voltooid, moet u ook de databases installeren die MySQL gebruikt. Geef het volgende commando:
mysql_install_db
U bent nu klaar om de MySQL-server voor de eerste keer te starten:
/etc/init.d/mysql start
U moet mysql_secure_installation
. uitvoeren om een root-wachtwoord in te stellen en uw MySQL-instantie te beveiligen. Geef het volgende commando:
mysql_secure_installation
Als u wilt dat MySQL wordt uitgevoerd wanneer het systeem opstart, geeft u het volgende commando:
rc-update add mysql default
MySQL configureren
Standaard bindt MySQL aan localhost. Als u wilt dat MySQL op een openbaar IP-adres luistert, kunt u het bind-address
wijzigen waarde in /etc/mysql/my.cnf
om het IP-adres van uw Linode weer te geven. Het wordt niet aangeraden om onbeperkte toegang tot MySQL op een openbaar IP-adres toe te staan, en u kunt overwegen firewallregels te implementeren om alleen verkeer van specifieke IP-adressen toe te staan.
De bovenstaande suggesties zijn mogelijk niet geschikt voor alle omgevingen, dus zorg ervoor dat uw toepassing geen andere instellingen vereist. Raadpleeg de aanvullende bronnen in het gedeelte 'Meer informatie' van deze handleiding voor meer uitgebreide documentatie over het configureren van MySQL.
Elke keer dat u de instellingen wijzigt in /etc/mysql/my.cnf
, moet u de MySQL-server opnieuw opstarten. Geef het volgende commando:
/etc/init.d/mysql restart
MySQL gebruiken
De meeste interactie met MySQL gebeurt via de mysql
opdrachtregel hulpprogramma. Geef de volgende opdracht om te communiceren met MySQL:
mysql -u root -p
Voer desgevraagd het wachtwoord in dat u hebt gemaakt tijdens de mysql_secure_installation
Verwerken. Zodra u dit hebt gedaan, wordt u begroet met de MySQL-prompt:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.1.51-log Gentoo Linux mysql-5.1.51
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Als u uw MySQL-rootwachtwoord op een later tijdstip vergeet, kan het opnieuw worden ingesteld met de volgende reeks opdrachten:
/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables --skip-networking &
mysqladmin -u root
Nadat u bent ingelogd, voert u de volgende opdrachten in bij de MySQL-prompt:
USE mysql;
UPDATE user SET PASSWORD=PASSWORD("CHANGEME") WHERE User='root';
FLUSH PRIVILEGES;
exit
Om een lijst met beschikbare commando's te zien (niet SQL-syntaxis), probleem \h
bij de MySQL-prompt:
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.
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' IDENTIFIED BY 's8723hk2';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser';
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, 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.
MySQL afstemmen
MySQL Tuner is een handige tool die verbinding maakt met een actief exemplaar van MySQL en configuratieaanbevelingen geeft op basis van de werkbelasting. Idealiter zou de MySQL-instantie ten minste 24 uur moeten hebben gewerkt voordat de tuner werd uitgevoerd. Hoe langer de instantie actief is, hoe beter het advies van MySQL Tuner.
Voer de volgende opdracht uit om MySQL Tuner te installeren:
emerge dev-db/mysqltuner
Om MySQL Tuner uit te voeren, voert u eenvoudig het volgende in:
mysqltuner
Houd er rekening mee dat deze tool is ontworpen om configuratiesuggesties te geven en een uitstekend startpunt is. Het zou verstandig zijn om aanvullend onderzoek te doen naar het afstemmen van configuraties op basis van de applicatie(s) die MySQL gebruiken.
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