登錄數(shù)據(jù)庫
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、虛擬空間、營銷軟件、網(wǎng)站建設(shè)、龍馬潭網(wǎng)站維護(hù)、網(wǎng)站推廣。
“命令提示字符”窗口錄入,
錄入cd
C:\mysql\bin
并按下回車鍵,將目錄切換為
cd
C:\mysql\bin
再鍵入命令mysql
-uroot
-p,回車后提示你輸密碼,如果剛安裝好MYSQL,超級(jí)用戶root是沒有密碼的,故直接回車即可進(jìn)入到MYSQL中了,MYSQL的提示符是:mysql
修改密碼
C:\mysql\bin提示符下錄入:
格式:mysqladmin
–u用戶名
-p舊密碼
password
新密碼
例如:給root加個(gè)密碼ab12。鍵入以下命令:
mysqladmin
-uroot
password
ab12
在MySQL中修改用戶的語法如下:
看了這么一大坨東西,感覺啥也沒有告訴我,一臉懵逼。下面我們一起來解讀一下具體的每一個(gè)選項(xiàng)的含義。
對(duì)于這個(gè)大家應(yīng)該有所了解。
首先它是被中括號(hào)包裹起來的,表示是可選的不是必須的,也就是說在我們的 alter user 語句中,這個(gè) IF EXISTS 可以不出現(xiàn)不是必須要寫的。但是為什么還要有這個(gè)呢,這個(gè)選項(xiàng)出現(xiàn)的目的是為了讓你在執(zhí)行一個(gè) alter user 語句的時(shí)候,如果語句中指定的數(shù)據(jù)庫用戶不存在(或者你寫用戶名稱的是寫錯(cuò)了),而不至于出現(xiàn)一個(gè)錯(cuò)誤的信息,如果指定了 IF EXISTS 這個(gè)詞,他就會(huì)以一個(gè)警告的信息提示你而不是直接給你一個(gè)錯(cuò)誤信息。
更直白一下就是:如果你的 alter user 的語句中指定的用戶確實(shí)存在,那么就執(zhí)行你的語句,如果不存在呢,就不執(zhí)行你的語句,跳過這個(gè) alter user 的指令。看示例:
在上面的例子中,第一個(gè)修改用戶的語句,沒有使用 if exists 關(guān)鍵詞直接修改了一個(gè)不存在的用戶的信息,結(jié)果直接出現(xiàn)了錯(cuò)誤信息,接著我們使用了 if exists 關(guān)鍵詞,結(jié)果SQL語句執(zhí)行成功,只是出現(xiàn)了一個(gè) warning 警告,然后我們通過 show warnings 命令查看警告信息的內(nèi)容,提示我們用戶 'zhangsanfeng'@'%' 不存在。這就是 if exists 關(guān)鍵詞的存在的意義。
當(dāng)我們修改一個(gè)用戶的信息的時(shí)候,我們需要指定用戶的名稱。這個(gè)名稱,不僅僅使我們平時(shí)登錄數(shù)據(jù)庫的時(shí)候,輸入的用戶的名字,還有一個(gè)隱含的部分就是用戶登錄的 host 網(wǎng)段,這個(gè)網(wǎng)段表示只允許該用戶通過這個(gè)網(wǎng)段登錄,如果用戶不在這個(gè)定義的網(wǎng)段內(nèi),即便是用戶名和密碼正確,也不能爭取的登錄。
下面的創(chuàng)建用戶是兩個(gè)不同的用戶。
上面的兩個(gè)用戶中,分別表示如下:
當(dāng)然,我們可以使用模糊匹配的方式來限定用戶登錄的網(wǎng)段,比如我們創(chuàng)建下面第一個(gè)用戶表示只要這個(gè)用戶登錄的時(shí)候,使用的主機(jī)的IP地址是在 10.10.0.0~10.10.255.255 這個(gè)網(wǎng)段質(zhì)檢的任何一個(gè)IP地址都可以登錄。
特殊的網(wǎng)段 localhost 。如果我們創(chuàng)建如下的用戶,則表示該用戶只能在 MySQL 數(shù)據(jù)庫所在的服務(wù)器本機(jī)上登錄。
還有另外一個(gè)特殊的網(wǎng)段 % 。它表示用戶可以通過任何一個(gè)IP地址來登錄,不對(duì)用戶登錄的主機(jī)所在的網(wǎng)段做任何限制。如下用戶就是不對(duì)它登錄的主機(jī)IP地址做任何限制。
auth_option 選項(xiàng)的含義表示指定用戶登錄數(shù)據(jù)庫的時(shí)候使用的驗(yàn)證插件和密碼。它的選項(xiàng)有如下幾種,下面我們分別展開分析一下各個(gè)選項(xiàng)的使用場景和示例。
如果在 IDENTIFIED 關(guān)鍵字后面沒有使用 WITH 關(guān)鍵字指定使用的密碼插件名稱,則會(huì)使用 MySQL 默認(rèn)的密碼插件。對(duì)于 MySQL 默認(rèn)的密碼插件是什么,可以使用下面的命令進(jìn)行查看:
通過上面的輸出,我們可以看出默認(rèn)的密碼插件采用的是 mysql_native_password 插件,參數(shù) default_authentication_plugin 的值是可以在 MySQL 的配置文件 my.cnf 中指定的,它可以有以下兩種取值:
MySQL 的配置文件 my.cnf 中配置默認(rèn)的密碼認(rèn)證插件的方式如下:
如果我們要修改某一個(gè)用戶的密碼認(rèn)證插件,就可以使用到 IDENTIFIED WITH auth_plugin 這個(gè)語句了。如果一個(gè)用戶它的密碼認(rèn)證插件使用的是默認(rèn)的 mysql_native_password ,我們想把它的密碼認(rèn)證插件修改為 sha256_password ,此時(shí)我們就可以使用下面的命令來修改:
執(zhí)行完成上述命令后, xyz 這個(gè)用戶的密碼就會(huì)設(shè)置為空,并更新它的密碼為已經(jīng)過期,同時(shí)更新了它的密碼認(rèn)證插件為 sha256_password ,結(jié)果如下所示:
更改用戶的密碼認(rèn)知方式之后,當(dāng) xyz 再次嘗試登錄 MySQL 數(shù)據(jù)庫的時(shí)候,輸入空密碼登錄成功后,會(huì)要求其修改一下自己的密碼,然后才可以執(zhí)行其他SQL語句的操作,這個(gè)要求和我們剛安裝 MySQL 數(shù)據(jù)庫后,第一次使用 root 登錄的時(shí)候要求修改 root 的密碼是一樣的。下面是修改完成用戶 xyz 的密碼認(rèn)證插件之后,嘗試使用空密碼登錄后的操作示例:
指定用戶的密碼認(rèn)證插件,并設(shè)置密碼。
當(dāng)我們想給用戶指定密碼的認(rèn)證插件,并且想為其設(shè)置密碼的時(shí)候,可以使用這個(gè)命令,示例如下:
這樣用戶 xyz 的密碼認(rèn)證方式修改為了 mysql_native_password ,并且修改它的密碼為 xyz 。需要我們主要的是 by 關(guān)鍵字后面跟的是密碼的明文,也就是我們嘗試登錄的時(shí)候,輸入的密碼的值。
指定用戶的密碼認(rèn)證插件,并設(shè)置密碼。
當(dāng)我們想給用戶指定密碼的認(rèn)證插件,并且想為其設(shè)置密碼的時(shí)候,可以使用這個(gè)命令,示例如下:
這樣用戶 xyz 的密碼認(rèn)證方式修改為了 mysql_native_password ,并且修改它的密碼為 xyz 。需要我們主要的是 as 關(guān)鍵字后面跟的是加密后的密碼,而不是我們的明文的密碼。如果我們想知道得到一個(gè)加密后的密碼,則可以使用下面 password() 函數(shù)來得到加密后的密碼。
這里主要是指定用戶在連接到MySQL數(shù)據(jù)庫的時(shí)候,是否需要使用加密的方式,如果使用加密的方式,則需要啟用SSL加密協(xié)議,同時(shí)也需要對(duì)MySQL進(jìn)行證書的配置。
考慮到性能的問題,使用TLS加密的方式連接MySQL數(shù)據(jù)庫會(huì)對(duì)MySQL數(shù)據(jù)庫的性能有一定的影響。非必要情況下,一般不建議啟用TLS加密連接到數(shù)據(jù)庫,因?yàn)榇蠹业腗ySQL數(shù)據(jù)庫一般都是針對(duì)內(nèi)網(wǎng)開放的。所以,啟用TLS加密協(xié)議連接沒有必要。
resource_option 選項(xiàng)中,主要是為每一個(gè)用戶設(shè)置它所能使用到資源,做資源的使用限制。示例如下:
上面四個(gè)參數(shù)的值如果為 0 ,則表示對(duì)應(yīng)的資源限制不做任何限制。
password_option 選項(xiàng)用來配置用戶的密碼,指定其密碼的效期。下面看幾個(gè)示例:
對(duì)于MySQL系統(tǒng)默認(rèn)的有效期是多少,可以通過如下命令查看,下面的值為 0 表示密碼有效期為永久有效。
lock_option 選擇是用來鎖定和解鎖用戶的。示例如下:
首先以root身份登錄到MySQL服務(wù)器中。
$ mysql -u root -p
當(dāng)驗(yàn)證提示出現(xiàn)的時(shí)候,輸入MySQL的root帳號(hào)的密碼。
創(chuàng)建一個(gè)MySQL用戶
使用如下命令創(chuàng)建一個(gè)用戶名和密碼分別為"myuser"和"mypassword"的用戶。
mysql CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
一旦用戶被創(chuàng)建后,包括加密的密碼、權(quán)限和資源限制在內(nèi)的所有帳號(hào)細(xì)節(jié)都會(huì)被存儲(chǔ)在一個(gè)名為user的表中,這個(gè)表則存在于mysql這個(gè)特殊的數(shù)據(jù)庫里。
運(yùn)行下列命令,驗(yàn)證帳號(hào)是否創(chuàng)建成功
mysql SELECT host, user, password FROM mysql.user WHERE user='myuser';
賦予MySQL用戶權(quán)限
一個(gè)新建的MySQL用戶沒有任何訪問權(quán)限,這就意味著你不能在MySQL數(shù)據(jù)庫中進(jìn)行任何操作。你得賦予用戶必要的權(quán)限。以下是一些可用的權(quán)限:
ALL: 所有可用的權(quán)限
CREATE: 創(chuàng)建庫、表和索引
LOCK_TABLES: 鎖定表
ALTER: 修改表
DELETE: 刪除表
INSERT: 插入表或列
SELECT: 檢索表或列的數(shù)據(jù)
CREATE_VIEW: 創(chuàng)建視圖
SHOW_DATABASES: 列出數(shù)據(jù)庫
DROP: 刪除庫、表和視圖
運(yùn)行以下命令賦予"myuser"用戶特定權(quán)限。
mysql GRANT privileges ON database.table TO 'myuser'@'localhost';
以上命令中,privileges 代表著用逗號(hào)分隔的權(quán)限列表。如果你想要將權(quán)限賦予任意數(shù)據(jù)庫(或表),那么使用星號(hào)(*)來代替數(shù)據(jù)庫(或表)的名字。
例如,為所有數(shù)據(jù)庫/表賦予 CREATE 和 INSERT 權(quán)限:
mysql GRANT CREATE, INSERT ON *.* TO 'myuser'@'localhost';
驗(yàn)證給用戶賦予的全權(quán)限:
mysql SHOW GRANTS FOR 'myuser'@'localhost';
將全部的權(quán)限賦予所有數(shù)據(jù)庫/表:
mysql GRANT ALL ON *.* TO 'myuser'@'localhost';
你也可以將用戶現(xiàn)有的權(quán)限刪除。使用以下命令廢除"myuser"帳號(hào)的現(xiàn)有權(quán)限:
mysql REVOKE privileges ON database.table FROM 'myuser'@'localhost';
為用戶添加資源限制
在MySQL中,你可以為單獨(dú)的用戶設(shè)置MySQL的資源使用限制??捎玫馁Y源限制如下:
MAX_QUERIES_PER_HOUR: 允許的每小時(shí)最大請(qǐng)求數(shù)量
MAX_UPDATES_PER_HOUR: 允許的每小時(shí)最大更新數(shù)量
MAX_CONNECTIONS_PER_HOUR: 允許的每小時(shí)最大連接(LCTT譯注:其與 MySQL全局變量: max_user_connections 共同決定用戶到數(shù)據(jù)庫的同時(shí)連接數(shù)量)數(shù)量
MAX_USER_CONNECTIONS: 對(duì)服務(wù)器的同時(shí)連接量
使用以下命令為"myuser"帳號(hào)增加一個(gè)資源限制:
mysql GRANT USAGE ON database.table TO 'myuser'@'localhost' WITH resource-limits;
在 resource-limits 中你可以指定多個(gè)使用空格分隔開的資源限制。
例如,增加 MAXQUERIESPERHOUR 和 MAXCONNECTIONSPERHOUR 資源限制:
mysql GRANT USAGE ON *.* TO 'myuser'@'localhost' WITH MAX_QUERIES_PER_HOUR 30 MAX_CONNECTIONS_PER_HOUR 6;
驗(yàn)證用戶的資源限制:
mysql SHOW GRANTS FOR 'myuser'@'localhost;
創(chuàng)建和設(shè)置一個(gè)MySQL用戶最后的一個(gè)重要步驟:
mysql FLUSH PRIVILEGES;
如此一來更改便生效了?,F(xiàn)在MySQL用戶帳號(hào)就可以使用了。
第一步:管理員權(quán)限賬號(hào)登陸phpMyAdmin,一般用root登錄。
第二步:設(shè)置用戶權(quán)限。
編輯 hellen 這個(gè)用戶的權(quán)限。如下圖所示:
第三步:選擇相應(yīng)的權(quán)限,點(diǎn)擊執(zhí)行
上面權(quán)限意思可以對(duì)照下面翻譯:
數(shù)據(jù):
SELECT:允許讀取數(shù)據(jù)。
INSERT:允許插入和替換數(shù)據(jù)。
UPDATA:允許更改數(shù)據(jù)。
DELETE:允許刪除數(shù)據(jù)。
FILE:允許從文件中導(dǎo)入數(shù)據(jù)以及將數(shù)據(jù)導(dǎo)出至文件。
結(jié)構(gòu):
CREATE:允許創(chuàng)建新數(shù)據(jù)庫和表。
ALTER:允許修改現(xiàn)有表的結(jié)構(gòu)。
INDEX:允許創(chuàng)建和刪除索引。
DROP:允許刪除數(shù)據(jù)庫和表。
CREATE TEMPORARY TABLES:允許創(chuàng)建暫時(shí)表。
CREATE VIEW:允許創(chuàng)建新的意見。
SHOW VIEW:顯示創(chuàng)建的看法。
CREATE ROUTINE:允許創(chuàng)建存儲(chǔ)過程。
ALTER ROUTINE:允許改變和下降存儲(chǔ)過程。
EXECUTE:允許許執(zhí)行存儲(chǔ)過程。
管理:
GRANT:允許添加用戶和權(quán)限,而不允許重新載入權(quán)限表。
SUPER:允許在達(dá)到最大允許數(shù)目時(shí)仍進(jìn)行連接。
PROCESS:允許查看進(jìn)程列表中的完整查詢。
RELOAD:允許重新載入服務(wù)器設(shè)置并刷新服務(wù)器的緩存。
SHUTDOWN:允許關(guān)閉服務(wù)器。
SHOW DATABASES:允許訪問完整的數(shù)據(jù)庫列表。
LOCK TABLES:允許鎖住當(dāng)前線索的表。
REFERENCES:在此版本的 MySQL 中無效。
REPLICATION CLIENT:用戶有權(quán)詢問附屬者/控制者在哪里。
REPLICATION SLAVE:回復(fù)附屬者所需。
CREATE USER:允許創(chuàng)建,下降和重新命名的用戶帳戶。
第四步:重新加載授權(quán)表
修改完用戶權(quán)限以后需要回到 phpMyAdmin 的首頁,重新加載一下授權(quán)
如下圖所示:
注:我的運(yùn)行環(huán)境是widnows xp professional + MySQL5.0
一, 創(chuàng)建用戶:
命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';
說明:username - 你將創(chuàng)建的用戶名, host -
指定該用戶在哪個(gè)主機(jī)上可以登陸,如果是本地用戶可用localhost, 如果想讓該用戶可以從任意遠(yuǎn)程主機(jī)登陸,可以使用通配符%.
password - 該用戶的登陸密碼,密碼可以為空,如果為空則該用戶可以不需要密碼登陸服務(wù)器.
例子: CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '';
CREATE USER 'pig'@'%';
二,授權(quán):
命令:GRANT privileges ON databasename.tablename TO 'username'@'host'
說明: privileges - 用戶的操作權(quán)限,如SELECT , INSERT , UPDATE 等(詳細(xì)列表見該文最后面).如果要授予所的權(quán)限則使用ALL.;databasename - 數(shù)據(jù)庫名,tablename-表名,如果要授予該用戶對(duì)所有數(shù)據(jù)庫和表的相應(yīng)操作權(quán)限則可用*表示, 如*.*.
例子: GRANT SELECT, INSERT ON test.user TO 'pig'@'%';
GRANT ALL ON *.* TO 'pig'@'%';
注意:用以上命令授權(quán)的用戶不能給其它用戶授權(quán),如果想讓該用戶可以授權(quán),用以下命令:
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
三.設(shè)置與更改用戶密碼
命令:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');如果是當(dāng)前登陸用戶用SET PASSWORD = PASSWORD("newpassword");
例子: SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456");
四.撤銷用戶權(quán)限
命令: REVOKE privilege ON databasename.tablename FROM 'username'@'host';
說明: privilege, databasename, tablename - 同授權(quán)部分.
例子: REVOKE SELECT ON *.* FROM 'pig'@'%';
注意: 假如你在給用戶'pig'@'%'授權(quán)的時(shí)候是這樣的(或類似的):GRANT SELECT ON test.user TO 'pig'@'%', 則在使用REVOKE SELECT ON *.* FROM 'pig'@'%';命令并不能撤銷該用戶對(duì)test數(shù)據(jù)庫中user表的SELECT 操作.相反,如果授權(quán)使用的是GRANT SELECT ON *.* TO 'pig'@'%';則REVOKE SELECT ON test.user FROM 'pig'@'%';命令也不能撤銷該用戶對(duì)test數(shù)據(jù)庫中user表的Select 權(quán)限.
具體信息可以用命令SHOW GRANTS FOR 'pig'@'%'; 查看.
五.刪除用戶
命令: DROP USER 'username'@'host';
1、安裝好wamp后,運(yùn)行WampServer程序,進(jìn)入MYSQL控制臺(tái);
2
2、進(jìn)入控制臺(tái)后,提示輸入密碼(不用輸入任何密碼,因?yàn)槊艽a為空),按回車鍵進(jìn)入;
3
3、輸入“USE mysql;”然后回車,意思是選擇mysql數(shù)據(jù)庫;
4
4、輸入“update user set password=“password”(‘這里是密碼,如:root’) where user=’root’;”然后回車;返回信息:
Query OK, 0 rows affected (0.00 sec)
Rows matched: 2 Changed: 0 Warnings: 0
5
5、輸入quit退出控制臺(tái);
6
6、重啟mysql服務(wù);
7
7、輸入用戶名、你設(shè)置定的密碼,登錄成功。
本文名稱:mysql怎么設(shè)置用戶 mysql怎么設(shè)置用戶名
文章來源:http://jinyejixie.com/article0/dodooio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、微信公眾號(hào)、服務(wù)器托管、定制開發(fā)、面包屑導(dǎo)航、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)