MySQL
數據庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫。MySQL 是最流行的關係型數據庫管理系統,在 WEB 應用方面> MySQL 是最好的 RDBMS(Relational Database Management System:關係數據庫管理系統)應用軟件之一。
默認端口:3306
基礎操作
- MySQL數據庫安裝
操作系統:Cent OS 6.9
安裝MySQL:yum install -y mysql-server
啓動MySQL:service mysqld start
第一次啓動MySQL會初始化數據庫
- 數據庫登錄
初次安裝的MySQL數據庫root用戶沒有登錄密碼,可以直接登錄
命令:mysql -u root - 爲MySQL管理賬戶(root)添加或者修改密碼:
mysqladmin -u root -p password “新密碼” ,回車輸入原密碼
- 交互式shell登錄
命令:mysql -u root -p 回車輸入密碼
- 非交互式shell登錄
命令:mysql -u root -p123456
- MySQL數據庫有專屬的命令語句又稱爲SQL語句,SQL語句不區分大小寫
- MySQL非交互式執行SQL語句:mysql -u root -p密碼 -e “SQL語句”
- MySQL中存儲的內容:庫(目錄文件夾)- 表(xls表格)
- 顯示MySQL中的所有庫:show databases;
MySQL中默認存在三個庫,information_schema、mysql、test - 顯示數據庫下的數據表
命令:use 數據庫名;
show tables;
其中mysql中有一個名爲user的數據表,其中存儲了mysql管理賬戶的相關信息。所以該數據表也是SQL注入漏洞的主要目標。 - 獲取數據表中的數據
select 字段名 from 表名 where 字段名=字段值;
select 後面跟字段名,多個字段名之間用逗號隔開,查詢所有字段使用“*”代表。
where 後面跟查詢條件,指定在數據表中查詢什麼樣的數據,查詢條件根據個人需求可有可無。
查詢數據表中的所有數據:select * from 數據庫.數據表;
user表中有三個重要字段:host、user、password
- 查看錶結構
表中的所有字段名稱、字段類型、是否允許爲空,是否是數據表的主鍵,是否有默認值。
主鍵值是數據表中每一條數據的唯一標識,每個表中只能有一個主鍵,但是允許有聯合主鍵,主鍵值不能爲空。
- 數據庫加固
將mysql庫中user表中代表本機的三條數據,host字段爲localhost、127.0.0.1以及::1並且對應的user字段爲root的幾條數據設置上相同的密碼或者只留下一條其餘沒有密碼的數據全刪除掉 - 創建數據庫
命令:create database 數據庫名;
- 創建數據表
創建數據表時需指定在哪一個數據庫下面創建數據表。有兩種方式,一種是創建數據表之前使用use語句指定數據庫,第二種是創建數據表的語句中的表名使用“數據庫.數據表”的形式來表示。
命令:create table 數據庫名.表名 (字段名 字段類型(字段長度),…,primary key(字段名));
- 修改表結構-添加字段
命令:alter table 數據庫名.數據表名 add 字段名 字段值 字段類型(字段長度) [first | after 字段名]
- 修改表結構-修改字段
命令:alter table 數據庫名.數據表名 modify 字段名 字段值 字段類型(字段長度) [first | after 字段名]
- 修改表結構-刪除字段
命令:alter table 數據庫名.數據表名 drop 字段名;
- 數據操作-添加數據
命令:insert into 數據庫名.數據表名 [字段名,…] values (字段值,…)
- 數據操作-更新數據
命令:update 表名 set 字段名=“字段值” where 字段名=“字段值”;
- 數據操作-刪除數據
命令:delete from 表名 where 字段名=“字段值” ;
- MySQL數據庫備份
- 備份表文件(*.frm、*.MYD、*.MYI)
Linux操作系統中mysql數據庫文件的存儲路徑:/var/lib/mysql(該路徑是mysql的默認安裝目錄,並不是絕對的,可以在mysql的配置文件中修改該路徑)
windows操作系統中mysql數據庫文件存儲路徑:MySQL安裝目錄下的data目錄中 - 命令字備份
mysqldump -u root -p密碼 數據庫名 數據表名 > /tmp/數據庫名_數據表名.sql
恢復備份:mysql -u root -p密碼 數據庫名 < /tmp/數據庫名_數據表名.sql
- 刪庫跑路
命令:drop table 數據表名;
命令:drop database 數據庫名; - 用戶管理
創建用戶
命令:CREATE USER ‘username’@‘host’ IDENTIFIED BY ‘password’;
host:允許用戶從拿一臺機器登錄
刪除用戶
命令:DROP USER ‘username’@‘host’;
- 權限管理
授權:grant 權限種類 on 數據庫名.數據表名 to ‘username’@‘host’ identified by “password”;
權限種類:select delete update create drop等,多個權限之間可以使用逗號隔開,所有權限可以用all privileges代替。
設置用戶張三對kaso.test擁有查詢權限
設置張三對kaso.test的所有權限
撤權:revoke 權限種類 on 數據庫名.數據表名 from ‘username’@‘host’;
撤銷zhangsan對kaso.test的update權限
- root用戶密碼破解
限制條件:需要MySQL數據庫停止工作,而且必須是Linux操作系統的root用戶纔有權限。
- 以安全模式啓動MySQL
命令:mysqld_safe --skip-grant(跳過權限驗證)
mysql -u root - 修改root用戶密碼
命令:update mysql.user set password=password(“新密碼”) where user = “root”;
3. 退出安全模式,啓動mysql服務,重新登陸。