標籤:授權 load 使用者表 不可 var name 資料資訊 for character
一、系統資料庫
- information_schema :虛擬庫,不佔用磁碟空間,儲存的是資料庫啟動後的一些參數,如使用者表資訊、列資訊、許可權資訊、字元資訊等
- mysql:核心資料庫,裡麵包含使用者、許可權、關鍵字等資訊。不可以刪除
- performance_schema:mysql 5.5版本後添加的新庫,主要收集系統績效參數,記錄處理查詢請求時發生的各種事件、鎖等現象
- sys : mysql5.7版本新增加的庫,通過這個庫可以快速的瞭解系統的中繼資料資訊,可以方便DBA探索資料庫的很多資訊,解決效能瓶頸都提供了巨大協助
二、資料庫操作1.建立資料庫
#文法: CREATE DATABASE db_name charset utf8;
說明:‘db_name‘ 是資料庫名字,並且指定當前庫的編碼集為utf8
2.查看資料庫
#查詢目前使用者下所有資料庫show databases;#查看建立資料庫的資訊show create database db_name;#查詢當前操作所在的資料庫名稱select database();
3.選擇資料庫
USE db_name; #一般在終端上使用
4.刪除資料庫
DROP DATABASE db_name;
三.命名規範
可以由字母、數字、底線、@、#、$區分大小寫唯一性不能使用關鍵字如: CREATE SELECT不能單獨使用數字最長128位
四.使用者權限1.使用者管理
建立使用者 create user ‘使用者名稱‘@‘IP地址‘ identified by ‘密碼‘;刪除使用者 drop user ‘使用者名稱‘@‘IP地址‘;修改使用者 rename user ‘使用者名稱‘@‘IP地址‘; to ‘新使用者名稱‘@‘IP地址‘;
2.授權管理
show grants for ‘使用者‘@‘IP地址‘ -- 查看許可權grant 許可權 on 資料庫.表 to ‘使用者‘@‘IP地址‘ -- 授權revoke 許可權 on 資料庫.表 from ‘使用者‘@‘IP地址‘ -- 取消許可權
#建立新使用者create user ‘guo‘@‘127.0.0.1‘ identified ‘123456‘;#授權方式一:為guo授權 db1資料庫下的所有表的 查詢.更新.修改許可權grant select,update,delete on db1.* to ‘guo‘@‘127.0.0.1‘;#授權方式二:為guo 授權 所有庫的所有許可權(除grant許可權外)grant all privileges on *.* to ‘guo‘@‘127.0.0.1‘;#重新整理使用者權限flush privileges;
建立使用者及授權例子
原生IP地址可以寫成 localhost
說明
all privileges 除grant外的所有許可權 select 僅查許可權 select,insert 查和插入許可權 ... usage 無存取權限 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和預存程序 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(關閉MySQL) super 使用change master、kill、logs、purge、master和set global。還允許mysqladmin調試登陸 replication client 伺服器位置的訪問 replication slave 由複製從屬使用
許可權列表五.修改密碼
方式一: mysqladmin 命令
mysqladmin -u使用者名稱 -p密碼 password 新密碼
方式二: 直接設定使用者密碼
set password for ‘使用者名稱‘@‘IP‘ = password(‘新密碼‘); flush privileges;
方式三:修改mysql庫下的user表
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; -- 重新整理許可權
六.忘記密碼
在忘記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.查詢字元編碼
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版本)
MYSQL之庫操作