MySQL är ett populärt databashanteringssystem som används för webb- och serverapplikationer. Den här guiden kommer att introducera hur du installerar, konfigurerar och hanterar MySQL på en Linode som kör Ubuntu 12.04 LTS (Precise Pangolin).
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.
Förutsättningar
-
Om du inte redan har gjort det, skapa ett Linode-konto och Compute Instance. Se våra guider Komma igång med Linode och Skapa en beräkningsinstans.
-
Följ vår guide för att ställa in och säkra en beräkningsinstans för att uppdatera ditt system och konfigurera ditt värdnamn. Du kanske också vill ställa in tidszonen, skapa ett begränsat användarkonto och förstärka SSH-åtkomsten.
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) om du har ett tilldelat.
Installera MySQL
sudo apt-get install 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 en SSH-tunnel.
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 skriptet mysql_secure_installation 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-rotlösenordet, ta bort anonyma användarkonton, inaktivera rotdatabasinloggning 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.
Distribuera MySQL
Standardverktyget för att interagera med MySQL är mysql
klient, som installeras med mysql-server
paket.
Root-inloggning
-
För att logga in på MySQL som root-användare:
mysql -u root -p
-
När du uppmanas anger du root-lösenordet du tilldelade när
mysql_secure_installation
skriptet kördes.Du kommer då att presenteras med MySQL-skärmprompten:
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>
-
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 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 service mysql stop
-
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
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. MySQL Tuner-rekommendationer kommer att vara mer exakta ju längre instansen har körts.
-
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 ytterligare forskning rekommenderas 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.1 Referensmanual
- Handbok för PHP MySQL
- Perl DBI-exempel för DBD::mysql
- MySQLdb användarhandbok