用戶操作:
1、create user 'Faye'@'127.0.0.1'IDENTIFIED BY '123'? #添加一個用戶名字為Faye的用戶,127.0.0.1為本機的ip,123為密碼
? ? 補:create user 'Faye'@'%' IDENTIFIED BY '123'? #添加一個用戶名字為Faye的用戶,‘%’的意思為所有人都可以連接Faye這個用戶,123為密碼
2、show grants for 'Faye'@'127.0.0.1'; #查看Faye這個用戶的權限
3、grant select,update on db1.stu_info to 'Faye'@'127.0.0.1';? #將另外一個用戶中的庫下的表db1中的stu_info的查找(select)和修改(update)的權限賦給Faye這個用戶
4、grant all privileges on *.* to 'Faye'@'127.0.0.1'; #給'Faye'@'127.0.0.1'用戶下的所偶有庫所有表授權,*.*表示所有庫所有表
5、revoke all privileges on *.* from 'Faye'@'127.0.0.1' #移除Faye用戶下所有庫所有表的權限
6、drop user 'Faye'@'127.0.0.1';? #移除用戶'Faye'@'127.0.0.1'
7、rename user 'Faye'@'127.0.0.1' to 'min@127.0.0.1'? #修改?'Faye'@'127.0.0.1' t為'min@127.0.0.1'? 即只是修改了用戶名
?
8、實際操作,開放外部訪問權限
create user 'Faye'@'%' IDENTIFIED BY '123';? #添加一個所有人都可以連接的用戶Faye 密碼為123
grant all privileges on *.* to 'Faye'@'%';? #對方可以連接Faye中所有的庫和所有的表
flush?privileges;? ?#刷新一下才可以生效,否則只對本機可用
9、修改密碼方式一:用mysqladmin為用戶修改密碼
10、修改密碼方式二:
set password for 'Faye'@'%' = password('166'); #將'Faye@'@'%'用戶的密碼修改為166
?
11、修改密碼方式三:update mysql.user set password =password('123') where user='Faye'? ?(用于mysql5.6版本)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? flush PRIVILEGES? ? ?#刷新一下才會生效
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? update mysql.user set authentication_string =password('123') where user='Faye'? ? ?(用于mysql5.7版本)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? flush PRIVILEGES? ? ?#刷新一下才會生效
以下轉自博客:http://www.cnblogs.com/wangfengming/articles/7875313.html#label1
閱讀目錄:
- 一 系統數據庫
- 二 數據庫操作
- 三 命名規范
- 四 用戶權限
- 五.修改密碼
- 六?忘記密碼
- 七?中文亂碼問題
一.系統數據庫
- information_schema :虛擬庫,不占用磁盤空間,存儲的是數據庫啟動后的一些參數,如用戶表信息、列信息、權限信息、字符信息等
- mysql:核心數據庫,里面包含用戶、權限、關鍵字等信息。不可以刪除
- performance_schema:mysql 5.5版本后添加的新庫,主要收集系統性能參數,記錄處理查詢請求時發生的各種事件、鎖等現象?
- sys : mysql5.7版本新增加的庫,通過這個庫可以快速的了解系統的元數據信息,可以方便DBA發現數據庫的很多信息,解決性能瓶頸都提供了巨大幫助
二.數據庫操作
1.創建數據庫
1 | #語法:? CREATE ?DATABASE ?db_name charset utf8; |


#創建一個名字為 db_name 的數據庫,并指定當前庫的編碼集為utf8 CREATE DATABASE db_name charset utf8;
?
2.查看數據庫
#查詢當前用戶下所有數據庫
show databases;#查看創建數據庫的信息
show create database db_name;#查詢當前操作所在的數據庫名稱
select database();
3.選擇數據庫
1 | USE db_name; |
4.刪除數據庫
1 | DROP ?DATABASE ?db_name; |
?三.命名規范
可以由字母、數字、下劃線、@、#、$
區分大小寫
唯一性
不能使用關鍵字如: CREATE SELECT
不能單獨使用數字
最長128位
四.用戶權限
1.用戶管理
1 2 3 4 5 6 | 創建用戶 ???? create ?user ?'用戶名' @ 'IP地址' ?identified? by ?'密碼' ; 刪除用戶 ???? drop ?user ?'用戶名' @ 'IP地址' ; 修改用戶 ???? rename? user ?'用戶名' @ 'IP地址' ;? to ?'新用戶名' @ 'IP地址' ; |
2.授權管理
1 2 3 | show grants? for ?'用戶' @ 'IP地址' ??????????????????-- 查看權限 grant ??權限? on ?數據庫.表? to ???'用戶' @ 'IP地址' ??????-- 授權 revoke ?權限? on ?數據庫.表? from ?'用戶' @ 'IP地址' ??????-- 取消權限 |


