国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

mysql用戶管理

IT那活兒 / 2122人閱讀
mysql用戶管理


一. 登錄MySQL

要登錄到MySQL只需要使用如下命令。

mysql -h localhost -u root -p

localhost:IP地址;

root:用戶名;

database:數據庫名(可以省略,如果有,跟在-p后面);

如果你發現這樣報mysql不是有效命令。那么有兩種解決方法:

我的電腦-->屬性-->高級-->環境變量-->系統變量-->配置一個Path變量,值為MySQL安裝文件夾里的bin目錄;

  • 先用cd命令定位到MySQL安裝文件夾的根目錄,然后再輸入以上命令;

  • 開始->所有程序->MySQL->MySQL Server 5.0->MySQL Command Line Client;

  • 當命令正確執行后,會提示輸入密碼,登錄成功后的界面如上圖所示。

以上圖顯示出了歡迎信息,其中還有以下信息說明如下:

Commands end with; or g:
mysql命名行下的命令以分號(;)或"g"來結束,遇到這個結束符就開始執行命令;

Your MySQL connection id is 24 Server version:5.0.67-community-nt
id表示MySQL的數據庫連接次數,后面是社區版,版本號等信息;

Type help; or h for help  
表示輸入help;或h可以看到幫助信息;

Type c to clear the buffer  
遇到c就會清屏;

也可以在-p后直接輸入密碼,-p與密碼之間沒有空格。


二. 更改MySQL配置

在開始菜單里,MySQL有三個小工具:

MySQL Command Line Client:
MySQL的命令行客戶端;

MySQL Server Instance Config Wizard:
配置向導;

Suninventory Registration:
注冊網頁鏈接;

啟動MySQL Server Instance Config Wizard能夠重新配置MySQL,但是要小心操作(這個留到第三部分)。

手動更改配置

用戶可以通過修改MySQL配置文件的方式來進行配置。在配置之前需要對MySQL的文件有一定的了解。在MySQL Server 5.0目錄下,MySQL的數據文件安裝在MySQL Server 5.0data目錄下。

安裝根目錄中有4個文件夾和一些文件,這些目錄說明如下:

  • bin:
    可執行文件,如mysql.exe、mysqld.exe等;

  • include:
    頭文件,如decimal.h、errmsg.h等;

  • lib:
    庫文件,分兩個文件夾,分別是opt和plugin;

  • share:
    字符集、語言信息;

在根目錄下,還有幾個.ini后綴的文件。其中只有my.ini是正在使用的。

  • my.ini:MySQL數據庫使用的配置文件,修改該文件即可修改配置;

  • my-huge.ini:適合超大型數據庫的配置文件;

  • my-large-ini:適合大型數據庫的配置文件;

  • my-medium.ini:適合中型數據庫的配置文件;

  • my-small.ini:適合小型數據庫的配置文件;

  • my-template.ini:配置文件的模板;

  • my-innodb-heavy-4G.ini:該配置文件只對InnoDB存儲引擎有效,而且服務器的內存不能小于4G;

其中,my.ini的主要參數及說明如下:

  • client:客戶端參數

  • password:用戶的登錄密碼,密碼存在該文件中,登錄時可以不輸入;

  • port:MySQL數據庫端口,默認端口是3306;


2. mysql客戶端參數

default-character-set:客戶端默認字符集如果希望支持中文,應該設為utf8或gbk,默認是latin1


3. mysqld服務器端參數

  • port:MySQL數據庫的端口,默認是3306;

  • basedir:MySQL的安裝路徑;

  • datadir:MySQL數據文件的存儲位置;

  • default-character-set:服務器端字符集;

  • default-storage-engine:默認存儲引擎;

  • sql-mode:SQL模式的參數,通過這個參數,可以設置檢驗SQL語句的嚴格程序;

  • max_connections:參數表示允許同時訪問MySQL服務器的最大連接數,有一個專為管理員保留;

  • query_cache_size:表示查詢時緩存的大小。緩存以前SELECT語句查詢過的信息;

  • table_cache:所有進程打開表的總數;

  • tmp_table_size:內存中臨時表的最大值;

  • thread_cache_size:保留客戶端線程的緩存大小;

  • myisam_max_sort_file_size:重建索引時,允許的最大臨時文件的大小,默認100G;

  • myisam_sort_buffer_size:重建索引時,最多能使用緩存的大小;

  • key_buffer_size:關鍵詞緩沖的大小,一般用于緩沖MyISM表的索引塊;

  • read_budder_size:MyiSAM全表掃描的緩沖大小;

  • read_rnd_buffer_size:排序好的數據存入的緩存區的大小;

  • sort_buffer_size:用于排序的緩存大小;


