Kirjoittaja: Jeffrey
Lähde: http://blog.zhangjianfeng.com/article/208
=== MySQL perustuu ====
mysql lataa: http://www.mysql.com/
General MySQL-palvelimen mysqld
mysqld-opt optimointi MySQL-palvelimen, joka tarjoaa joitakin toimintoja, joita voidaan hyödyntää paremmin toimintojen
mysqld mysqld-max ja sama, mutta voi tukea päivittää, kokeellisempi ominaisuuksia (enemmän haihtuvia)
+ + Asentaa MySQL
Katso INSTALL-lähdetiedosto tulee
. / Configure-prefix = / app/mysql-5.0.51a-with-charset = utf8-with-extra-merkistöt = GBK, GB2312, utf8
+ + Start / sammuta mysql
$ Polku / mysqld_safe-käyttäjä = mysql &
$ / Mysqladmin-p sulkeminen
+ + Muuta root salasana
mysqladmin-u root-p password 'uusi salasana'
+ + Näytä palvelimen tila
$ Polku / mysqladmin versio-p
+ + Liitä kauko-mysql-palvelin
$ Polku / mysql-u username-p # kytkeä koneen
$ Polku / mysql-h etäisäntään IP-u username-p # kytkeytyä jotta etäinen MySQL-palvelimeen
+ + Luo / poistaa tietokantojen tai taulukoiden
mysqladmin-u root-p luoda xxx
mysql> luoda tietokanta tietokannan nimi;
luoda TAULUKKO erät (
id INT (5) NOT NULL AUTO_INCREMENT perusavaimesta,
symboli CHAR (4) NOT NULL,
Käyttäjätunnus CHAR (8),
INDEX sym (symboli), INDEKSI ... ..
UNIQUE (käyttäjätunnus)
) Type = InnoDB;
mysql> pudota tietokanta [jos on olemassa] tietokannan nimi
mysql> luoda taulukko taulukon nimi;
mysql> pudota taulukko taulukon nimi;
+ + Näytä tietokantaan ja tarkastella tietokannan taulukot
mysql> Näytä tietokannat;
mysql> Näytä taulukot;
mysql> desc taulukon nimi, # Katso erityinen taulukko rakenne tiedot
SHOW CREATE DATABASE db_name # luo db_name tiliotteet osoittavat
SHOW CREATE TABLE tbl_name # näyttää luoda taulukon tbl_name selvitys
+ + Luo käyttäjä
mysql> myöntää valita, lisätä, päivittää, poistaa, muuttaa siitä mydb .* on test2 @ localhost tunnistaa "abc";
mysql> myöntää kaikille käyttöoikeudet *.* ja testi1 @ "%" tunnistaa "abc";
mysql> huuhtelu erioikeuksia;
+ + Käyttäjien hallinta
mysql> päivitys käyttäjä asettaa salasana = salasana ('11111 '), jossa käyttäjä = "testi1" # muuttaa testi1 salasana on 111111
Poista käyttäjä johon käyttäjä = "testuser" ja Host = "localhost"; # poista käyttäjätilejä
SHOW APURAHAT user1; # näyttää luoda user1 käyttäjien myöntää selvitys
+ + Mysql-tietokannan varmuuskopiointiin ja palautukseen
mysqldump-uuser-ppassword-B DB_name [edestään Taulukko1-taulukoiden table2]> exportfile.sql
mysql-uroot-p xxx <aaa.sql # tuonti taulukko
mysqldump-u username-p tietokanta kellot> viety tiedosto nimellä # # vienti erillinen taulukko
# Vie tietokannan rakenne
mysqldump-u wcnc-p-d-add-drop-table smgp_apps_wcnc> wcnc_db.sql
-D ei ole tietoa-add-drop-table ennen jokaista luoda selvitys, lisätä pudota taulukko
+ + Unohtuiko salasana mysql mysql palvelun ensimmäinen pysäkki kaikki prosessit
mysqld_safe-hyppy-avustus-pöydät ja mysql
mysql> käyttää mysql;
mysql> päivitys käyttäjä asettaa salasana = salasana ('111111), jossa käyttäjä = "root";
mysql> huuhtelu erioikeuksia;
Käynnistä mysql uuden salasanan, voit
+ + Tällä hetkellä käytetty tietokanta
Valitse tietokanta ();
Päivittäinen käyttö ja huolto ==== === Database
+ + Luo taulukko
luoda taulukko table_name
(Column_name tietotyyppi (henkilöllisyys | null | ei null), f_time TIMESTAMP (8),
...) MOOTTORIN = MyISAM AUTO_INCREMENT = 3811 oletusmerkistöä = utf8;
Asiat: CREATE TABLE vieras (nimi varchar (10), sukupuoli varchar (2), ikä int (3), ura varchar (10));
# Desc vieras voi tarkastella taulukon rakenne tiedot
# TIMESTAMP (8) VVVVKKPP jos (2/4/6/8/10/12/14), joka vastaa eri aikamuoto
SHOW CREATE TABLE tbl_name # näyttää luoda taulukon tbl_name selvitys
+ + Luo indeksi voidaan rakentaa, kun pöytä liittyä indeksi indexname (sarakkeet) luoda indeksi,
Voi myös syntyä käsin komennolla luodaan indeksi index_name on table_name (col_name [(pituus)], ...)
CREATE INDEX määrä Guest (numero (10));
SHOW indeksi tbl_name [FROM db_name] # näyttää indeksin
mysql> korjaus TAULUKKO päivä PIKAHAKU; # hakemisto toteutukseen liittyvät muuttujat palautetaan automaattisesti indeksin muutos
+ + Kyselyt ja yhteiset toiminnot
mysql> select t1.name, t2.salary alkaen työntekijän t1, info t2 jossa t1.name = t2.name;
mysql> select college, alue, siemenistä turnaus ORDER BY alue, siemenet;
mysql> select col_name alkaen tbl_name WHERE col_name> 0;
mysql> select DISTINCT ... ... [DISTINCT Hakusanalla Tietueiden kopioiden poistaminen]
mysql> select DATE_FORMAT (NYT (),'% m /% d /% Y ') kuin DATE DATE_FORMAT (NYT (),'% H:% M:% s') AS TIME;
mysql> select CURDATE (), CURTIME (), VUOSI (NYT ()), KUUKAUSI (NYT ()), DAYOFMONTH (NYT ()), HOUR (NYT ()), minuutit (NYT ());
mysql> select UNIX_TIMESTAMP (), UNIX_TIMESTAMP (20080808), FROM_UNIXTIME (UNIX_TIMESTAMP ()); mysql> Valitse salasana ("salainen"), MD5 ("salainen"); # salatun salasanan käyttö
mysql> select count (*) alkaen tab_name järjestys id [laskeva | ASC] # laskeva taaksepäin / ASC positiivinen sarja
* Toiminta laskea, AVG, SUM, MIN, MAX, PITUUS merkkiä, LTRIM poistaa alussa lyhyt, RTRIM ja loppuun tulevat ylimääräiset välilyönnit, TRIM (STR) poista ensin loppuun tulevat ylimääräiset välilyönnit, LETF / RIGHT (str, x) palauttaa merkkiä merkkijonon str vasemmalle / oikealle puolelle x merkkiä, alimerkkijonona (STR, x, y) palauttaa str, kunnes x-y aseman merkki mysql> select KAHDEN "Ross" IN ('Chandlerin, "Joey", "Ross" ) # KAHDEN tiukka tarkastus tapaus
* Vertailu toimijoiden välillä, se on nolla, IS NOT NULL, LIKE, REGEXP / RLIKE
mysql> select count (*), AVG (number_xx), Isäntä, käyttäjän mysql.user GROUP käyttäjän [laskeva | ASC] ottaa user = root, # ryhmä, ja tilastollinen taajuus / keskiarvo
+ + Control kunto toiminto
mysql> select jos (1 <10,2,3), IF (55> 100, "todellinen", "väärä");
# If ()-funktio on kolme parametria, ensimmäinen lauseke on arvosteltu, jos lauseke on tosi, palauttaa toisen väitteen, jos väärä, paluu kolmas väite.
mysql> select silloin, kun (2 +2) = 4 sitten "OK" kun (2 +2) <> 4 niin 'EI OK "päättyy asema;
+ + System Information-toiminto
mysql> Valitse tietokanta (), versio (), käyttäjä ();
mysql> select BENCHMARK (9999999, LOG (RAND () * PI ())) AS PERFORMANACE; # mysql tietokoneen suorituskykyä testityökaluvaatimukset
+ + Wp_posts taulukko post_content alalla teksti "vanha" sanalla "uusi"
Päivitetty wp_posts asettaa post_content = korvaa (post_content, "vanhojen", "uusi")
+ + Jos haluat muuttaa taulukon rakennetta
muuttaa taulukon table_name alter_spec [, alter_spec ...]
Asiat: muuttaa taulukon dbname lisätä sarake käyttäjätunnus int (11) ei null ensisijainen avain auto_increment;
Näin ollen taulukon lisätä kentän dbname käyttäjätunnus, tyyppi int (11).
+ + Voit säätää sarakkeen järjestyksessä
muuttaa taulukon tablename CHANGE id id int (11) ensimmäinen;
+ + Muokkaa taulukon tiedot
Lisää [otetaan] table_name [(sarake (t))] arvot (lauseke (t))
Asiat: mysql> insert into mydatabase arvot ('php', 'mysql', 'asp "," sqlserver "," JSP "," Oracle ");
mysql> luoda taulukko käyttäjän valita isäntä, käyttäjän mysql.user jossa 1 = 0;
mysql> insert into käyttäjä (isäntä, käyttäjä) valitse isäntä, käyttäjän mysql.user;
+ + Muuta taulukon nimi komento: Nimeä taulukko alkuperäisen taulukon nimeä uuden taulukon nimi;
+ + Taulukon tietojen päivitys
mysql> päivitys table01 asettaa field04 = 19991022 [, field05 = 062218] jossa field01 = 1;
+ + Poista tiedot
mysql> poistaa table01 jossa field01 = 3;
# Jos haluat tyhjentää pöydän kaikki tiedot, on suositeltavaa käyttää katkaista taulukko tablename ei poistaa tablename.
+ + SHELL nopeasti, suorita SQL-komentoa
mysql-e "näyttää slave asema \ G"
+ + Bad kirjastoskannauksesta palauttaminen
cd / var / lib / mysql / xxx & & myisamchk playlist_block
+ + Lisää tulee (x) arvot ("11a)
Esiintyy: ata katkaistaan sarakkeen "x" riviltä 1
Ratkaisu:
Löytyy my.ini
sql-mode = "STRICT_TRANS_TABLES, NO_AUTO_Create_USER, NO_ENGINE_SUBSTITUTION"
Minkä STRICT_TRANS_TABLES, poista ja käynnistä MySQL ok
+ + Kopioi taulukko
luoda taulukko target_table kuten source_table
+ + InnoDB tukea taulukolla: luoda Pöytään-nimi (kenttä-määritelmät) TYPE = InnoDB;
Vanha taulukko: ALTER TABLE taulukko-nimi TYPE = InnoDB;
mysql> alku tapahtumalle alku liiketoimen
mysql> INSERT INTO ... .. # tietojen muutokset
mysql> palautus tai sitoutua # palautus tai sitoutua
mysql> SET AUTOCOMMIT = 1; # asettaa auto-commit
mysql> select @ @ autocommit, # nähdä nykyisen automaattisesti toimitetaan
+ + Taulukko lukko liittyvä
mysql> LOCK TAULUKKO käyttäjät lukevat, # vain luku-lukko käyttäjien taulukko
mysql> LOCK PÖYDÄT käyttäjän lukea, pfolios WRITE # monen pöydän lukko ohjaus
mysql> UNLOCK PÖYDÄT, # ei tarvitse lukita taulukon nimi määritelty, MySQL automaattisesti sulkujen poistamista kaikissa muodoissaan
===== ====== Optimointi ja hallinta useita mysql
+ + Management komento
Näytä muuttujat # Katso kaikki muuttuvat arvot - max_connections tietokanta, jonka avulla yhteyksien enimmäismäärä,
# Tarve lisätä max_connections vuonna my.cnf lisätä asento-muuttuja = max_connections = 32000, seuraavat threads_connected voi määrittää tarpeen arvonnoususta.
Näytä tila [kuten ....];
- Threads_connected nykyinen tietokantayhteyden viestiketjut
# FLUSH STATUS nollata määrä laskurit
Näytä processlist;
tappaa id;
+ + My.cnf kokoonpano-Ota Hitaasti Query Log
long_query_time = 1
log-hidas-kyselyt = / var / log / mysql / log-hidas-queries.log
log-kyselyt-ei-käyttävät-indeksit
# Mysqldumpslow-sc-t 20 host-slow.log # 20 eniten vierailtu SQL-lause
# Mysqldumpslow-sr-t 20 host-slow.log # palata kirjaa 20 perustettu sql
-Muut
max_connections = 500 # enimmäismäärä yhteyksiä käytetään ShowStatus kuten "max_used_connection";
wait_timeout = 10 # end kaikki käyttämättömänä yhteydet yli 10 sekuntia
table_cache = 64 # tahansa kokonaismäärä pöytien
ax_binlog_size = 512M # silmukka kunnes enimmäiskoko binary log
max_connect_errors = 100
query_cache_size = 256M # query cache
# Saatavilla ShowStatus LIKE 'qcache% "Näytä ammunta
# FLUSH Tila palauttaa laskurit, huuhtele QUERY CACHE tyhjennä välimuisti
thread_cache = 40 # viestiketjut käyttää ShowStatus LIKE 'Threads_created% "arvo kasvoi nopeasti, sitten harkita lisää
key_buffer = 16M # näytä status kuin "% key_read%" Key_reads avainsanan pyynnön puolesta määrä levyn osumia
#: Näppäile puskuri lopussa kuinka paljon on tarpeeksi asettaa se? Q: MySQL vain Cache Index (*. MYI), ja siten koko niiden koon MYI tiedosto
sort_buffer_size = 4M # kysely lajitella puskurin kokoa voidaan käyttää kunkin yhteyden yksinomainen 4M
# Show asema kuin "% lajitella%", kuten sort_merge_passes suuri, se tehostaa
sort_buffer_sizesort_buffer_size = 6M # kysely lajitella puskurin kokoa, jota voidaan käyttää, mikä on yksinomainen kunkin yhteyden arvo 6M
read_buffer_size = 4M # luetaan kyselyn voi käyttää puskurin koko
join_buffer_size = 8M # yhteinen kysely voi käyttää puskurin koko
skip-lukitus # peruuttaa ulkoinen lukko tiedostojärjestelmä
skip-nimi-ratkaista
thread_concurrency = 8 # enimmäismäärä samanaikaisesti viestiketjut, cpu numero * 2
long_query_time = 10 # Slow_queries Rekisteröidy kysymys aika kynnys
My.cnf asettaa kohtuulliset tarkistaa, onko työkalu http://www.day32.com/MySQL/tuning-primer.sh
mysqlreport http://hackmysql.com/mysqlreport
Liittyvien virkojen:

























