MySQL之庫操做

一.系統數據庫

  • information_schema :虛擬庫,不佔用磁盤空間,存儲的是數據庫啓動後的一些參數,如用戶表信息、列信息、權限信息、字符信息等
  • mysql:核心數據庫,裏面包含用戶、權限、關鍵字等信息。不能夠刪除
  • performance_schema:mysql 5.5版本後添加的新庫,主要收集系統性能參數,記錄處理查詢請求時發生的各類事件、鎖等現象 
  • sys : mysql5.7版本新增長的庫,經過這個庫能夠快速的瞭解系統的元數據信息,能夠方便DBA發現數據庫的不少信息,解決性能瓶頸都提供了巨大幫助

二.數據庫操做

1.建立數據庫mysql

1
#語法: CREATE DATABASE db_name charset utf8;
#建立一個名字爲 db_name 的數據庫,並指定當前庫的編碼集爲utf8 CREATE DATABASE db_name charset utf8;

備註:建立數據庫時要指定數據庫編碼類型sql

2.查看數據庫數據庫

複製代碼
#查詢當前用戶下全部數據庫
show databases;

#查看建立數據庫的信息
show create database db_name; #查詢當前操做所在的數據庫名稱 select database();
複製代碼

3.選擇數據庫服務器

1
USE db_name;

4.刪除數據庫ide

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地址'      -- 取消權限

 

複製代碼
#建立新用戶
create user 'alex'@'localhost' identified by '123456'; #受權方式一:爲alex受權 db1數據庫下的全部表的 查詢.更新.修改權限 grant select,update,delete on db1.* to 'alex'@'localhost'; #受權方式二:爲alex 受權 全部庫的全部權限(除grant權限外) grant all privileges on *.* to 'alex'@'localhost'; #刷新用戶權限 flush privileges;
複製代碼
 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 命令spa

1
mysqladmin -u用戶名 -p密碼 password 新密碼

方式二: 直接設置用戶密碼 調試

1
2
3
set password for '用戶名' @ 'IP' = password ( '新密碼' );
             
flush privileges ;

方式三:修改mysql庫下的user表code

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'
mysql配置文件

 

 注意:若是使用的是mysql5.7版本,則須要建立my.ini文件,5.7版本之前數據庫自帶my,ini文件,直接改動編碼便可.

 目前最穩定與經常使用的數據庫版本爲(5.6版本與5.5版本)

相關文章
相關標籤/搜索