4. INNODB引擎參數

  • innodb_additional_mem_pool_size:附加的內存池大小;

  • innodb_flush_log_at_trx_commit:參數設置提交日志的時機(設置1、提交后寫到磁盤上);

  • innodb_log_buffer_size:存儲日志數據的緩沖區大小;

  • innodb_thread_concurrency:在InnoDB存儲引擎允許的線程最大數;


三. 免安裝的MySQL

官網上下載的zip結尾的就是免安裝MySQL,msi則是需要安裝的。

1. 文件介紹

  • bin:各種執行文件;

  • data:日志文件和數據庫文件;

  • Docs:版權信息、MySQL的更新日志和安裝信息;

  • Embedded:前入職服務器文件;

  • include:頭文件;

  • lib:庫文件;

  • mysql-test:測試有關的文件;

  • scripts:Perl語言編寫的實用工具腳本;

  • share:字符集和語言信息;

  • sql-bench:數據庫性能比較的信息和基準程序;


2. 創建my.ini文件

mysql文件夾下有多個ini文件,需要將其中一個復制到C:WINDOWS文JIANJIA下,并將其改名為my.ini。如果內存充裕,可以選擇大的,如my-larage.ini拷貝到c:WINDOWS,文件夾并改名為my.ini。


3. 修改my.ini文件

在C:WINDOWS文JIANJIA下打開my.ini文件,在[mysqld]這個組中加入如下兩條記錄:

basedir="C:/mysql/"
datadir="C:/mysql/data/"

除此之外,還要加入一個組和一條記錄:

[WindowsMySQLServer]
Server="C/mysql/bin/mysqld.exe"

組的名稱為WindowsMySQLServer,意思是Windows操作系統下的MySQL服務。Server參數表示MySQL服務端程序。"C:/mysql/bin/mysqld.exe"就是幅度段程序。


4. 設置MySQL服務

配置文件沒問題了,只需要將MySQL服務端程序添加到系統服務中。

在控制臺輸入如下命令并執行:

C:/mysql/bin/mysqld.exe -install

執行此命令后,會出現一個DOS窗口一閃而過。說明此命令已經執行成功,MySQL成功添加到系統服務。

環境變量,也需要像文章開篇那樣配置,才能快速啟動。

啟動和關閉mysql服務的命令如下:

  net start mysql

  net stop mysql


四. 刪除MySQL數據庫

如果是圖形化向導安裝的MySQL數據庫,則需要啟動MySQL Server Instance Config Wizard選擇Remove Instance選項。就可以刪除MySQL,但不完全。如果希望徹底刪除MySQL,需要使用MySQL的安裝文件(msi后綴那個),在安裝向導窗口中選擇Remove選項,就可以完全刪除MySQL數據庫。

如果是免安裝的MySQL,先應該在DOS窗口執行"c:/mysql/bin/mysqld.exe--remove"命令(假設安裝目錄是c:/mysql);當此命令完成后,在刪除整個目錄,然后在刪除C:Windows目錄下的my.ini就徹底刪除MySQL免安裝版了。

MySQL用戶管理:MySQL分為普通用戶與root用戶。這兩種用戶的權限不一樣。


1. 權限表

安裝MySQL時會自動安裝一個名為mysql的數據庫。mysql數據庫里面存儲的都是權限表。

1)User表

user表有39個字段。這些字段可以分為4類:

  • 用戶列;

  • 權限列;

  • 安全列;

  • 資源控制列;

2)用戶列

用戶列包括Host、User、Password,分別表示主機名、用戶名和密碼。登錄用的就是這個用戶名與密碼;

3)權限列

user表的權限列包括Select_priv、Insert_priv等以priv結尾的字段。

這些字段的值只有Y和N。Y表示該權限可以用到所有數據庫上;N表示該權限不能用到所有數據庫上;

通常,可以使用GRANT語句Wie用戶賦予一些權限,也可以通過Update語句更新user表的方式來設置權限;

不過,修改user表之后,一定要執行一下FLUSH PRIVILEGES,否則可能會出現如下錯誤:

