MySQL is een populair databasebeheersysteem dat wordt gebruikt voor web- en servertoepassingen. In deze gids wordt uitgelegd hoe u MySQL installeert, configureert en beheert op een Linode met Ubuntu 12.04 LTS (Precise Pangolin).
Opmerking Deze handleiding is geschreven voor een niet-rootgebruiker. Opdrachten die verhoogde bevoegdheden vereisen, worden voorafgegaan doorsudo
. Als je niet bekend bent met desudo
commando, kunt u onze handleiding voor gebruikers en groepen raadplegen.
Vereisten
-
Als je dit nog niet hebt gedaan, maak dan een Linode-account en Compute Instance aan. Zie onze handleidingen Aan de slag met Linode en Een rekeninstantie maken.
-
Volg onze handleiding voor het instellen en beveiligen van een rekeninstantie om uw systeem bij te werken en uw hostnaam te configureren. Mogelijk wilt u ook de tijdzone instellen, een beperkt gebruikersaccount maken en SSH-toegang versterken.
Om te controleren of uw hostnaam wordt uitgevoerd:
hostname hostname -f
De eerste opdracht moet uw korte hostnaam tonen en de tweede uw volledig gekwalificeerde domeinnaam (FQDN) als u er een heeft toegewezen.
MySQL installeren
sudo apt-get install mysql-server
Tijdens het installatieproces wordt u gevraagd een wachtwoord in te stellen voor de MySQL-rootgebruiker, zoals hieronder weergegeven. Kies een sterk wachtwoord en bewaar het op een veilige plaats voor toekomstig gebruik.
MySQL zal standaard binden aan localhost (127.0.0.1). Raadpleeg onze MySQL-handleiding voor externe toegang voor informatie over verbinding maken met uw databases via een SSH-tunnel.
Opmerking Onbeperkte toegang tot MySQL toestaan op een openbaar IP-adres dat niet wordt geadviseerd, maar u kunt het adres waarop het luistert wijzigen door hetbind-address
aan te passen parameter in/etc/my.cnf
. Als u besluit MySQL aan uw openbare IP-adres te binden, moet u firewallregels implementeren die alleen verbindingen van specifieke IP-adressen toestaan.
MySQL-server verharden
Voer het mysql_secure_installation-script uit om verschillende beveiligingsproblemen in een standaard MySQL-installatie aan te pakken.
sudo mysql_secure_installation
U krijgt de keuze om het MySQL-rootwachtwoord te wijzigen, anonieme gebruikersaccounts te verwijderen, rootdatabase-aanmelding buiten localhost uit te schakelen en testdatabases te verwijderen. Het wordt aanbevolen om ja te antwoorden op deze opties. U kunt meer lezen over het script in de MySQL Reference Manual.
MySQL implementeren
De standaard tool voor interactie met MySQL is de mysql
client, die wordt geïnstalleerd met de mysql-server
pakket.
Root Login
-
Aanmelden bij MySQL als rootgebruiker:
mysql -u root -p
-
Voer desgevraagd het root-wachtwoord in dat u hebt toegewezen bij de
mysql_secure_installation
script is uitgevoerd.U krijgt dan de MySQL-monitorprompt te zien:
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.0.45 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
-
Om een lijst met opdrachten voor de MySQL-prompt te genereren, typt u
\h
. Je ziet dan: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>
Maak een nieuwe MySQL-gebruiker en database
-
In het onderstaande voorbeeld
testdb
is de naam van de database,testuser
is de gebruiker, enpassword
is het wachtwoord van de gebruiker.create database testdb; create user 'testuser'@localhost identified by 'password'; grant all on testdb.* to 'testuser';
U kunt dit proces verkorten door de gebruiker terwijl . aan te maken databaserechten toewijzen:
create database testdb; grant all on testdb.* to 'testuser' identified by 'password';
-
Sluit MySQL af.
exit
Maak een voorbeeldtabel
-
Log opnieuw in als
testuser
.mysql -u testuser -p
-
Maak een voorbeeldtabel met de naam
customers
. Dit creëert een tabel met een klant-ID-veld van het typeINT
voor integer (automatisch verhoogd voor nieuwe records, gebruikt als de primaire sleutel), evenals twee velden voor het opslaan van de naam van de klant.use testdb; create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
-
Sluit vervolgens MySQL af.
exit
Reset het MySQL-rootwachtwoord
Als u uw root MySQL-wachtwoord bent vergeten, kan het opnieuw worden ingesteld.
-
Stop de huidige MySQL-serverinstantie.
sudo service mysql stop
-
Gebruik dpkg om het configuratieproces dat MySQL bij de eerste installatie doorloopt opnieuw uit te voeren. U wordt opnieuw gevraagd om een root-wachtwoord in te stellen.
sudo dpkg-reconfigure mysql-server-5.5
U kunt nu opnieuw inloggen met mysql -u root -p
.
Tune MySQL
MySQL Tuner is een Perl-script dat 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. De aanbevelingen van MySQL Tuner zullen nauwkeuriger zijn naarmate de instantie langer actief is.
-
Installeer MySQL Tuner vanuit de repositories van Ubuntu.
sudo apt-get install mysqltuner
-
Om het uit te voeren:
mysqltuner
U wordt gevraagd om de gebruikersnaam en het wachtwoord van de MySQL-root. De output zal twee interessegebieden tonen:algemene aanbevelingen en variabelen om aan te passen.
MySQL Tuner is een uitstekend startpunt om een MySQL-server te optimaliseren, maar aanvullend onderzoek wordt aanbevolen voor configuraties die zijn afgestemd op de toepassing(en) die MySQL op uw Linode 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