1 #創建新用戶 2 create user 'alex'@'localhost' identified by '123456'; 3 4 #授權方式一:為alex授權 db1數據庫下的所有表的 查詢.更新.修改權限 5 grant select,update,delete on db1.* to 'alex'@'localhost'; 6 7 #授權方式二:為alex 授權 所有庫的所有權限(除grant權限外) 8 grant all privileges on *.* to 'alex'@'localhost'; 9 10 #刷新用戶權限 11 flush privileges;


all privileges 除grant外的所有權限select 僅查權限select,insert 查和插入權限...usage 無訪問權限alter 使用alter tablealter routine 使用alter procedure和drop procedurecreate 使用create tablecreate routine 使用create procedurecreate temporary tables 使用create temporary tablescreate user 使用create user、drop user、rename user和revoke all privilegescreate view 使用create viewdelete 使用deletedrop 使用drop tableexecute 使用call和存儲過程file 使用select into outfile 和 load data infilegrant option 使用grant 和 revokeindex 使用indexinsert 使用insertlock tables 使用lock tableprocess 使用show full processlistselect 使用selectshow databases 使用show databasesshow view 使用show viewupdate 使用updatereload 使用flushshutdown 使用mysqladmin shutdown(關閉MySQL)super 使用change master、kill、logs、purge、master和set global。還允許mysqladmin調試登陸replication client 服務器位置的訪問replication slave 由復制從屬使用
?
五.修改密碼
方式一:?mysqladmin 命令
1 | mysqladmin -u用戶名 -p密碼? password ?新密碼 |
方式二: 直接設置用戶密碼
1 2 3 | set ?password ?for ?'用戶名' @ 'IP' ?=? password ( '新密碼' ); ???????????? ?flush? privileges ; |
方式三:修改mysql庫下的user表
1 2 3 4 5 6 7 | 5.7版本修改密碼方式: update ?mysql. user ?set ?authentication_string= password ( '新密碼' )? where ?user =? '用戶名' ??????????flush? privileges ;? -- 刷新權限 ???????????? ?5.6 版本 update ?mysql. user ?set ?password ?=? password ( '新密碼' )? where ?user =? '用戶名' flush? privileges ;? -- 刷新權限 |
六.忘記密碼(只對本機生效)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 在忘記root密碼的時候,可以這樣: ? #1.首先打開cmd 窗口,關閉mysql服務 ???? net stop mysql ? #2.然后跳過權限檢查,啟動mysql,輸入命令 ???? mysqld? --skip-grant-tables ? #3.重新打開一個新的cmd窗口,啟動客戶端(已跳過權限檢查,可以直接登錄) ???? mysql ? #4.直接進來,修改密碼 update ?mysql. user ?set ?authentication_string= password ( '123456' )? where ?user = 'root' ; ? #5. 刷新權限 flush? privileges ; |
七.中文亂碼問題
1.查詢字符編碼
1 | SHOW VARIABLES? LIKE ?'char%' ; |
2.制服亂碼


#修改方法: #1. 創建my.ini文件,放在mysql根路徑下 #2. 在該文件中添加以下內容即可: #3.添加此文件后需要重新啟動服務,以保證此文件生效 ------------------------------------------------------------ [client]default-character-set=utf8[mysql]#設置mysql客戶端默認字符集 default-character-set=utf8[mysqld]#設置3306端口 port = 3306#允許最大連接數 max_connections=200#服務端使用的字符集默認為8比特編碼的latin1字符集 character-set-server=utf8#創建新表時將使用的默認存儲引擎 default-storage-engine=INNODB#解決mysql在執行sql語句后出現1055錯誤,sql_mode = only_full_group_by不相容 sql_mode='NO_ENGINE_SUBSTITUTION'
?
?注意:如果使用的是mysql5.7版本,則需要創建my.ini文件,5.7版本以前數據庫自帶my,ini文件,直接改動編碼即可.
?目前最穩定與常用的數據庫版本為(5.6版本與5.5版本)
?
?
?
?
?
?
?
?