溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL數(shù)據(jù)庫總結(jié)和體驗

發(fā)布時間:2020-04-26 15:19:56 來源:億速云 閱讀:294 作者:三月 欄目:MySQL數(shù)據(jù)庫

本文主要給大家介紹MySQL數(shù)據(jù)庫總結(jié)和體驗,希望可以給大家補充和更新些知識,如有其它問題需要了解的可以持續(xù)在億速云行業(yè)資訊里面關(guān)注我的更新文章的。

MySQL數(shù)據(jù)庫初體驗

Ram:隨機性訪問存儲器,斷電丟失數(shù)據(jù)  內(nèi)存
Rom:只讀訪問存儲器,不會丟失數(shù)據(jù)

管理存儲的數(shù)據(jù),數(shù)據(jù)的增刪改查,數(shù)據(jù)的遷移,保證數(shù)據(jù)的私密性

1.數(shù)據(jù)庫的基本概念
2.數(shù)據(jù)庫的發(fā)展
3.主流的數(shù)據(jù)庫介紹
4.編譯安裝mysql
5.操作mysql

數(shù)據(jù)庫的基本概念

MySQL數(shù)據(jù)庫總結(jié)和體驗

數(shù)據(jù):

1.描述事物的符號記錄稱為數(shù)據(jù)(Data)
2.包括數(shù)字,文字、圖形、圖像、聲音、檔案記錄等
3.以“記錄”形式按統(tǒng)一-的格式進行存儲

表:

1.將不同的記錄組織在一-起,就形成了“表”
2.是用來存儲具體數(shù)據(jù)的

數(shù)據(jù)庫:

1.數(shù)據(jù)庫就是表的集合,是存儲數(shù)據(jù)的倉庫
2.以一定的組織方式存儲的相互有關(guān)的數(shù)據(jù)

MySQL數(shù)據(jù)庫總結(jié)和體驗

數(shù)據(jù)庫系統(tǒng)發(fā)展史

第一代數(shù)據(jù)庫:

自20世紀60年代起,第一-代數(shù)據(jù)庫系統(tǒng)問世。它們是層次模型與網(wǎng)狀模型的數(shù)據(jù)庫系統(tǒng),為統(tǒng)一管理和共享 數(shù)據(jù)提供了有力的支撐

第二代數(shù)據(jù)庫:

1.20世紀70年代初,第二代數(shù)據(jù)庫一 關(guān)系數(shù)據(jù)庫開始出現(xiàn)
2.20世紀80年代初,IBM公司的關(guān)系數(shù)據(jù)庫系統(tǒng)DB2問世,作為第二代數(shù)據(jù)庫系統(tǒng)的關(guān)系數(shù)據(jù)庫,開始逐步取代層次與網(wǎng)狀模型的數(shù)據(jù)庫,成為占主導地位的數(shù)據(jù)庫,成為行業(yè)主流。到目前為止,關(guān)系數(shù)據(jù)庫系統(tǒng)仍占領(lǐng)數(shù)據(jù)庫應用的主要地位

第三代數(shù)據(jù)庫:

1.自20世紀80年代開始,各種適應不同領(lǐng)域的新型數(shù)據(jù)庫系統(tǒng)不斷涌現(xiàn),如工程數(shù)據(jù)庫、多媒體數(shù)據(jù)庫、圖形數(shù)據(jù)庫、智能數(shù)據(jù)庫、分布式數(shù)據(jù)庫及面向?qū)ο髷?shù)據(jù)庫等,特別是面向?qū)ο髷?shù)據(jù)庫系統(tǒng),由于其實用性強、適應面廣而受到人們的青睞
2.20世紀90年代后期,形成了多種數(shù)據(jù)庫系統(tǒng)共同支撐應用的局面。當然,在商務應用方面,依然還是關(guān)系數(shù)據(jù)庫占主流,不過已經(jīng)有- -些新的元素被添加進主流商務數(shù)據(jù)庫系統(tǒng)中。例如,Oracle支持的"關(guān)系-對象”數(shù)據(jù)庫模型

關(guān)系數(shù)據(jù)庫:數(shù)據(jù) 整型,浮點型,字符型,字符串(固定長度,可變長),布爾
非關(guān)系數(shù)據(jù)庫:對象(圖片,視頻)

當今主流數(shù)據(jù)庫介紹

SQL Server (微軟公司產(chǎn)品)

1.面向Windows操作系統(tǒng)(客戶端)
2.簡單、易用

Oracle (甲骨文公司產(chǎn)品)

1.面向所有主流平臺
2.安全、完善,操作復雜

DB2 (IBM公司產(chǎn)品)

1.面向所有主流平臺
2.大型、安全、完善

MySQL (甲骨文公司收購)

1.免費、開源、體積小

關(guān)系數(shù)據(jù)庫

1.關(guān)系數(shù)據(jù)庫系統(tǒng)是基于關(guān)系模型的數(shù)據(jù)庫系統(tǒng),它的基本概念來自于關(guān)系模型
2.關(guān)系模型建立在關(guān)系代數(shù)的理論基礎(chǔ).上,數(shù)據(jù)結(jié)構(gòu)使用簡單易懂的二維數(shù)據(jù)表,可以用簡單的“實體-關(guān)系”(E-R)圖來直接表示
3.E-R圖中包含了實體(數(shù)據(jù)對象)、關(guān)系和屬性三個要素

