溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MySQL概念、應(yīng)用、管理及其它詳解

發(fā)布時(shí)間:2020-04-24 16:25:15 來源:億速云 閱讀:262 作者:三月 欄目:MySQL數(shù)據(jù)庫

本文主要給大家介紹MySQL概念、應(yīng)用、管理及其它詳解,其所涉及的東西,從理論知識(shí)來獲悉,有很多書籍、文獻(xiàn)可供大家參考,從現(xiàn)實(shí)意義角度出發(fā),億速云累計(jì)多年的實(shí)踐經(jīng)驗(yàn)可分享給大家。

一、MySQL簡介

1、MySQL簡介

MySQL是一個(gè)輕量級(jí)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB公司開發(fā),目前屬于Oracle公司。目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中,由于體積小、速度快、總體擁有成本低,開放源碼、免費(fèi),一般中小型網(wǎng)站的開發(fā)都選擇Linux + MySQL作為網(wǎng)站數(shù)據(jù)庫。
MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉庫內(nèi),就增加了速度并提高了靈活性。
MySQL的官方網(wǎng)站的網(wǎng)址是:www.mysql.com

MySQL概念、應(yīng)用、管理及其它詳解

2、MySQL特性

MySQL是一種使用廣泛的數(shù)據(jù)庫,特性如下:
A、使用C和C++編寫,并使用了多種編譯器進(jìn)行測(cè)試,保證源代碼的可移植性   
B、支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統(tǒng)。   
C、為多種編程語言提供了API。編程語言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。   
D、支持多線程,充分利用CPU資源   
E、優(yōu)化的SQL查詢算法,有效地提高查詢速度   
F、既能夠作為一個(gè)單獨(dú)的應(yīng)用程序應(yīng)用在客戶端云服務(wù)器網(wǎng)絡(luò)環(huán)境中,也能夠作為一個(gè)庫而嵌入到其他的軟件中提供多語言支持,常見的編碼如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名   
G、提供TCP/IP、ODBC和JDBC等多種數(shù)據(jù)庫連接途徑   
H、提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫操作的管理工具   
I、可以處理擁有上千萬條記錄的大型數(shù)據(jù)庫

3、MySQL應(yīng)用

與大型數(shù)據(jù)庫例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之處,如規(guī)模小、功能有限(MySQL Cluster的功能和效率都相對(duì)比較差)等,但是這絲毫也沒有減少它受歡迎的程度。對(duì)于一般的個(gè)人使用者和中小型企業(yè)來說,MySQL提供的功能已經(jīng)綽綽有余,而且由于MySQL是開放源碼軟件,因此可以大大降低總體擁有成本。 目前Internet上流行的網(wǎng)站構(gòu)架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作為操作系統(tǒng),Apache作為Web服務(wù)器,MySQL作為數(shù)據(jù)庫,PHP作為服務(wù)器端腳本解釋器。由于Linux+Apache+MySQL+PHP都是自由或開放源碼軟件(FLOSS),因此使用LAMP不用花一分錢就可以建立起一個(gè)穩(wěn)定、免費(fèi)的網(wǎng)站系統(tǒng)。

4、MySQL管理

可以使用命令行工具管理MySQL數(shù)據(jù)庫(命令mysql 和 mysqladmin),也可以從MySQL的網(wǎng)站下載圖形管理工具M(jìn)ySQL Administrator和MySQL Query Browser。   
phpMyAdmin是由php寫成的MySQL資料庫系統(tǒng)管理程式,讓管理者可用Web界面管理MySQL資料庫。   
phpMyBackupPro也是由PHP寫成的,可以透過Web介面創(chuàng)建和管理數(shù)據(jù)庫。它可以創(chuàng)建偽cronjobs,可以用來自動(dòng)在某個(gè)時(shí)間或周期備份MySQL 數(shù)據(jù)庫。   
另外,還有其他的GUI管理工具,例如早先的mysql-front以及ems mysql manager,navicat 等等。

二、MySLQ存儲(chǔ)引擎

1、MySQL存儲(chǔ)引擎簡介

