Ram:隨機(jī)性訪問存儲(chǔ)器,斷電丟失數(shù)據(jù) 內(nèi)存
Rom:只讀訪問存儲(chǔ)器,不會(huì)丟失數(shù)據(jù)創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比昌黎網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式昌黎網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋昌黎地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。
1.數(shù)據(jù)庫(kù)的基本概念
2.數(shù)據(jù)庫(kù)的發(fā)展
3.主流的數(shù)據(jù)庫(kù)介紹
4.編譯安裝mysql
5.操作mysql
1.描述事物的符號(hào)記錄稱為數(shù)據(jù)(Data)
2.包括數(shù)字,文字、圖形、圖像、聲音、檔案記錄等
3.以“記錄”形式按統(tǒng)一-的格式進(jìn)行存儲(chǔ)
1.將不同的記錄組織在一-起,就形成了“表”
2.是用來存儲(chǔ)具體數(shù)據(jù)的
1.數(shù)據(jù)庫(kù)就是表的集合,是存儲(chǔ)數(shù)據(jù)的倉(cāng)庫(kù)
2.以一定的組織方式存儲(chǔ)的相互有關(guān)的數(shù)據(jù)
自20世紀(jì)60年代起,第一-代數(shù)據(jù)庫(kù)系統(tǒng)問世。它們是層次模型與網(wǎng)狀模型的數(shù)據(jù)庫(kù)系統(tǒng),為統(tǒng)一管理和共享 數(shù)據(jù)提供了有力的支撐
第二代數(shù)據(jù)庫(kù):
1.20世紀(jì)70年代初,第二代數(shù)據(jù)庫(kù)一 關(guān)系數(shù)據(jù)庫(kù)開始出現(xiàn)
2.20世紀(jì)80年代初,IBM公司的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)DB2問世,作為第二代數(shù)據(jù)庫(kù)系統(tǒng)的關(guān)系數(shù)據(jù)庫(kù),開始逐步取代層次與網(wǎng)狀模型的數(shù)據(jù)庫(kù),成為占主導(dǎo)地位的數(shù)據(jù)庫(kù),成為行業(yè)主流。到目前為止,關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)仍占領(lǐng)數(shù)據(jù)庫(kù)應(yīng)用的主要地位
1.自20世紀(jì)80年代開始,各種適應(yīng)不同領(lǐng)域的新型數(shù)據(jù)庫(kù)系統(tǒng)不斷涌現(xiàn),如工程數(shù)據(jù)庫(kù)、多媒體數(shù)據(jù)庫(kù)、圖形數(shù)據(jù)庫(kù)、智能數(shù)據(jù)庫(kù)、分布式數(shù)據(jù)庫(kù)及面向?qū)ο髷?shù)據(jù)庫(kù)等,特別是面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng),由于其實(shí)用性強(qiáng)、適應(yīng)面廣而受到人們的青睞
2.20世紀(jì)90年代后期,形成了多種數(shù)據(jù)庫(kù)系統(tǒng)共同支撐應(yīng)用的局面。當(dāng)然,在商務(wù)應(yīng)用方面,依然還是關(guān)系數(shù)據(jù)庫(kù)占主流,不過已經(jīng)有- -些新的元素被添加進(jìn)主流商務(wù)數(shù)據(jù)庫(kù)系統(tǒng)中。例如,Oracle支持的"關(guān)系-對(duì)象”數(shù)據(jù)庫(kù)模型
關(guān)系數(shù)據(jù)庫(kù):數(shù)據(jù) 整型,浮點(diǎn)型,字符型,字符串(固定長(zhǎng)度,可變長(zhǎng)),布爾
非關(guān)系數(shù)據(jù)庫(kù):對(duì)象(圖片,視頻)
1.面向Windows操作系統(tǒng)(客戶端)
2.簡(jiǎn)單、易用
1.面向所有主流平臺(tái)
2.安全、完善,操作復(fù)雜
1.面向所有主流平臺(tái)
2.大型、安全、完善
1.免費(fèi)、開源、體積小
1.關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)是基于關(guān)系模型的數(shù)據(jù)庫(kù)系統(tǒng),它的基本概念來自于關(guān)系模型
2.關(guān)系模型建立在關(guān)系代數(shù)的理論基礎(chǔ).上,數(shù)據(jù)結(jié)構(gòu)使用簡(jiǎn)單易懂的二維數(shù)據(jù)表,可以用簡(jiǎn)單的“實(shí)體-關(guān)系”(E-R)圖來直接表示
3.E-R圖中包含了實(shí)體(數(shù)據(jù)對(duì)象)、關(guān)系和屬性三個(gè)要素
也稱為實(shí)例,對(duì)應(yīng)現(xiàn)實(shí)世界中可區(qū)別于其他對(duì)象的"事件"或"事物”,如銀行客戶、銀行賬戶等
實(shí)體所具有的某一特性,一個(gè)實(shí)體可以有多個(gè)屬性。例如,"銀行客戶”實(shí)體集中的每個(gè)實(shí)體均具有姓名、住址、電話等屬性
實(shí)體集之間的對(duì)應(yīng)關(guān)系稱為聯(lián)系,也稱為關(guān)系。例如,銀行客戶和銀行賬戶之間存在”儲(chǔ)蓄”的關(guān)系
1.關(guān)系數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)是二維表格,反映事物及其聯(lián)系的數(shù)據(jù)是以表格形式保存的
2.在每個(gè)二維表中,每一行稱為一條記錄用來描述一個(gè)對(duì)象的信息;每一列稱為一 個(gè)字段,用來描述對(duì)象的一個(gè)屬性
①數(shù)據(jù)庫(kù)高并發(fā)讀寫的需求
②對(duì)海量數(shù)據(jù)高效率存儲(chǔ)與訪問(大數(shù)據(jù))
③數(shù)據(jù)庫(kù)的高擴(kuò)展性與高可用性的需求(可做群集,確保高可用,高可靠)
1.鍵-值方式(key-value), 以鍵為依據(jù)存儲(chǔ)、刪、改數(shù)據(jù)
2.列存儲(chǔ)(Column-oriented),將相關(guān)的數(shù)據(jù)存儲(chǔ)在列族中
3.文檔的方式,數(shù)據(jù)庫(kù)由-系列數(shù)據(jù)項(xiàng)組成,每個(gè)數(shù)據(jù)項(xiàng)都有名稱與對(duì)應(yīng)的值
4.圖形方式,實(shí)體為頂點(diǎn),關(guān)系為邊,數(shù)據(jù)保存為一個(gè)圖形
1.緩存數(shù)據(jù)以減輕數(shù)據(jù)庫(kù)壓力并能加快訪問速度
2.加速動(dòng)態(tài)Web應(yīng)用
3.緩存的內(nèi)容保存在內(nèi)存中
1.相對(duì)于Memcached有以下特點(diǎn)
①支持內(nèi)存緩存
②支持持久化
③數(shù)據(jù)類型更多
④支持集群、分布式
⑤支持隊(duì)列
1.數(shù)據(jù)庫(kù)前端緩存
2.session共享
3.當(dāng)需要緩存除了key/value之外的更多數(shù)據(jù)類型時(shí)
4.當(dāng)緩存的數(shù)據(jù)需要長(zhǎng)久保存時(shí)
①性能卓越、服務(wù)穩(wěn)定,
②開源、無版權(quán)限制、成本低
③多線程、多用戶
④基于C/S (客戶端/服務(wù)器)架構(gòu)
⑤安全可靠
①商業(yè)版組織管理與測(cè)試環(huán)節(jié)更加嚴(yán)格,穩(wěn)定性更好
②商業(yè)版不遵守GPL
③商業(yè)版可獲得7*24小時(shí)的服務(wù),如故障維護(hù)與打補(bǔ)丁等
1.第一陣營(yíng): 5.0-5.1陣營(yíng),可說是早期產(chǎn)品的延續(xù)
2.第二陣營(yíng): 5.4-5.7陣營(yíng),更好地整合了'MySQL AB公司、社區(qū)、第三方公司開的存儲(chǔ)引擎,從而提高性能
3.第三陣營(yíng): 6.0-7.1陣營(yíng),就是MySQL Cluster版本,為適應(yīng)新時(shí)代集群對(duì)數(shù)據(jù)庫(kù)的需求而開發(fā)
4.MySQL下載網(wǎng)址:http://www.dev.mysql.com/downloads
[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í)可以登錄數(shù)據(jù)庫(kù),可以直接授予權(quán)限
Query OK, 0 rows affected, 1 warning (0.00 sec)