MySQL數(shù)據(jù)庫總結(jié)和體驗

實體:

也稱為實例,對應現(xiàn)實世界中可區(qū)別于其他對象的"事件"或"事物”,如銀行客戶、銀行賬戶等

屬性:

實體所具有的某一特性,一個實體可以有多個屬性。例如,"銀行客戶”實體集中的每個實體均具有姓名、住址、電話等屬性

聯(lián)系:

實體集之間的對應關(guān)系稱為聯(lián)系,也稱為關(guān)系。例如,銀行客戶和銀行賬戶之間存在”儲蓄”的關(guān)系

所有實體及實體之間聯(lián)系的集合構(gòu)成一個關(guān)系數(shù)據(jù)庫

1.關(guān)系數(shù)據(jù)庫的存儲結(jié)構(gòu)是二維表格,反映事物及其聯(lián)系的數(shù)據(jù)是以表格形式保存的
2.在每個二維表中,每一行稱為一條記錄用來描述一個對象的信息;每一列稱為一 個字段,用來描述對象的一個屬性

非關(guān)系數(shù)據(jù)庫介紹

1.非關(guān)系數(shù)據(jù)庫也被稱作NoSQL(Not Only SQL),存儲數(shù)據(jù)不以關(guān)系模型為依據(jù),不需要固定的表格式
2.非關(guān)系型數(shù)據(jù)庫作為關(guān)系數(shù)據(jù)庫的一個補充,在日益快速發(fā)展的網(wǎng)站時代,發(fā)揮著高效率與高性能
3.非關(guān)系型數(shù)據(jù)庫的優(yōu)點:

①數(shù)據(jù)庫高并發(fā)讀寫的需求
②對海量數(shù)據(jù)高效率存儲與訪問(大數(shù)據(jù))
③數(shù)據(jù)庫的高擴展性與高可用性的需求(可做群集,確保高可用,高可靠)

對象包含:屬性,行為

非關(guān)系型數(shù)據(jù)庫存儲方式

1.鍵-值方式(key-value), 以鍵為依據(jù)存儲、刪、改數(shù)據(jù)
2.列存儲(Column-oriented),將相關(guān)的數(shù)據(jù)存儲在列族中
3.文檔的方式,數(shù)據(jù)庫由-系列數(shù)據(jù)項組成,每個數(shù)據(jù)項都有名稱與對應的值
4.圖形方式,實體為頂點,關(guān)系為邊,數(shù)據(jù)保存為一個圖形

非關(guān)系數(shù)據(jù)庫產(chǎn)品

Memcached是一個開源的、高性能的、具有分布式內(nèi)存對象的緩存系統(tǒng),以key-value方式存儲數(shù)據(jù)

1.緩存數(shù)據(jù)以減輕數(shù)據(jù)庫壓力并能加快訪問速度
2.加速動態(tài)Web應用
3.緩存的內(nèi)容保存在內(nèi)存中

MySQL數(shù)據(jù)庫總結(jié)和體驗

redis也是一個以key-value方式存儲數(shù)據(jù)的, 數(shù)據(jù)也是保存在內(nèi)存中,但會定期將數(shù)據(jù)寫入磁盤中

1.相對于Memcached有以下特點

①支持內(nèi)存緩存
②支持持久化
③數(shù)據(jù)類型更多
④支持集群、分布式
⑤支持隊列

MySQL數(shù)據(jù)庫總結(jié)和體驗

redis應用舉例:

1.數(shù)據(jù)庫前端緩存
2.session共享
3.當需要緩存除了key/value之外的更多數(shù)據(jù)類型時
4.當緩存的數(shù)據(jù)需要長久保存時

MySQL數(shù)據(jù)庫介紹

1.MySQL是一款深受歡迎的開源關(guān)系型數(shù)據(jù)庫
2.Oracle旗下的產(chǎn)品
3.遵守了GPL協(xié)議,可以免費使用與修改
4.特點

①性能卓越、服務穩(wěn)定,
②開源、無版權(quán)限制、成本低
③多線程、多用戶
④基于C/S (客戶端/服務器)架構(gòu)
⑤安全可靠

MySQL商業(yè)版與社區(qū)版

1.MySQL商業(yè)版是由MySQL AB公司負責開發(fā)與維護,需要付費才能使用
2.MySQL社區(qū)版是由分散在世界各地的MySQL開發(fā)者、愛好者一起開發(fā)與維護,可以免費使用
3.兩者區(qū)別:

①商業(yè)版組織管理與測試環(huán)節(jié)更加嚴格,穩(wěn)定性更好
②商業(yè)版不遵守GPL
③商業(yè)版可獲得7*24小時的服務,如故障維護與打補丁等

MySQL產(chǎn)品陣營