插件式存儲(chǔ)引擎是MySQL數(shù)據(jù)庫最重要的特性之一,用戶可以根據(jù)應(yīng)用的需要選擇如何存儲(chǔ)和索引數(shù)據(jù)庫,是否使用事務(wù)等。mySQL默認(rèn)支持多種存儲(chǔ)引擎,以適應(yīng)不同領(lǐng)域的數(shù)據(jù)庫應(yīng)用需要。用戶可以通過選擇使用不同的存儲(chǔ)引擎提高應(yīng)用的效率,提供靈活的存儲(chǔ),用戶設(shè)置可以按照自己的需要定制和使用自己的存儲(chǔ)引擎,以實(shí)現(xiàn)最大程度的可定制性。
MySQL常用的存儲(chǔ)引擎為MyISAM、InnoDB、MEMORY、MERGE,其中InnoDB提供事務(wù)安全表,其他存儲(chǔ)引擎都是非事務(wù)安全表。
MyISAM是MySQL的默認(rèn)存儲(chǔ)引擎。MyISAM不支持事務(wù)、也不支持外鍵,但其訪問速度快,對(duì)事務(wù)完整性沒有要求。
InnoDB存儲(chǔ)引擎提供了具有提交、回滾和崩潰恢復(fù)能力的事務(wù)安全。但是比起MyISAM存儲(chǔ)引擎,InnoDB寫的處理效率差一些并且會(huì)占用更多的磁盤空間以保留數(shù)據(jù)和索引。MySQL支持外鍵存儲(chǔ)引擎只有InnoDB,在創(chuàng)建外鍵的時(shí)候,要求附表必須有對(duì)應(yīng)的索引,子表在創(chuàng)建外鍵的時(shí)候也會(huì)自動(dòng)創(chuàng)建對(duì)應(yīng)的索引。

2、MySQL存儲(chǔ)引擎特性

主要體現(xiàn)在性能、事務(wù)、并發(fā)控制、參照完整性、緩存、故障恢復(fù),備份及回存等幾個(gè)方面
目前比較普及的存儲(chǔ)引擎是MyISAM和InnoDB,而MyISAM又是絕大部分Web應(yīng)用的首選。MyISAM與InnoDB的主要的不同點(diǎn)在于性能和事務(wù)控制上。
MyISAM是早期ISAM(Indexed Sequential Access Method)的擴(kuò)展實(shí)現(xiàn),ISAM被設(shè)計(jì)為適合處理讀頻率遠(yuǎn)大于寫頻率的情況,因此ISAM以及后來的MyISAM都沒有考慮對(duì)事物的支持,不需要事務(wù)記錄,ISAM的查詢效率相當(dāng)可觀,而且內(nèi)存占用很少。MyISAM在繼承了ISAM優(yōu)點(diǎn)的同時(shí),與時(shí)俱進(jìn)的提供了大量實(shí)用的新特性和相關(guān)工具。例如考慮到并發(fā)控制,提供了表級(jí)鎖。而且由于MyISAM是每張表使用各自獨(dú)立的存儲(chǔ)文件(MYD數(shù)據(jù)文件和MYI索引文件),使得備份及恢復(fù)十分方便(拷貝覆蓋即可),而且還支持在線恢復(fù)。
所以如果應(yīng)用不需要事務(wù),不支持外鍵,處理的只是基本的CRUD(增刪改查)操作,那么MyISAM是不二選擇。

三、MySQL數(shù)據(jù)庫安裝

1、MySQL下載

MySQL版本的選擇
MySQL Community Server 社區(qū)版本,開源免費(fèi),但不提供官方技術(shù)支持。
MySQL Enterprise Edition 企業(yè)版本,需付費(fèi),可以試用30天。
MySQL Cluster 集群版,開源免費(fèi)??蓪讉€(gè)MySQL Server封裝成一個(gè)Server。
MySQL Cluster CGE 高級(jí)集群版,需付費(fèi)。
MySQL Workbench(GUITOOL)一款專為MySQL設(shè)計(jì)的ER/數(shù)據(jù)庫建模工具,是著名的數(shù)據(jù)庫設(shè)計(jì)工具DBDesigner4的繼任者。MySQLWorkbench又分為兩個(gè)版本,分別是社區(qū)版(MySQL Workbench OSS)、商用版(MySQL WorkbenchSE)。
本文選擇MySQL Community Server 5.6.35
下載網(wǎng)址:
https://dev.mysql.com/downloads/mysql/5.6.html#downloads
操作系統(tǒng)選擇:
Red Hat Enterprise Linux/ Oracle Linux
操作系統(tǒng)版本選擇:
Red Hat Enterprise Linux 6 / Oracle Linux 6 (x86, 64-bit)
下載MySQL捆綁包:
MySQL-5.6.35-1.el6.x86_64.rpm-bundle.tar
MySQL捆綁包包含七個(gè)部分:
RHEL兼容包:MySQL-shared-compat-5.6.35-1.el6.x86_64.rpm
MySQL服務(wù)端程序:MySQL-server-5.6.35-1.el6.x86_64.rpm
MySQL客戶端程序:MySQL-client-5.6.35-1.el6.x86_64.rpm
MySQL開發(fā)庫:MySQL-devel-5.6.35-1.el6.x86_64.rpm
MySQL共享庫:MySQL-shared-5.6.35-1.el6.x86_64.rpm
嵌入式版本:MySQL-embedded-5.6.35-1.el6.x86_64.rpm
測(cè)試組件:MySQL-test-5.6.35-1.el6.x86_64.rpm

2、卸載低版本MySQL