Error (1133): Can’t find any matching row in the user table

Update修改權限:

UPDATE user SET Select_priv = N
WHERE Host = %

GRANT賦予權限

4)安全列

user表的安全列有4個字段:

  • ssl_type;

  • ssl_cipher;

  • x509_issuer;

  • x509_subject;

ssl用于加密;x509標準可以用來標識用戶。普通的發行版都沒有加密功能。可以使用SHOW VARIABLES LIKE have_openssl語句來查看是否具有ssl功能。如果取值為DISABLED,那么則沒有ssl加密功能。

5)資源控制列

user表的4個資源控制列是:

  • max_questions:每小時可以允許執行多少次查詢;

  • max_updates:每小時可以允許執行多少次更新;

  • max_connections:每小時可以建立多少連接;

  • max_user_connections:單個用戶可以同時具有的連接數。

  默認值為0,表示無限制。


2. db表和host表

db表存儲了某個用戶對一個數據庫的權限。

host表中存儲了某個主機對數據庫的操作權限,配合db表對給定主機上數據庫級操作權限做更細致的控制;但是很少用,新版本已經取消了host表;

1)用戶列

db表的用戶列有3個字段:

  • Host:主機名;

  • Db:數據庫名;

  • User:用戶名;

2) 權限列

db表:

  • Create_routine_priv:是否具有創建存儲過程權限;

  • Alter_routine_priv:是否具有修改存儲過程權限;

user表中的權限是針對所有數據庫的,如果user表中的Select_priv字段取值為Y,那么該用戶可以查詢所有數據庫中的表;

如果為某個用戶值設置了查詢test表的權限,那么user表的Select_priv字段的取值為N。而這個SELECT權限則記錄在db表中。db表中的Select_priv字段的取值將會是Y。

用戶先根據user表的內容獲取權限,然后再根據db表的內容獲取權限。

3) tables_priv表和columns_priv表

tables_priv:可以對單個表進行權限設置:

  • tables_priv表包含8個字段:

  • Host:主機名;

  • DB:數據庫名;

  • User:用戶名;

  • Table_name:表名

  • Table_priv:對表進行操作的權限(Select,Insert,Update,Delete,Create,Drop,Grant,References,Index,Alter)

  • Column_priv:對表中的數據列進行操作的權限(Select,Insert,Update,Rederences);

  • Timestamp:修改權限的事件

  • Grantor:權限的設置者

  • columns_priv:
    可以對單個數據列進行權限設置,有7個列,作用同上:
    Host、Db、User、Table_name、Column_name、Column_priv、Timestamp。

MySQL權限分配是按照user表-> db表 -> table_priv表 -> columns_priv表的順序進行分配的。

在數據庫系統中,先判斷user表中的值是否為Y,如果user表中的值是Y,就不需要檢查后面的表。如果user表為N,則一次檢查后面的表。

4) procs_priv表

  • procs_priv表可以對存儲過程和存儲函數進行權限設置。

  • procs_priv表包含8個字段,分別是:

  • Host:主機名;

  • Db:數據庫名;

  • User:用戶名;

  • Routine_name:存儲過程或函數名稱;

  • Routine_type:類型(取值有:FUNCTION或PROCEDURE);

  • Proc_priv:擁有的權限(Execute:執行;Alter Routine:修改;Grant:權限賦予);

  • Timestamp:字段存儲更新的時間;

  • Grantor:字段設置者;

賬戶管理: 賬戶管理是MySQL用戶管理最基本的內容。包括登錄,退出MySQL服務器、創建用戶、刪除用戶、密碼管理和權限管理等內容。

其中登錄方式非常簡單,在這個地址:
http://www.cnblogs.com/kissdodog/p/4154068.html


1. 新建普通用戶

在MySQL數據庫中,建立用戶有3種方式:

  • 使用CREATE USER語句來創建新的用戶;

  • 直接在mysql.user表中INSERT用戶;

  • 使用GRANT語句來新建用戶;

1) CREATE USER

使用CREATE USER語句創建用戶,必須要擁有CREATE USER權限。其格式如下:

CREATE USER user[IDENTIFIED BY [PASSWORD] password],
[user[IDENTIFIED BY [PASSWORD] password]]...
其中,user參數表示新建用戶的賬戶,user由用戶名(User)和主機名(Host)構成;IDENTIFIED BY關鍵字用來設置用戶的密碼;password參數表示用戶的密碼;如果密碼是一個普通的字符串,就不需要使用PASSWORD關鍵字。可以沒有初始密碼。

