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 Arch Linux. Als u MySQL wilt implementeren als onderdeel van een applicatie-stack, kunt u onzeLEMP- en LAMP-handleidingen bekijken.
Systeemconfiguratie
Zorg ervoor dat uw /etc/hosts
bestand heeft de juiste vermeldingen, vergelijkbaar met de onderstaande. Vervang "12.34.56.78" door het openbare adres van uw Linode, "servernaam" door uw korte hostnaam en "mijndomein.com" door de domeinnaam van uw systeem.
- Bestand:/ etc/hosts
127.0.0.1 localhost.localdomain localhost 12.34.56.78 servername.mydomain.com servername
Stel de hostnaam van uw systeem in door de HOSTNAME=
waarde in de /etc/rc.conf
bestand.
MySQL installeren
Geef de volgende opdrachten om uw systeem bij te werken en MySQL te installeren:
pacman -Syu
pacman -S mysql
U wilt de mysqld
. toevoegen daemon naar de DAEMONS-()
array aan het einde van de /etc/rc.conf
bestand om ervoor te zorgen dat het mysql-proces begint met de volgende herstartcyclus.
Het MySQL-serverpakket wordt op uw server geïnstalleerd, samen met afhankelijkheden en clientbibliotheken. Start MySQL door het volgende commando uit te voeren:
/etc/rc.d/mysqld start
MySQL configureren
Na het installeren van MySQL is het raadzaam om mysql_secure_installation
uit te voeren , een programma dat helpt bij het beveiligen van MySQL. 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
Standaard luistert MySQL alleen naar interne verbindingen. Als u van plan bent om via TCP/IP verbinding te maken met uw database, moet u deze verwijderen of becommentariëren (bijv. de regel voorafgaan met een #
) voeg het bind-address
toe regel in het bestand my.cnf. als volgt:
- Bestand:/ etc/mysql/my.cnf
1 2
# skip-networking bind-address - 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.
Raadpleeg de sectie "Meer informatie" aan het einde van deze tutorial voor aanvullende bronnen die betrekking hebben op de configuratie van MySQL. Geef het volgende commando om de daemon opnieuw te starten:
/etc/rc.d/mysqld restart
Raadpleeg onze beveiligde MySQL-handleiding voor externe toegang voor informatie over verbinding maken met uw databases met lokale clients.
Gebruik MySQL
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 2
Server version: 5.5.9-log Source distribution
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
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);
exit
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 voor een klant waarschijnlijk veel meer informatie dan dit opslaan, maar het is toch een goed voorbeeld van een veelvoorkomend geval.
Het root-wachtwoord van MySQL opnieuw instellen
Als u uw root MySQL-wachtwoord bent vergeten, kunt u dit resetten door de volgende opdrachten uit te voeren:
/etc/rc.d/mysqld stop
mysqld_safe --skip-grant-tables &
mysql -u root
Het volgende deel van het opnieuw instellen van het wachtwoord wordt nu gedaan in het MySQL-clientprogramma:
USE mysql;
UPDATE user SET PASSWORD-PASSWORD("CHANGEME") WHERE User-'root';
FLUSH PRIVILEGES;
exit
Als laatste, herstart MySQL door het volgende commando te geven:
/etc/rc.d/mysqld restart
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 opdrachten uit om MySQL Tuner te installeren:
pacman -S wget
wget http://mysqltuner.pl/mysqltuner.pl
chmod 755 mysqltuner.pl
Om MySQL Tuner uit te voeren, voert u eenvoudig het volgende in:
./mysqltuner.pl
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 voor 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