mysql基礎

1.關係型數據庫

1.數據庫是一種數據的集合,他有着下面這些優點:

1.相互關聯的數據的集合
2.較少的數據冗餘
3.程序與數據相互獨立
4.保證數據的安全、可靠
5.最大限度地保證數據的正確性
6.數據可以併發使用並能同時保證一致性

而現在市面上主流的數據庫大都是關係型數據庫,那麼什麼是關係型數據庫呢?簡單來說,關係型數據庫就是一張張二維表,每一張表稱爲一個關係,表由行和列組成,每一行稱爲一個元組,也可以稱爲記錄,每一列稱爲一個屬性,存在唯一標識的字段,我們稱之爲主鍵。
2.聯繫類型

一對一聯繫(1:1)
一對多聯繫(1:n)
多對多聯繫(m:n)

一對一,比如一個學生只能有一個學號,一個學號也只能對應一個學生
一對多,比如一個學院可以有多個學生,而學生只能有一個學院
多對多,比如一個老師可以有多個學生,學生也可以有多個老師
3.範式
範式是對關係數據庫的規範化約束,包含着多種範式,我們主要學習的是第一範式,第二範式和第三範式。
1.第一範式,簡稱1NF
所謂第一範式(1NF)是指數據庫表的每一列都是不可分割的基本數據項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重複的屬性。如果出現重複的屬性,就可能需要定義一個新的實體,新的實體由重複的屬性構成,新實體與原實體之間爲一對多關係。在第一範式(1NF)中表的每一行只包含一個實例的信息。簡而言之,第一範式就是無重複的列。
2.第二範式,簡稱2NF
第二範式(2NF)是在第一範式(1NF)的基礎上建立起來的,即滿足第二範式(2NF)必須先滿足第一範式(1NF)。第二範式(2NF)要求數據庫表中的每個實例或行必須可以被唯一地區分。爲實現區分通常需要爲表加上一個列,以存儲各個實例的唯一標識。這個唯一屬性列被稱爲主關鍵字或主鍵、主碼。
第二範式(2NF)要求實體的屬性完全依賴於主關鍵字。所謂完全依賴是指不能存在僅依賴主關鍵字一部分的屬性,如果存在,那麼這個屬性和主關鍵字的這一部分應該分離出來形成一個新的實體,新實體與原實體之間是一對多的關係。爲實現區分通常需要爲表加上一個列,以存儲各個實例的唯一標識。簡而言之,第二範式就是非主屬性非部分依賴於主關鍵字。
3.第三範式,簡稱3NF
滿足第三範式(3NF)必須先滿足第二範式(2NF)。簡而言之,第三範式(3NF)要求一個數據庫表中不包含已在其它表中已包含的非主關鍵字信息。他所要解決的是非主屬性對主屬性的傳遞函數依賴

2.二進制安裝mariadb

我們將lmariadb安裝到lvm上,這樣可以解決數據擴展的問題。
1.下載

從downloads.mariadb.org  下載所需版本的mariadb的二進制包 mariadb-10.3.9-linux-x86_64.tar.gz

2.創建所需用戶及組

groupadd -g 36 -r mysql
useradd -u 36 -r -g mysql -m -d /app/dbdata -s /sbin/nologin mysql

3.準備dbdata

artx -a /dev/sda
pvcreate /dev/sda6
vgcreate vgmysql /dev/sda6
lvcreate -l +100%FREE -n lvmysql vgmysql
mkfs.ext4 /dev/vgmysql/lvmysql
echo `/dev/vgmysql/lvmysql    /app/dbdata             ext4    defaults        0 0` >>/etc/fstab
mount -a
chown mysql.mysql /app/dbdata
chmod 700 /app/dbdata

4.解壓二進制目錄

tar -xvf mariadb-10.2.14-linux-x86_64.tar.gz -C /usr/local/
cd /usr/local/
ln -sv mariadb-10.2.14-linux-x86_64 mysql

5.創建配置文件

cd /usr/local/mysql/
mkdir /etc/mysql
cp support-files/my-huge.cnf /etc/mysql/my.cnf
修改/etc/mysql/my.cnf中的以下內容
datadir         = /app/dbdata
innodb_file_per_table   = on
skip_name_resolve = on

6.創建數據庫

scripts/mysql_install_db --datadir=/app/dbdata --user=mysql

7.配置啓動腳本

cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
service mysqld restart

8.配置環境變量PATH

echo `export PATH=/usr/local/mysql/bin:$PATH` >> /etc/bashrc
source /etc/bashrc

9.初始化mysql

mysql_secure_installation
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章