MySQL er et populært databasestyringssystem, der bruges til web- og serverapplikationer. Denne vejledning vil introducere, hvordan du installerer, konfigurerer og administrerer MySQL på en Linode, der kører CentOS 6.
Bemærk Denne guide er skrevet til en ikke-rootbruger. Kommandoer, der kræver forhøjede privilegier, er præfikset medsudo
. Hvis du ikke er bekendt medsudo
kommando, kan du tjekke vores bruger- og gruppervejledning.
Før du begynder
-
Sørg for, at du har fulgt guiderne Kom godt i gang og Sikring af din server, og at Linodes værtsnavn er indstillet.
Sådan tjekker du dit værtsnavn:
hostname hostname -f
Den første kommando skal vise dit korte værtsnavn, og den anden skal vise dit fuldt kvalificerede domænenavn (FQDN).
-
Opdater dit system:
sudo yum update
Installer og start MySQL
-
Installer MySQL og fortæl den, hvilke runlevels den skal starte på:
sudo yum install mysql-server sudo /sbin/chkconfig --levels 235 mysqld on
-
Så for at starte MySQL-serveren:
sudo service mysqld start
MySQL vil binde til localhost (127.0.0.1) som standard. Se venligst vores MySQL fjernadgangsvejledning for at få oplysninger om tilslutning til dine databaser ved hjælp af SSH.
Bemærk Det anbefales ikke at tillade ubegrænset adgang til MySQL på en offentlig IP, men du kan ændre adressen, den lytter til ved at ændrebind-address
parameter i/etc/my.cnf
. Hvis du beslutter dig for at binde MySQL til din offentlige IP, bør du implementere firewall-regler, der kun tillader forbindelser fra specifikke IP-adresser.
Harden MySQL Server
-
Kør
mysql_secure_installation
script til at løse flere sikkerhedsproblemer i en standard MySQL-installation.sudo mysql_secure_installation
Du vil blive givet valget mellem at ændre MySQL root-adgangskoden, fjerne anonyme brugerkonti, deaktivere root-login uden for localhost og fjerne testdatabaser. Det anbefales, at du svarer ja til disse muligheder. Du kan læse mere om scriptet i MySQL Reference Manual.
Brug af MySQL
Standardværktøjet til at interagere med MySQL er mysql
klient, som installeres med mysql-server
pakke. MySQL-klienten bruges gennem en terminal.
Root-login
-
Sådan logger du på MySQL som root-bruger:
mysql -u root -p
-
Når du bliver bedt om det, skal du indtaste den root-adgangskode, du tildelte, da mysql_secure_installation-scriptet blev kørt.
Du vil derefter blive præsenteret for MySQL-skærmen:
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>
-
Indtast
\h
for at generere en liste over kommandoer til MySQL-prompten . Du vil derefter 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>
Opret en ny MySQL-bruger og -database
-
I eksemplet nedenfor,
testdb
er navnet på databasen,testuser
er brugeren ogpassword
er brugerens adgangskode.create database testdb; create user 'testuser'@'localhost' identified by 'password'; grant all on testdb.* to 'testuser' identified by 'password';
Du kan forkorte denne proces ved at oprette brugeren mens tildeling af databasetilladelser:
create database testdb; grant all on testdb.* to 'testuser' identified by 'password';
-
Afslut derefter MySQL.
exit
Opret en prøvetabel
-
Log ind igen som
testuser
.mysql -u testuser -p
-
Opret en eksempeltabel kaldet
customers
. Dette opretter en tabel med et kunde-id-felt af typenINT
for heltal (automatisk inkrementeret for nye poster, brugt som den primære nøgle), samt to felter til lagring af kundens navn.use testdb; create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
-
Afslut derefter MySQL.
exit
Nulstil MySQL-rodadgangskoden
Hvis du glemmer din root MySQL-adgangskode, kan den tømmes og derefter nulstilles.
-
Stop den aktuelle MySQL-serverinstans, og genstart den derefter med en mulighed for ikke at bede om en adgangskode.
sudo /etc/init.d/mysqld stop sudo mysqld_safe --skip-grant-tables &
-
Genopret forbindelse til MySQL-serveren med MySQL-rodkontoen.
mysql -u root
-
Brug følgende kommandoer til at nulstille roots adgangskode. Erstat
password
med en stærk adgangskode.use mysql; update user SET PASSWORD=PASSWORD("password") WHERE USER='root'; flush privileges; exit
-
Genstart derefter MySQL.
sudo service mysqld restart
Du vil nu være i stand til at logge ind igen ved hjælp af mysql -u root -p
.
Indstil MySQL
MySQL Tuner er et Perl-script, der forbinder til en kørende forekomst af MySQL og giver konfigurationsanbefalinger baseret på arbejdsbelastning. Ideelt set skulle MySQL-instansen have været i drift i mindst 24 timer, før tuneren blev kørt. Jo længere instansen har kørt, jo bedre råd vil MySQL Tuner give.
-
Download MySQL Tuner til din hjemmemappe.
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl
-
For at køre det:
perl ./mysqltuner.pl
Outputtet vil vise to interesseområder:Generelle anbefalinger og Variabler, der skal justeres.
MySQL Tuner er et glimrende udgangspunkt for at optimere en MySQL-server, men det ville være klogt at udføre yderligere forskning for konfigurationer, der er skræddersyet til den eller de applikationer, der bruger MySQL på din Linode.
Flere oplysninger
Du ønsker måske at konsultere følgende ressourcer for yderligere oplysninger om dette emne. Selvom disse leveres i håb om, at de vil være nyttige, bemærk venligst, at vi ikke kan stå inde for nøjagtigheden eller aktualiteten af eksternt hostede materialer.
- MySQL 5.1 Referencemanual
- PHP MySQL-manual
- Perl DBI-eksempler for DBD::mysql
- MySQLdb Brugervejledning