查看RHEL 6.8安裝的MySQL版本:
rpm -qa|grep mysql
卸載低版本MySQL:
rpm -e mysql-libs-5.1.73-7.el6.x86_64 --nodeps

3、安裝MySQL

解包MySQL捆綁包:
tar -xvf MySQL-5.6.35-1.el6.x86_64.rpm-bundle.tar
A、安裝RHEL兼容包
rpm -ivh MySQL-shared-compat-5.6.35-1.el6.x86_64.rpm
B、安裝MySQL共享庫
rpm -ivh MySQL-shared-5.6.35-1.el6.x86_64.rpm
C、安裝MySQL服務(wù)端程序
rpm -ivh MySQL-server-5.6.35-1.el6.x86_64.rpm
D、安裝MySQL客戶端程序
rpm -ivh MySQL-client-5.6.35-1.el6.x86_64.rpm
E、安裝MySQL開發(fā)庫
rpm -ivh MySQL-devel-5.6.35-1.el6.x86_64.rpm

4、MySQL配置

拷貝MySQL配置文件到/etc目錄
cp  /usr/share/mysql/my-default.cnf     /etc/mysql.conf
修改/etc/mysql.conf如下:
[client]
password = 123456
port = 3306
default-character-set=utf8
[mysqld]
port = 3306
character_set_server=utf8
character_set_client=utf8
collation-server=utf8_general_ci
lower_case_table_names=1
##設(shè)置最大連接數(shù),默認(rèn)為 151,MySQL服務(wù)器允許的最大連接數(shù)16384
max_connections=1000
[mysql]
default-character-set = utf8
初始化MySQL數(shù)據(jù)庫:
/usr/bin/mysql_install_db

5、管理密碼修改

獲取安裝時(shí)隨機(jī)管理密碼
cat /root/.mysql_secret
# The random password set for the root user at Sun Apr  2 00:52:59 2017 (local time): MwgPucEp8gMz0e20
重設(shè)root密碼
mysql -u root -p
提示輸入密碼后輸入隨機(jī)管理密碼,進(jìn)入mysql。
執(zhí)行SQL語句設(shè)置管理密碼
SET PASSWORD FOR 'root'@'localhost'=PASSWORD('123456');
退出mysql

6、設(shè)置開機(jī)啟動(dòng)MySQL

chkconfig mysql on
查看
chkconfig --list | grep mysql

7、MySQL默認(rèn)安裝目錄說明

/var/lib/mysql/     #數(shù)據(jù)庫目錄
/usr/share/mysql    #配置文件目錄
/usr/bin            #相關(guān)命令目錄
/etc/init.d/mysql   #啟動(dòng)腳本

8、MySQL服務(wù)端口開啟

開啟MySQL服務(wù)端口3306并保存
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
/etc/rc.d/init.d/iptables save

9、授權(quán)root用戶遠(yuǎn)程登錄連接

允許root用戶在任何地方進(jìn)行遠(yuǎn)程登錄,并具有所有庫任何操作權(quán)限
先root登錄:mysql -u root -p"root"
在mysql中執(zhí)行SQL語句:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
FLUSH PRIVILEGES;

10、將SQL腳本導(dǎo)入mysql數(shù)據(jù)庫

mysql -u root -p  //登錄mysql連接
create database test;  //SQL語句創(chuàng)建導(dǎo)入的數(shù)據(jù)庫
use test;  //選中激活數(shù)據(jù)庫
source  test.sql;  //導(dǎo)入sql腳本

11、客戶端連接MySQL服務(wù)器

telnet連接測(cè)試 MySQL服務(wù)器
使用telnet xx.xx.xx.xx 3306命令測(cè)試Windows客戶端是否能連接MySQL服務(wù)器。
如果不能連接可能是Linux服務(wù)器的防火墻或是云主機(jī)的安全組限制。

12、關(guān)閉MySQL服務(wù)的域名解析功能

通常MySQL服務(wù)會(huì)對(duì)連接的客戶端進(jìn)行域名解析,影響訪問MySQL的速度。因此需要關(guān)閉MySQL域名解析功能。在/etc/my.cnf配置文件中設(shè)置。
在[mysqld]服務(wù)欄以下位置設(shè)置skip-name-resolve,如下:

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
skip-name-resolve

重啟MySQL服務(wù)。

看了以上MySQL概念、應(yīng)用、管理及其它詳解介紹,希望能給大家在實(shí)際運(yùn)用中帶來一定的幫助。本文由于篇幅有限,難免會(huì)有不足和需要補(bǔ)充的地方,大家可以繼續(xù)關(guān)注億速云行業(yè)資訊板塊,會(huì)定期給大家更新行業(yè)新聞和知識(shí),如有需要更加專業(yè)的解答,可在官網(wǎng)聯(lián)系我們的24小時(shí)售前售后,隨時(shí)幫您解答問題的。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI