Linux虛擬機(CentOS5)學習筆記(九)之Mysql基礎(完結)

十二. MySQL基礎

一、關於數據庫

1、什麼是數據庫

如果一個項目是動態(內容會變化的,網頁的後綴.jsp、.php、shtml等等)內容的話,則數據庫是必不可少的一個環節。(靜態:Html、html)

2、MySQL簡介

MysQL是一個關係型數據庫管理系統,由瑞典MySQL AB公司開發,2008年被Sun公司收購,目前屬於Oracle旗下產品。MysQL是最流行的數據庫管理系統之一,在WEB應用方面,MysQL是最好的RDBMS(Relational Database Management System,關係數據庫管理系統)應用軟件。其和php是黃金搭檔。(LAMP/LNMP).

3、常見的其他數據庫軟件
目前市場上還有:Oracle(重量級的數據庫)、Ms SQL Server(微軟)、Access(微軟)、PostgresQL、DB2、Mariadb(MysQL分支)

二、MySQL的安裝與初始化

操作之前先確保計算機時間準確。

1、Linux下的軟件安裝方式(初步)

a.源碼包

優點
開源,如果有足夠的能力,可以修改源代碼編譯安裝,更加適合自己的系統,穩定高效缺點
安裝步驟較多,容易出錯編譯過程時間較長

案例:使用源碼編譯安裝方式安裝ncurses(一種常用的終端庫)

擴展:解包常用語法:

#tar -zxvf *.tar.gz
#tar -jxvf *.tar.bz2
選項含義:
-z或--gzip或--ungzip:通過gzip指令處理文件;
-x或--extract或--get:從文件中還原文件;
-V:顯示操作過程;
-f或--file:指定一個文件;
-j:支持bzip2解壓文件;

①先將軟包傳遞到服務器上"/usr/local/src"

②解壓需要安裝的源碼包

tar -zxvf ncurses-6.1.tar.gz

③切換到源碼文件夾,然後執行後續操作

配置(config/configure/bootstrap)→編譯(make/bootstrapd)→安裝(make install/bootstrapd install)

配置操作主要是指定軟件的安裝目錄、需要的依賴在什麼地方、指定不需要可選依賴、配置文件的路徑、通用數據存儲位置等等。

指定安裝的路徑:–prefix=路徑
需要依賴的路徑:–with-PACKAGE名=包所在的路徑

不需要依賴:-without-PACHAGE名

#./configure --prefix=/usr/local/ncurses

#make

#make install

成功之後查看目錄:

b.二進制包

優點:包管理系統簡單,只需要幾個命令就可以實現包的安裝,升級,查詢和卸載

缺點:經過編譯,不再可以看到源代碼
回顧rpm相關指令:

#rpm -ga|grep關鍵詞
#rpm -e 關鍵詞 [-nodeps]
#rpm -ivh 完整名稱
#rpm -Uvh 完整名稱  更新
#rpm -qf 文件路徑【查詢指定文件屬於哪個包】

案例:使用二進制包安裝lynx(一款純命令行的瀏覽器)

例如查看百度:#lynx --dump www.baidu.com

c.yum等傻瓜式安裝

優點:安裝簡單,快捷
缺點:完全喪失了自定義性

常用的yum指令:

#yum list         列出當前已經裝的和可以裝的軟件(全部)
#yum search        搜索指定的關鍵詞的包
#yum [-y] install 包名   安裝指定的包(-y表示允許不再確認)
#yum [-y] update [包名]   更新指定的包,不指定包則更新全部軟件
#yum [-y] remove 包名

注意:如果不更改軟件來源的情況下,是需要聯網才能使用yum的。

案例:使用yum指令卸載火狐瀏覽器

#yum remove firefox

案例:使用yum指令安裝火狐瀏覽器
#yum install firefox

2、安裝MySQL(重點)

注:此處安裝以yum安裝爲例

2.1、MysQL安裝

#yum install mysql-server

安裝完成

2.2、MysQL初始化

#service mysqld start

查看端口號(默認端口號):

#mysql secure installation

Enter current password for root(enter for none):請輸入當前 root用戶的密碼,如果沒有按回車,注意此root 並非linux的root用戶。

Set root password?是否設置root密碼?
需要設置的密碼:********

Remove anonymous users?是否移除匿名用戶,選擇移除(Y)

Disallow root login remotely?是百允許root 遠程登錄(默認不允許)

Remove test database and access to it?是否移除測試數據庫(建議先不移除)

Reload privilege tables now?是否重新加載權限表(當我們更改了mysql用戶相關的信息之後建議去重載權限)

2.3、MysQL的啓動控制

語法:service mysgld start/stop/restart

進入mysql的方式:
#mysql -u用戶名 -p

退出MysQL到linux命令行:
mxsql>exit

2.4、默認目錄/文件位置(瞭解)

數據庫存儲目錄:/var/lib/mysql
配置文件:/etc/my.cnf

三、MysQL的基本操作(難點)

1、名詞介紹

以Excel文件舉例:

數據庫:可以看作是整個excel文件。
數據表:可以看作是一個excel文件中的工作表。
行(記錄):可以看作是一個工作表中的一行
列(字段):可以看作是一個工作表總的一列

2、庫操作

以下命令在MySQL終端命令行中執行:

SHOW DATABASES;              顯示當前MySQL中全部的數據庫
CREATE DATABASE庫名;         創建數據庫
DROP DATABASE庫名;					刪除數據庫
USE庫名;									 切換數據庫

Show databases 效果:

創建數據庫:創建 yunwei數據庫

刪除數據庫:刪除 yunwei數據庫

切換數據庫:切換到test 數據庫

3、表操作

SHOW TABLES;				顯示當前數據庫中所有的表名(必須先use數據庫)