1.第一陣營: 5.0-5.1陣營,可說是早期產(chǎn)品的延續(xù)
2.第二陣營: 5.4-5.7陣營,更好地整合了'MySQL AB公司、社區(qū)、第三方公司開的存儲引擎,從而提高性能
3.第三陣營: 6.0-7.1陣營,就是MySQL Cluster版本,為適應新時代集群對數(shù)據(jù)庫的需求而開發(fā)
4.MySQL下載網(wǎng)址:http://www.dev.mysql.com/downloads

Demo:MySQL數(shù)據(jù)庫5.7.17手工編譯安裝
[root@localhost ~]# yum -y install \
ncurses \
ncurses-devel \
bison \
cmake
[root@localhost ~]# useradd -s /sbin/nologin mysql
[root@localhost ~]# mkdir /aaa
[root@localhost ~]# mount.cifs //192.168.0.105/rpm /aaa
Password for root@//192.168.0.105/rpm:  
[root@localhost ~]# cd /aaa
[root@localhost aaa]# ls
apr-1.6.2.tar.gz                  lf.jpg
apr-util-1.6.0.tar.gz             mysql-5.6.26.tar.gz
awstats-7.6.tar.gz                mysql-5.7.17.tar.gz
boost_1_59_0.tar.gz               mysql-boost-5.7.20.tar.gz
cronolog-1.6.2-14.el7.x86_64.rpm  nginx-1.12.2.tar.gz
Discuz_X3.4_SC_UTF8.zip           php-7.1.10.tar.bz2
error.png                         php-7.1.20.tar.gz
extundelete-0.2.4.tar.bz2         TC
httpd-2.4.29.tar.bz2              wh.jpeg
john-1.8.0.tar.gz                 yy.png
jqwh.jpg
[root@localhost aaa]# tar zxvf mysql-5.7.17.tar.gz -C /opt/
[root@localhost aaa]# tar zxvf boost_1_59_0.tar.gz -C /usr/local/
[root@localhost aaa]# cd /usr/local/
[root@localhost local]# ls
bin           etc    include  lib64    sbin   src
boost_1_59_0  games  lib      libexec  share
[root@localhost local]# mv boost_1_59_0/ boost
[root@localhost local]# ls
bin    etc    include  lib64    sbin   src
boost  games  lib      libexec  share
[root@localhost local]# cd /opt/mysql-5.7.17/
[root@localhost mysql-5.7.17]# ls
BUILD                extra                mysys       strings
client               include              mysys_ssl   support-files
cmake                INSTALL              packaging   testclients
CMakeLists.txt       libbinlogevents      plugin      unittest
cmd-line-utils       libbinlogstandalone  rapid       VERSION
config.h.cmake       libevent             README      vio
configure.cmake      libmysql             regex       win
COPYING              libmysqld            scripts     zlib
dbug                 libservices          sql
Docs                 man                  sql-common
Doxyfile-perfschema  mysql-test           storage
[root@localhost mysql-5.7.17]# yum install gcc gcc-c++ -y
[root@localhost mysql-5.7.17]# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/boost \
-DWITH_SYSTEMD=1
[root@localhost mysql-5.7.17]# make && make install
[root@localhost mysql-5.7.17]# chown -R mysql /usr/local/mysql/
[root@localhost mysql-5.7.17]# vim /etc/my.cnf
#先100dd刪除所有行,然后再插入以下內(nèi)容
[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
#修改結(jié)束后按Esc退出插入模式,輸入:wq保存退出
[root@localhost mysql-5.7.17]# chown mysql.mysql /etc/my.cnf
[root@localhost mysql-5.7.17]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
[root@localhost mysql-5.7.17]# echo 'export PATH' >> /etc/profile
[root@localhost mysql-5.7.17]# source /usr/local/mysql
[root@localhost mysql-5.7.17]# cd /usr/local/mysql/
[root@localhost mysql]# bin/mysqld \
--initialize-insecure 
--user=mysql 
--basedir=/usr/local/mysql 
--datadir=/usr/local/mysql/data

[root@localhost mysql]# cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
[root@localhost mysql]# systemctl daemon-reload
[root@localhost mysql]# systemctl start mysqld.service
[root@localhost mysql]# netstat -ntap | grep 3306
tcp6            0           0 :::3306       :::*        LISTEN        3029/mysqld
[root@localhost mysql]# systemctl enable mysqld
[root@localhost mysql]# mysqladmin -u root -p password "abc123"         #指定新密碼
Enter password:         #此處為空直接回車       
[root@localhost mysql]# mysql -u root -p 
Enter password:         #此處輸入之前設(shè)置的密碼abc123
......此處省略多行
mysql>grant all privileges on *.* to 'root'@'%' identified by 'abc123' with grant option;
#此時可以登錄數(shù)據(jù)庫,可以直接授予權(quán)限

Query OK, 0 rows affected, 1 warning (0.00 sec)

看了以上關(guān)于MySQL數(shù)據(jù)庫總結(jié)和體驗,希望能給大家在實際運用中帶來一定的幫助。本文由于篇幅有限,難免會有不足和需要補充的地方,如有需要更加專業(yè)的解答,可在官網(wǎng)聯(lián)系我們的24小時售前售后,隨時幫您解答問題的。


向AI問一下細節(jié)

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

AI