示例:

CREATE USER admin@% IDENTIFIED BY admin
執行之后user表會增加一行記錄,但權限暫時全部為‘N’。

2) 用INSERT語句新建普通用戶

可以使用INSERT語句直接將用戶的信息添加到mysql.user表。但必須擁有mysql.user表的INSERT權限。

另外,ssl_cipher、x509_issuer、x509_subject沒有值,必須要設置值,否則INSERT語句無法執行。

示例:

INSERT INTO mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_subject) VALUES(%,newuser1,PASSWORD(123456),,,)
  執行INSERT之后,要使用命令:
FLUSH PRIVILEGES
  命令來使用戶生效。


3)用GRANT語句來新建普通用戶

用GRANT來創建新的用戶時,能夠在創建用戶時為用戶授權。但需要擁有GRANT權限。

語法如下:

GRANT priv_type ON database.table
TO user[IDENTIFIED BY [PASSWORD] password]
[,user [IDENTIFIED BY [PASSWORD] password]...]
  • priv_type:參數表示新yoghurt的權限;

  • databse.table:參數表示新用戶的權限范圍;

  • user:參數新用戶的賬戶,由用戶名和主機構成;

  • IDENTIFIED BY關鍵字用來設置密碼;

  • password:新用戶密碼;

GRANT語句可以同時創建多個用戶。

GRANT SELECT ON *.* TO netUser@%

*.*與db.*的區別在于。*.*對所有數據庫生效,所以user表的SELECT會變為Y。而db.*user表為N,更改的是Db表。


2. 刪除普通用戶

1) DROP USER語句刪除普通用戶

需要擁有DROP USER權限。語法如下:

DROP USER user[,user]...

user是需要刪除的用戶,由用戶名(User)和主機名(Host)構成。

DROP USER newuser1@%


2) DELETE語句刪除普通用戶

可以使用DELETE語句直接將用戶的信息從mysql.user表中刪除。但必須擁有對mysql.user表的DELETE權限。

DELETE FROM mysql.user WHERE Host = % AND User = admin

刪除完成后,一樣要FLUSH PRIVILEGES才生效。


3. 修改密碼

1) 使用mysqladmin命令來修改root用戶的密碼

語法:

mysqladmin -u -username -p password "new_password"

新密碼(new_password)必須用括號括起來,單引號會報錯。

示例:

(注:這個待驗證,我怎么執行都不成功!)

2) 修改user表

UPDATE user表的passwor字段的值,也可以達到修改密碼的目的;

UPDATE user SET Password = PASSWORD(123) WHERE USER = myuser

FLUSH PRIVILEGES后生效。

3) 使用SET語句來修改密碼

使用root用戶登錄到MySQL服務器后,可以使用SET語句來修改密碼:

修改自己的密碼,不需要用戶名

SET PASSWORD = PASSWORD("123");

修改其他用戶密碼:

SET PASSWORD FOR myuser@%=PASSWORD("123456")

FOR 用戶名@主機名

4)GRANT語句來修改普通用戶的密碼

使用GRANT語句修改普通用戶的密碼,必須擁有GRANT權限。

GRANT priv_type ON database.table TO user [IDENTIFIED BY [PASSWORD] password]

示例:

GRANT SELECT ON *.* TO test3@% IDENTIFIED BY 123


5)忘記密碼的解決方案

如果root用戶密碼丟失了,會給用戶造成很大的麻煩。但是,可以通過某種特殊方法登錄到root用戶下,然后修改密碼。

  • 使用--skip-grant-tables選項啟動MySQL服務

    該選項將使MySQL服務器停止權限判斷,任何用戶都能夠訪問數據庫。

    在Windows操作系統下,使用mysqlid或mysqlid-nt來啟動MySQL服務。

    mysqld命令:
    mysqld --skip-grant-tables


    mysqld-nt命令:
    mysqld-nt --skip-grant-tables

    net start mysql命令:
    net start mysql --skip-grant-tables

  • 登錄root用戶,并且設置新密碼

    mysql -u root

    必須使用UPDATE語句更新mysql數據庫下的user表,而不能使用SET語句,因為--skip-grant-tables不能使用SET語句。

    修改完密碼以后,FLUSH PRIVILEGES語句加載權限表,新密碼即生效。