CREATE TABLE表名稱     在當前數據庫下創建數據表
(
列名稱1數據類型[NOT NULL AUTO_INCREMENT],
列名稱2數據類型,
列名稱3數據類型,
......,
PRIMARY KEY(主鍵字段名)
);
常見的數據類型:int(整型)、char(定長字符)、varchar(不定長字符)
主鍵一般就是序號所在的那一列(主鍵不能重複)

DESC表名;     描述一個數據表(查看錶結構)
DROP TABLE[IF EXISTS]表名;			刪除一個數據表

案例:使用上述的語法
查看所有的數據表

創建數據表(去test庫中創建)

要求:表名xg,要求有字段如下:
ld字段,11位整型,不爲空,自增,主鍵

Username字段,varchar類型,20長度

Password字段,char 類型,32長度

SQL(standard query language)語句:

Create table xg( 
Id int(11)not null auto_increment,
Username varchar(20),
Password char(32),
Primary key(id)
)

查看錶結構:

刪除數據表:

4、記錄/字段操作(重點)

4.1、增加記錄

語法1:INSERT INTO 表名稱 VALUES(值1,值2,.…);

語法2:INSERT INTO 表名稱(列1,列2.…)VALUES(值1,值2,.…);

案例:往數據表xg表中新增一個記錄username爲zhangsan,password爲123456(加密結果E10ADC3949BA59ABBE56E057F20F883E)

Sql語句:
insert into xg(username,password)values(‘zhangsan’,‘E10ADC3949BA59ABBE56EO57F20F883E’)

要求前面的列名與值要一一對應。

4.2、更新記錄

語法:UPDATE 表名稱 SET 列名稱1=新值1,列名稱2=新值2...WHERE 列名稱=某值;

案例:使用更新語句更新id大於等於2的記錄,將其密碼改爲:
25F9E794323B453885F5181F1B624D0B

SQL語句:
Update xg set password =‘25F9E794323B453885F5181F1B624DOB’where id>=2;

以後在執行影響行數的sql操作的時候一定需要注意條件是否寫錯或者漏寫。

4.3、查詢記錄

SELECT 列名稱1,列名稱2... FROM 表名稱 WHERE 條件;
SELECT * FROM 表名稱 WHERE 條件;

案例:查詢剛纔新增的記錄
只查詢用戶名和密碼,並且是id=2的:
Select username,password from xg where id=2;

查詢全部:
Select * from ×g;

4.4、刪除記錄

DELETE FROM 表名稱 WHERE 列名稱=值;

案例:刪除id爲2的記錄
Delete from xg where id=2;

5、備份與還原(重點)

5.1、備份(導出)

全量備份(數據+結構):

全量備份(數據+結構):#mysqldump -uroot -p123456(密碼) -A > 備份文件路徑
指定庫備份(數據+結構):#mysqldume -uroot -p123456 庫名 > 備份文件路徑
多個庫備份(數據+結構):#mysqldump -uroot -p123456 --databases db1 db2 > 備份文件路徑

xxxx.sql xxx.tar.gz

案例:備份整個庫
#mysqldump -uroot -pqhabOfhlluB9 -A > /root/sql_201804061609.sql

案例:每1分鐘自動備份1次test數據庫

計劃任務編寫:

等待幾分鐘觀察目錄情況:

5.2、還原(導入)

還原部分分(1)mysql命令行source方法 和 (2)系統命令行方法
1.還原全部數據庫:
(1)mysql命令行:mysql>source 備份文件路徑
(2)系統命令行:mysql -uroot -p123456 <(輸入重定向) 備份文件路徑
2.還原單個數據庫**(需指定數據庫)**
(1)mysql>use 庫名
mysql>source備份文件路徑
(2)mysql -uroot -p123456 庫名 < 備份文件路徑
3.還原單個數據庫的多個表(需指定數據庫)

(1)mysql>use庫名
mysql>source 備份文件路徑
(2)mysql -uroot -p123456 庫名 < 備份文件路徑

4.還原多個數據庫,(一個備份文件裏有多個數據庫的備份,此時不需要指定數據庫)
(1)mysql命令行:mysql>source備份文件路徑(2)系統命令行:mysql -uroot -p123456 < 備份文件路徑

案例:人爲刪除xg表(模擬數據表丟失),然後通過最後一次備份還原數據表。

先刪除數據表

還原操作:

案例2:需要還原sqL文件到test庫庫(mobile.sql31萬條數據)

設置Mysql連接字符集:
Mysql> set names utf8;

【三碼一致,服務器端+傳輸過程中+客戶端】

四、擴展

1、mysql的遠程管理工具

分爲兩大類:B/s架構、C/s架構。
B/S:B是指瀏覽器,s是指服務器。例如:百度搜索應用就屬於BS架構軟件。
C/s:C是指客戶端,s是指服務器。例如:QQ、電腦端徽值等應用程序都是CS架構。

在Bs中,mysql有個典型的管理工具:PMA(phpMyAdmin)

cs中比較典型的軟件:navicat、mysql workbrach

要解決的問題:允許mysql遠程登錄

a.先進入數據庫選擇mysql數據庫;

b.執行sgql語句:select host,user from user;

c.將其中的一個記錄的host值改爲“%”,表示可以允許任何地方登錄

d.刷新權限表或者重啓mysql

刷新權限:mysql> flush privileges;

e.navicat登錄成功


所有筆記到這裏都結束了~
學習筆記一:基本命令
學習筆記二:基本命令
學習筆記三:Vim
學習筆記四:自有服務
學習筆記五:自有服務
學習筆記六:權限管理
學習筆記七:網絡基礎
學習筆記八:Shell基礎
學習筆記九:Mysql基礎
知識來源:
Linux學習網站
CentOS6.5


全部筆記下載:
Linux學習筆記.md

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