杭州公司招聘網(wǎng)絡(luò)搜索優(yōu)化
目錄
一、庫操作
1. 創(chuàng)建數(shù)據(jù)庫
2. 查看所有數(shù)據(jù)庫
3. 刪除數(shù)據(jù)庫
4. 修改數(shù)據(jù)庫
5. 進入一個數(shù)據(jù)庫
二、查看和設(shè)置數(shù)據(jù)庫的編碼規(guī)則
1. MySQL的兩個編碼規(guī)則:字符集和校驗規(guī)則
2. 查看MySQL當前使用的字符集以及校驗規(guī)則
3. 查看MySQL支持的所有字符集
4.?查看MySQL支持的所有校驗規(guī)則
5.?設(shè)置字符集和校驗規(guī)則
三、數(shù)據(jù)庫的備份和還原
1.數(shù)據(jù)庫的備份和還
2.數(shù)據(jù)庫的還原
四、查看庫的連接情況
一、庫操作
1. 創(chuàng)建數(shù)據(jù)庫
語法:CREATE DATABASE [IF NOT EXISTS] `數(shù)據(jù)庫名` [charset=要設(shè)置的字符集] [collate 要設(shè)置的校驗規(guī)則];
示例:create databse if not exists test charset=utf8;
說明:1.MySQL對大小寫不敏感,所以關(guān)鍵字可大寫也可小寫,MySQL的存儲引擎優(yōu)化后都能識別。2.[] 是可選項3.IF NOT EXISTS:如果不存在就創(chuàng)建。4.數(shù)據(jù)庫名的反引號可加可不加,一般是數(shù)據(jù)庫名稱和MySQL中的關(guān)鍵字沖突時加。5.charset: 指定數(shù)據(jù)庫采用的字符集6.collate: 指定數(shù)據(jù)庫字符集的校驗規(guī)則7.創(chuàng)建數(shù)據(jù)庫的本質(zhì)就是在 /var/lib/mysql路徑下創(chuàng)建目錄
2. 查看所有數(shù)據(jù)庫
show databases;
--查看當前用戶有權(quán)限訪問的所有數(shù)據(jù)庫
--本質(zhì)上就是查看 /var/lib/mysql路徑下的目錄
3. 刪除數(shù)據(jù)庫
語法:DROP DATABASE [IF EXISTS] 數(shù)據(jù)庫名稱;
示例:drop database if exists test1;
說明:IF EXISTS:如果存在就刪除本質(zhì)上就是刪除 /var/lib/mysql路徑下的指定目錄,級聯(lián)刪除,里面的數(shù)據(jù)表全部被刪
4. 修改數(shù)據(jù)庫
語法:ALTER DATABASE 數(shù)據(jù)庫名稱 [charset 要設(shè)置的字符集] [collate 要設(shè)置的校驗規(guī)則];
示例:alter database test charset=utf8;
說明:該sql語句主要就是用來修改數(shù)據(jù)庫的字符集和校驗規(guī)則,無法修改數(shù)據(jù)庫的名字修改字符集校驗規(guī)則也會跟著修改但要校驗規(guī)則如果和當前字符集不匹配將無法修改
5. 進入一個數(shù)據(jù)庫
use 數(shù)據(jù)庫名;
-- 本質(zhì)上是進入數(shù)據(jù)庫對應(yīng)的目錄
二、查看和設(shè)置數(shù)據(jù)庫的編碼規(guī)則
1. MySQL的兩個編碼規(guī)則:字符集和校驗規(guī)則
- 字符集? ? ?:規(guī)定MySQL以什么編碼方式接收、保存用戶數(shù)據(jù)和給發(fā)送用戶發(fā)送數(shù)據(jù)。
- 校驗規(guī)則 :在設(shè)立好的字符集的基礎(chǔ)上,規(guī)定MySQL以什么方式來識別用戶發(fā)來的SQL語句和比對用戶發(fā)來的數(shù)據(jù)跟數(shù)據(jù)庫中的數(shù)據(jù),如是否要大小寫敏感、是否bin(二元)結(jié)束。
????????MySQl中字符集和校對規(guī)則是一對多的關(guān)系,雖然字符集都有一個默認的校對規(guī)則,但我們可以自主設(shè)置字符集和校驗規(guī)則,只要兩者能匹配就不會出現(xiàn)亂碼問題。要注意的是只設(shè)置字符集時,MySQL會自動將校對規(guī)則設(shè)置為字符集中對應(yīng)的默認校對規(guī)則。
2. 查看MySQL當前使用的字符集以及校驗規(guī)則
- 查看MySQL中數(shù)據(jù)庫使用的字符集以及校驗規(guī)則:
show variables like 'character_set_database';
show variables like 'collation_database';- 查看MySQL中數(shù)據(jù)庫服務(wù)端使用的字符集以及校驗規(guī)則:
show variables like 'character_set_server';
show variables like 'collation_server';- 查看MySQL中各部分使用的字符集以及校驗規(guī)則:
show variables like 'character_set_%';
show variables like 'collation_%';- 通過數(shù)據(jù)庫目錄下的db.opt文件查看指定數(shù)據(jù)庫使用的字符集以及校驗規(guī)則
cat 數(shù)據(jù)庫名稱/db.opt
3. 查看MySQL支持的所有字符集
- SQL語句:
????????show charset;
- 示例:?
????????
?
- 說明:
? ? ? ? 圖中第三列即為字符集能匹配上的校驗規(guī)則。
4.?查看MySQL支持的所有校驗規(guī)則
- SQL語句:
????????show collation;
- 示例:
?????????
- 說明:
? ? ? ? 圖中第二列即為校驗規(guī)則能匹配上的字符集。
5.?設(shè)置字符集和校驗規(guī)則
4.4.1 通過配置my.cnf文件設(shè)置MySQL的默認字符集和默認校驗規(guī)則
示例:
????????使用vim打開MySQL配置文件 :??vim /etc/my.cnf
????????然后在最后一行前面加上:character-set-server=utf8
????????最后重啟MySQL客戶端 :?systemctl restart mysqld?
說明:
????????character-set-server=utf8 是在設(shè)置MySQL的服務(wù)端的默認字符集為utf-8。
4.4.2 創(chuàng)建數(shù)據(jù)庫時指明該數(shù)據(jù)庫使用的字符集和校驗規(guī)則
SQL語句:
????????create database 數(shù)據(jù)庫名 charset 要設(shè)置的字符集 collate 要設(shè)置的校驗規(guī)則
示例:
????????create database test?charset utf8 collate utf8_bin;
說明:
????????設(shè)置好了字符集,校驗規(guī)則也會跟著改變?yōu)槟J匹配的。反之亦然。
????????如果創(chuàng)建數(shù)據(jù)庫時不指明該數(shù)據(jù)庫使用的字符集和校驗規(guī)則,就使用MySQL的默認字符集和默認校驗規(guī)則。
? ? ? ? 設(shè)置數(shù)據(jù)庫的字符集,校驗規(guī)則本質(zhì)上就是在修改數(shù)據(jù)庫目錄下的db.opt文件。
三、數(shù)據(jù)庫的備份和還原
1.數(shù)據(jù)庫的備份和還
語法(在Linux環(huán)境下):mysqldump -P端口號 -uMySQL用戶名 -p用戶密碼 -B數(shù)據(jù)庫名 > 存儲數(shù)據(jù)庫備份信息的文件的路徑
示例:mysqldump -P3306 -uroot -p123456 -Btest > ./db.sql
說明:該語句的主要作用就是將數(shù)據(jù)庫的主要信息和歷史操作信息保存到了指定文件中mysqldump和mysql服務(wù)端,客戶端一樣也是由MySQL提供給用戶的工具,用來備份數(shù)據(jù)庫。如果備份時,沒有-B參數(shù),在恢復(fù)數(shù)據(jù)庫時,需要先創(chuàng)建空數(shù)據(jù)庫,然后進入數(shù)據(jù)庫,再使用source來還原如果備份的不是整個數(shù)據(jù)庫,而是其中的一張表,怎么做?mysqldump -u root -p 數(shù)據(jù)庫名 表名1 表名2 > 存儲數(shù)據(jù)庫備份信息的文件的路徑同時備份多個數(shù)據(jù)庫mysqldump -u root -p -B 數(shù)據(jù)庫名1 數(shù)據(jù)庫名2 ... > 存儲數(shù)據(jù)庫備份信息的文件的路徑
2.數(shù)據(jù)庫的還原
方法:先登錄mysql,再輸入以下sql語句:source 保存數(shù)據(jù)庫備份信息的文件路徑;
示例source root/mysql/db.sql
說明:這里保存數(shù)據(jù)庫備份信息的文件路徑為絕對路徑。
四、查看庫的連接情況
語法:show processlist說明:用該sql語句我們可以知道當前有哪些用戶連接到我們的MySQL,如果查出某個用戶不是你正常登陸的,很有可能你的數(shù)據(jù)庫被人入侵了。發(fā)現(xiàn)自己數(shù)據(jù)庫比較慢時,可以用這個指令來查看數(shù)據(jù)庫連接情況。
------------------------END-------------------------
才疏學淺,謬誤難免,歡迎各位批評指正。