這篇文章主要是寫給小白看的,從mysql基礎(chǔ)為大家講起。
mysql簡(jiǎn)介
1、什么是數(shù)據(jù)庫(kù) ?
數(shù)據(jù)庫(kù)(Database)是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù),它產(chǎn)生于距今六十多年前,隨著信息技術(shù)和市場(chǎng)的發(fā)展,特別是二十世紀(jì)九十年代以后,數(shù)據(jù)管理不再僅僅是存儲(chǔ)和管理數(shù)據(jù),而轉(zhuǎn)變成用戶所需要的各種數(shù)據(jù)管理的方式。數(shù)據(jù)庫(kù)有很多種類型,從最簡(jiǎn)單的存儲(chǔ)有各種數(shù)據(jù)的表格到能夠進(jìn)行海量數(shù)據(jù)存儲(chǔ)的大型數(shù)據(jù)庫(kù)系統(tǒng)都在各個(gè)方面得到了廣泛的應(yīng)用。
主流的數(shù)據(jù)庫(kù)有:sqlserver,mysql,Oracle、SQLite、Access、MS SQL Server等,本文主要講述的是mysql
2、數(shù)據(jù)庫(kù)管理是干什么用的?
a. 將數(shù)據(jù)保存到文件或內(nèi)存
b. 接收特定的命令,然后對(duì)文件進(jìn)行相應(yīng)的操作
PS:如果有了以上管理系統(tǒng),無須自己再去創(chuàng)建文件和文件夾,而是直接傳遞 命令 給上述軟件,讓其來進(jìn)行文件操作,他們統(tǒng)稱為數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS,Database Management System)
mysql安裝
MySQL是一種開放源代碼的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS),MySQL數(shù)據(jù)庫(kù)系統(tǒng)使用最常用的數(shù)據(jù)庫(kù)管理語言--結(jié)構(gòu)化查詢語言(SQL)進(jìn)行數(shù)據(jù)庫(kù)管理。在 WEB 應(yīng)用方面MySQL是最好的 RDBMS (Relational Database Management System,關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)) 應(yīng)用軟件之一。
使用mysql必須具備一下條件
a. 安裝MySQL服務(wù)端
b. 安裝MySQL客戶端
b. 【客戶端】連接【服務(wù)端】
c. 【客戶端】發(fā)送命令給【服務(wù)端MySQL】服務(wù)的接受命令并執(zhí)行相應(yīng)操作(增刪改查等)
1、下載地址:http://dev.mysql.com/downloads/mysql/
2、安裝
注:以上兩個(gè)鏈接有完整的安裝方式,擼主也是參考他的安裝的,安裝完以后mysql.server start啟動(dòng)mysql服務(wù)
mysql操作
一、連接數(shù)據(jù)庫(kù)
mysql -u user -p 例:mysql -u root -p
常見錯(cuò)誤如下:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2), it means that the MySQL server daemon (Unix) or service (Windows) is not running.
退出連接:
QUIT 或者 Ctrl+D
二、 查看數(shù)據(jù)庫(kù),創(chuàng)建數(shù)據(jù)庫(kù),使用數(shù)據(jù)庫(kù)查看數(shù)據(jù)庫(kù): show databases;
默認(rèn)數(shù)據(jù)庫(kù):
mysql - 用戶權(quán)限相關(guān)數(shù)據(jù)
test - 用于用戶測(cè)試數(shù)據(jù)
information_schema - MySQL本身架構(gòu)相關(guān)數(shù)據(jù)
創(chuàng)建數(shù)據(jù)庫(kù):
create database db1 DEFAULT CHARSET utf8 COLLATE utf8_general_ci; # utf8編碼
create database db1 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; # gbk編碼
使用數(shù)據(jù)庫(kù): use db1;
顯示當(dāng)前使用的數(shù)據(jù)庫(kù)中所有表:SHOW TABLES;
三、用戶管理
創(chuàng)建用戶
create user '用戶名'@'IP地址' identified by '密碼';
刪除用戶
drop user '用戶名'@'IP地址';
修改用戶
rename user '用戶名'@'IP地址'; to '新用戶名'@'IP地址';;
修改密碼
set password for '用戶名'@'IP地址' = Password('新密碼')
注:用戶權(quán)限相關(guān)數(shù)據(jù)保存在mysql數(shù)據(jù)庫(kù)的user表中,所以也可以直接對(duì)其進(jìn)行操作(不建議)
四、權(quán)限管理
mysql對(duì)于權(quán)限這塊有以下限制:
all privileges 除grant外的所有權(quán)限
select 僅查權(quán)限
select,insert 查和插入權(quán)限
...
usage 無訪問權(quán)限
alter 使用alter table
alter routine 使用alter procedure和drop procedure
create 使用create table
create routine 使用create procedure
create temporary tables 使用create temporary tables
create user 使用create user、drop user、rename user和revoke all privileges
create view 使用create view
delete 使用delete
drop 使用drop table
execute 使用call和存儲(chǔ)過程
file 使用select into outfile 和 load data infile
grant option 使用grant 和 revoke
index 使用index
insert 使用insert
lock tables 使用lock table
process 使用show full processlist
select 使用select
show databases 使用show databases
show view 使用show view
update 使用update
reload 使用flush
shutdown 使用mysqladmin shutdown(關(guān)閉MySQL)
super ??使用change master、kill、logs、purge、master和set global。還允許mysqladmin????調(diào)試登陸
replication client 服務(wù)器位置的訪問
replication slave 由復(fù)制從屬使用
對(duì)于數(shù)據(jù)庫(kù)及內(nèi)部其他權(quán)限如下:
數(shù)據(jù)庫(kù)名.* 數(shù)據(jù)庫(kù)中的所有
數(shù)據(jù)庫(kù)名.表 指定數(shù)據(jù)庫(kù)中的某張表
數(shù)據(jù)庫(kù)名.存儲(chǔ)過程 指定數(shù)據(jù)庫(kù)中的存儲(chǔ)過程
*.* 所有數(shù)據(jù)庫(kù)
對(duì)于用戶和IP的權(quán)限如下:
用戶名@IP地址 用戶只能在改IP下才能訪問
用戶名@192.168.1.% 用戶只能在改IP段下才能訪問(通配符%表示任意)
用戶名@% 用戶可以再任意IP下訪問(默認(rèn)IP地址為%)
1、查看權(quán)限:
show grants for '用戶'@'IP地址'
2、授權(quán)
grant 權(quán)限 on 數(shù)據(jù)庫(kù).表 to '用戶'@'IP地址'
3、取消授權(quán)
revoke 權(quán)限 on 數(shù)據(jù)庫(kù).表 from '用戶'@'IP地址'
授權(quán)實(shí)例如下:
grant all privileges on db1.tb1 TO '用戶名'@'IP'
grant select on db1.* TO '用戶名'@'IP'
grant select,insert on *.* TO '用戶名'@'IP'
revoke select on db1.tb1 from '用戶名'@'IP'
文章來自:博客園/張巖林