MySQL är ett populärt databashanteringssystem som används för webb- och serverapplikationer. Den här guiden kommer att introducera hur man installerar, konfigurerar och hanterar MySQL på en Linode som kör Debian 8 (Jessie).
Stora MySQL-databaser kan kräva en avsevärd mängd minne. Av denna anledning rekommenderar vi att du använder en Linode med högt minne för sådana inställningar.
Obs Den här guiden är skriven för en icke-rootanvändare. Kommandon som kräver förhöjda privilegier har prefixetsudo
. Om du inte är bekant medsudo
kommandot kan du läsa vår guide för användare och grupper.
Innan du börjar
-
Se till att du har följt guiderna Komma igång och Säkra din server, och att Linodes värdnamn är inställt.
Så här kontrollerar du ditt värdnamn:
hostname hostname -f
Det första kommandot ska visa ditt korta värdnamn och det andra ska visa ditt fullständiga domännamn (FQDN).
-
Uppdatera ditt system:
sudo apt-get update sudo apt-get upgrade
Installera MySQL
sudo apt-get install mysql-server
Obs Mysql-server-paketet kanske inte är tillgängligt i de senaste versionerna av Debian i ett sådant fall försök sudo apt-get install default-mysql-server
.
Under installationsprocessen kommer du att bli ombedd att ställa in ett lösenord för MySQL root-användaren enligt nedan. Välj ett starkt lösenord och förvara det på en säker plats för framtida referens.
MySQL binder till localhost (127.0.0.1) som standard. Se vår MySQL fjärråtkomstguide för information om hur du ansluter till dina databaser med SSH.
Obs Att tillåta obegränsad åtkomst till MySQL på en offentlig IP rekommenderas inte, men du kan ändra adressen den lyssnar på genom att ändrabind-address
parameter i/etc/my.cnf
. Om du bestämmer dig för att binda MySQL till din publika IP bör du implementera brandväggsregler som endast tillåter anslutningar från specifika IP-adresser.
Harden MySQL Server
Kör mysql_secure_installation
skript för att lösa flera säkerhetsproblem i en MySQL-standardinstallation.
sudo mysql_secure_installation
Du kommer att få välja att ändra MySQL root-lösenordet, ta bort anonyma användarkonton, inaktivera root-inloggningar utanför localhost och ta bort testdatabaser. Det rekommenderas att du svarar ja på dessa alternativ. Du kan läsa mer om skriptet i MySQL Reference Manual.
Använda MySQL
Standardverktyget för att interagera med MySQL är mysql
klient som installeras med mysql-server
paket. MySQL-klienten används via en terminal.
Root-inloggning
-
För att logga in på MySQL som root-användare:
mysql -u root -p
-
När du uppmanas, ange root-lösenordet.
Du kommer sedan att presenteras med en välkomstrubrik och MySQL-prompten som visas nedan:
mysql>
-
För att generera en lista med kommandon för MySQL-prompten anger du
\h
. Du kommer då att se: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>
Skapa en ny MySQL-användare och databas
-
I exemplet nedan,
testdb
är namnet på databasen,testuser
är användaren ochpassword
är användarens lösenord.create database testdb; create user 'testuser'@'localhost' identified by 'password'; grant all on testdb.* to 'testuser';
Du kan förkorta denna process genom att skapa användaren medan tilldela databasbehörigheter:
create database testdb; grant all on testdb.* to 'testuser' identified by 'password';
-
Avsluta sedan MySQL.
exit
Skapa en exempeltabell
-
Logga in igen som
testuser
.mysql -u testuser -p
-
Skapa en exempeltabell som heter
customers
. Detta skapar en tabell med ett kund-ID-fält av typenINT
för heltal (automatiskt inkrementerat för nya poster, används som primärnyckel), samt två fält för att lagra kundens namn.use testdb; create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
-
Avsluta sedan MySQL.
exit
Återställ MySQL-rootlösenordet
Om du glömmer ditt root MySQL-lösenord kan det återställas.
-
Stoppa den aktuella MySQL-serverinstansen.
sudo systemctl stop mysql.service
-
Använd dpkg för att köra om konfigurationsprocessen MySQL går igenom vid första installationen. Du kommer igen att bli ombedd att ange ett root-lösenord.
sudo dpkg-reconfigure mysql-server-5.5
dpkg
kommer att starta om MySQL automatiskt och du kommer nu att kunna logga in igen med mysql -u root -p
.
Justera MySQL
MySQL Tuner är ett Perl-skript som ansluter till en körande instans av MySQL och ger konfigurationsrekommendationer baserat på arbetsbelastning. Helst skulle MySQL-instansen ha varit i drift i minst 24 timmar innan tunern kördes. Ju längre instansen har körts, desto bättre råd kommer MySQL Tuner att ge.
-
Installera MySQL Tuner från Ubuntus arkiv.
sudo apt-get install mysqltuner
-
Så här kör du:
mysqltuner
Du kommer att bli ombedd att ange MySQL root-användarens namn och lösenord. Resultatet kommer att visa två intresseområden:Allmänna rekommendationer och Variabler att justera.
MySQL Tuner är en utmärkt utgångspunkt för att optimera en MySQL-server, men det skulle vara klokt att utföra ytterligare forskning för konfigurationer som är skräddarsydda för applikationen/applikationerna som använder MySQL på din Linode.
Mer information
Du kanske vill konsultera följande resurser för ytterligare information om detta ämne. Även om dessa tillhandahålls i hopp om att de kommer att vara användbara, vänligen observera att vi inte kan garantera noggrannheten eller aktualiteten hos externt värdmaterial.
- MySQL 5.5 Referensmanual
- Handbok för PHP MySQL
- Perl DBI-exempel för DBD::mysql
- MySQLdb användarhandbok
- MySQL Tuner Handledning