標籤:security root使用者 Owner 檢索 多個 nload 開機 data 選項
一、資料庫簡介1、資料庫
資料庫(database,DB)是指長期儲存在電腦內的,有組織,可共用的資料的集合。資料庫中的資料按一定的數學模型組織、描述和儲存,具有較小的冗餘,較高的資料獨立性和易擴充性,並可為各種使用者共用。
2、資料庫管理系統軟體
資料庫管理系統(Database Management System)是一種操縱和管理資料庫的大型軟體,用於建立、使用和維護資料庫,簡稱DBMS。它對資料庫進行統一的管理和控制,以保證資料庫的安全性和完整性。使用者通過DBMS訪問資料庫中的資料,資料庫管理員也通過dbms進行資料庫的維護工作。它可使多個應用程式和使用者用不同的方法在同時或不同時刻去建立,修改和詢問資料庫。大部分DBMS提供資料定義語言 (Data Definition Language)DDL(Data Definition Language)和資料操作語言DML(Data Manipulation Language),供使用者定義資料庫的模式結構與許可權約束,實現對資料的追加、刪除等操作。
資料庫管理系統是資料庫系統的核心,是管理資料庫的軟體。資料庫管理系統就是實現把使用者意義下抽象的邏輯資料處理,轉換成為電腦中具體的物理資料處理的軟體。有了資料庫管理系統,使用者就可以在抽象意義下處理資料,而不必顧及這些資料在電腦中的布局和物理位置。
常見的資料庫管理軟體:甲骨文的oracle,IBM的db2,sql server, Access,Mysql(開源,免費,跨平台).
3、資料庫系統
資料庫系統DBS(Data Base System,簡稱DBS)通常由軟體、資料庫和資料管理員組成。其軟體主要包括作業系統、各種宿主語言、公用程式以及資料庫管理系統。資料庫由資料庫管理系統統一管理,資料的插入、修改和檢索均要通過資料庫管理系統進行。資料管理員負責建立、監控和維護整個資料庫,使資料能被任何有權使用的人有效使用。
二、MySQL1、mysql的管理安裝
linux:
--yum -y install mariadb mariadb-serverOR--yum -y install mysql mysql-server
win:
--http://dev.mysql.com/downloads/mysql/
啟動
--service mysqld start #開啟--chkconfig mysqld on #設定開機自啟OR--systemctl start mariadb--systemctl enable mariadb
查看
-- ps aux |grep mysqld #查看進程-- netstat -an |grep 3306 #查看連接埠
設定密碼
-- mysqladmin -uroot password ‘123‘ #設定初始密碼,初始密碼為空白因此-p選項沒有用-- mysqladmin -u root -p123 password ‘1234‘ #修改root使用者密碼
登入
-- mysql #本地登入,預設使用者root,空密碼,使用者為[email protected]-- mysql -uroot -p1234 #本地登入,指定使用者名稱和密碼,使用者為[email protected]-- mysql -uroot -p1234 -h 192.168.31.95 #遠程登入,使用者為[email protected]
mysql的常用命令
-- -- 啟動mysql服務與停止mysql服務命令:-- -- net start mysql-- net stop mysql-- -- -- 登陸與退出命令:-- -- mysql -h 伺服器IP -P 連接埠號碼 -u 使用者名稱 -p 密碼 --prompt 命令提示字元 --delimiter 指定分隔字元-- mysql -h 127.0.0.1 -P 3306 -uroot -p123-- quit------exit----\q;-- -- -- \s; ------my.ini檔案:[mysql] default-character-set=gbk [mysqld] character-set-server=gbk-- -- prompt 命令提示字元(\D:當前日期 \d:當前資料庫 \u:目前使用者)-- -- \T(開始日誌) \t(結束日誌)-- -- show warnings;-- -- help() ? \h-- -- \G;-- -- select now();-- select version();-- select user;-- -- \c 取消命令-- -- delimiter 指定分隔字元
忘記密碼怎麼辦?方法1:啟動mysql時,跳過授權表
[[email protected] ~]# service mysqld stop[[email protected] ~]# mysqld_safe --skip-grant-table &[[email protected] ~]# mysqlmysql> select user,host,password from mysql.user;+----------+-----------------------+-------------------------------------------+| user | host | password |+----------+-----------------------+-------------------------------------------+| root | localhost | *A4B6157319038724E3560894F7F932C8886EBFCF || root | localhost.localdomain | || root | 127.0.0.1 | || root | ::1 | || | localhost | || | localhost.localdomain | || root | % | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |+----------+-----------------------+-------------------------------------------+mysql> update mysql.user set password=password("123") where user="root" and host="localhost";mysql> flush privileges;mysql> exit[[email protected] ~]# service mysqld restart[[email protected] ~]# mysql -uroot -p123
方法2(刪庫):
刪除與許可權相關的庫mysql,所有的授權資訊都丟失,主要用於測試資料庫或者剛剛建庫不久沒有授權資料的情況(從刪庫到跑路)[[email protected] ~]# rm -rf /var/lib/mysql/mysql[[email protected] ~]# service mysqld restart[[email protected] ~]# mysql
2、sql語句
sql是Structured Query Language(結構化查詢語言 (SQL))的縮寫。SQL是專為資料庫而建立的操作命令集,是一種功能齊全的資料庫語言。
在使用它時,只需要發出“做什麼”的命令,“怎麼做”是不用使用者考慮的。SQL功能強大、簡單易學、使用方便,已經成為了資料庫操作的基礎,並且現在幾乎所有的資料庫均支援sql。
2.1sql規範
<1> 在資料庫系統中,SQL語句不區分大小寫(建議用大寫) 。但字串常量區分大小寫。建議命令大寫,表名庫名小寫;
<2> SQL語句可單行或多行書寫,以“;”結尾。關鍵詞不能跨多行或簡寫。
<3> 用空格和縮排來提高語句的可讀性。子句通常位於獨立行,便於編輯,提高可讀性。
SELECT * FROM tb_table WHERE NAME="YUAN";
<4> 注釋:單行注釋:--
多行注釋:/*......*/
<5>sql語句可以折行操作
<6> DDL,DML和DCL
-- --SQL中 DML、DDL、DCL區別 .-- -- DML(data manipulation language):-- 它們是SELECT、UPDATE、INSERT、DELETE,就象它的名字一樣,這4條命令是用來對資料庫裡的-- 資料進行操作的語言-- -- -- DDL(data definition language):-- DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定義或改變表(TABLE)-- 的結構,資料類型,表之間的連結和約束等初始化工作上,他們大多在建立表時使用-- -- -- DCL(Data Control Language):-- 是資料庫控制功能。是用來設定或更改資料庫使用者或角色許可權的語句,包括(grant,deny,revoke等)-- 語句。在預設狀態下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人員才有權-- 力執行DCL
-- --SQL中 DML、DDL、DCL區別 .-- -- DML(data manipulation language):-- 它們是SELECT、UPDATE、INSERT、DELETE,就象它的名字一樣,這4條命令是用來對資料庫裡的-- 資料進行操作的語言-- -- -- DDL(data definition language):-- DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定義或改變表(TABLE)-- 的結構,資料類型,表之間的連結和約束等初始化工作上,他們大多在建立表時使用-- -- -- DCL(Data Control Language):-- 是資料庫控制功能。是用來設定或更改資料庫使用者或角色許可權的語句,包括(grant,deny,revoke等)-- 語句。在預設狀態下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人員才有權-- 力執行DCL
2.2關於資料庫操作的sql語句
-- 1.建立資料庫(在磁碟上建立一個對應的檔案夾) create database [if not exists] db_name [character set xxx] -- 2.查看資料庫 show databases;查看所有資料庫 show create database db_name; 查看資料庫的建立方式-- 3.修改資料庫 alter database db_name [character set xxx] -- 4.刪除資料庫 drop database [if exists] db_name; -- 5.使用資料庫 切換資料庫 use db_name; -- 注意:進入到某個資料庫後沒辦法再退回之前狀態,但可以通過use進行切換 查看當前使用的資料庫 select database();
2.3資料表的增刪改查建立一張表
-- 文法create table tab_name( field1 type[完整性條件約束條件], field2 type, ... fieldn type )[character set xxx];
-- 建立一個員工表employee create table employee( id int primary key auto_increment , name varchar(20), gender bit default 1, -- gender char(1) default 1 ----- 或者 TINYINT(1) birthday date, job varchar(20), salary double(4,2) unsigned, resume text -- 注意,這裡作為最後一個欄位不加逗號 ); /* 約束: primary key (非空且唯一) :能夠唯一區分出目前記錄的欄位稱為主鍵! unique not null auto_increment :用於主鍵欄位,主鍵欄位必須是數字類型 */
查看錶資訊
desc tab_name 查看錶結構 show columns from tab_name 查看錶結構 show tables 查看當前資料庫中的所有的表 show create table tab_name 查看當前資料庫表建表語句
修改表結構
-- (1)增加列(欄位) alter table tab_name add [column] 列名 類型[完整性條件約束條件][first|after 欄位名]; alter table user add addr varchar(20) not null unique first/after username; #添加多個欄位 alter table users2 add addr varchar(20), add age int first, add birth varchar(20) after name; -- (2)修改一列類型 alter table tab_name modify 列名 類型 [完整性條件約束條件][first|after 欄位名]; alter table users2 modify age tinyint default 20; alter table users2 modify age int after id; -- (3)修改列名 alter table tab_name change [column] 列名 新列名 類型 [完整性條件約束條件][first|after 欄位名]; alter table users2 change age Age int default 28 first; -- (4)刪除一列 alter table tab_name drop [column] 列名; -- 思考:刪除多列呢?刪一個填一個呢? alter table users2 add salary float(6,2) unsigned not null after name, drop addr; -- (5)修改表名 rename table 表名 to 新表名; -- (6)修該表所用的字元集 alter table student character set utf8;
刪除表
drop table tab_name;
MySQL(1)