三. 權限管理

1. MySQL的各種權限

 

2. 授權

GRANT語法如下:

GRANT priv_type [(column_list)] ON database.table
TO user [IDENTIFIED BY [PASSWORD] password]
[,user [IDENTIFIED BY [PASSWORD] password]]...
WITH with_option[with_option]
  • priv_type參數表示權限類型;

  • column_list:
    參數表示權限作用于哪些列上,沒設置則位于整個表上;

  • user參數由用戶名和主機名構成;
    形式是"username@hostname";

  • IDENTIFIED BY參數用于為用戶設置密碼;

  • password:用戶新密碼;
    WITH關鍵字后面帶有一個或多個with_option參數。有5個選項:

  • GRANT OPTION:
    被授權的用戶可以將這些權限賦予給別的用戶;

  • MAX_QUERIES_PER_HOUR count:
    設置沒消失可以允許執行count次查詢;

  • MAX_UPDATES_PER_HOUR count:
    設置每個消失可以允許執行count次更新;

  • MAX_CONNECTIONS_PER_HOUR count:
    設置每小時可以建立count個連接;

  • MAX_USER_CONNECTIONS count:
    設置單個用戶可以同時具有的count個連接數;

  示例:

GRANT priv_type [(column_list)] ON database.table
TO user [IDENTIFIED BY [PASSWORD] password]
[,user [IDENTIFIED BY [PASSWORD] password]]...
WITH with_option[with_option]


3. 收回權限

收回權限,就是取消某個用戶的某些權限。MySQL中使用REVOKE關鍵字來為用戶設置權限。

語法如下:

GRANT SELECT,UPDATE ON *.*
    TO myuser@%
WITH GRANT OPTION;

收回全部權限的REVOKE語句的基本語法如下:

REVOKE ALL PRIVILEGES,GRANT OPTION FROM user[,user]...

示例:回收用戶myuser的SELECT權限

REVOKE SELECT ON *.*FROM myuser@%

收回myuser的所有權限:

REVOKE ALL PRIVILEGES,GRANT OPTION FROM myuser@%


4. 查看權限

SHOW GRANTS語句用于查看權限。同時mysql數據庫下的user表中存儲著用戶的基本權限。

SELECT * FROM mysql.user

SHOW GRANTS

 


END


更多精彩干貨分享

點擊下方名片關注

IT那活兒

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/129762.html

相關文章

  • MySQL性能調優與架構設計(三)—— MySQL安全管理

    摘要:處在局域網之內的,由于有局域網出入口的網絡設備的基本保護,相對于暴露在廣域網中要安全不少,主要威脅對象基本控制在了可以接入局域網的內部潛在威脅者,和極少數能夠突破最外圍防線局域網出入口的安全設備的入侵者。 前言 對于任何一個企業來說,其數據庫系統中所保存數據的安全性無疑是非常重要的,尤其是公司的有些商業數據,可能數據就是公司的根本。 失去了數據,可能就失去了一切 本章將針對mysql...

    Eminjannn 評論0 收藏0
  • MySQL必知必會(1):了解Mysql

    摘要:比如用戶表,第一行表示張三第二行表示李四,每一行都包含所有的列也就是字段。也是一種數據庫管理系統。但是,活躍的社區都給出了解決辦法,也在逐步成長。 本文主要介紹Mysql最基礎知識:Mysql基本概念。 1.1 數據庫基礎 1.1.1 簡介 數據庫,從字面意思來理解就是一個用來裝數據的容器。每天我們都在和數據庫打交道,比如你每天打開APP瀏覽新聞,瀏覽微博,這些都是間接的使用數據庫。 ...

    陳偉 評論0 收藏0
  • UCloud MySQL云數據庫操作指南

    摘要:二進制日志是記錄對數據發生或潛在發生更改的語句,并以二進制的形式保存。刪除配置文件刪除配置文件配置文件支持刪除操作。在配置文件列表頁選中需要刪除的配置文件,選中刪除即可完成刪除操作。UCloud MySQL云數據庫操作指南 基本操作 啟動MySQL實例 如果要啟動處于關閉狀態的MySQL實例,首先選擇需要啟動的MySQL實例,在列表右側點擊啟動按鈕,彈出的確認對話框選擇確定...

    raoyi 評論0 收藏0

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<