数据库基础系列之一:MySQL账户
1.mysql用戶(hù)創(chuàng)建:
shell> mysql --user=root mysql
?
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost?IDENTIFIED BY 'something' WITH GRANT OPTION;
?
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@"%"?IDENTIFIED BY 'something' WITH GRANT OPTION;
?
mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost;
?
mysql> GRANT USAGE ON *.* TO dummy@localhost;
?
這些GRANT語(yǔ)句安裝3個(gè)新用戶(hù):
monty
可以從任何地方連接服務(wù)器的一個(gè)完全的超級(jí)用戶(hù),但是必須使用一個(gè)口令'something'做這個(gè)。注意,我們必須對(duì)monty@localhost和monty@"%"發(fā)出GRANT語(yǔ)句。如果我們?cè)黾?/span>localhost條目,對(duì)localhost的匿名用戶(hù)條目在我們從本地主機(jī)連接接時(shí)由mysql_install_db創(chuàng)建的條目將優(yōu)先考慮,因?yàn)樗懈囟ǖ?/span>Host字段值,所以以user表排列順序看更早到來(lái)。
?
admin
可以從localhost沒(méi)有一個(gè)口令進(jìn)行連接并且被授予reload和process管理權(quán)限的用戶(hù)。這允許用戶(hù)執(zhí)行mysqladmin reload、mysqladmin refresh和mysqladmin flush-*命令,還有mysqladmin processlist。沒(méi)有授予數(shù)據(jù)庫(kù)有關(guān)的權(quán)限。他們能在以后通過(guò)發(fā)出另一個(gè)GRANT語(yǔ)句授權(quán)。
?
dummy
可以不用一個(gè)口令連接的一個(gè)用戶(hù),但是只能從本地主機(jī)。全局權(quán)限被設(shè)置為'N'--USAGE權(quán)限類(lèi)型允許你無(wú)需權(quán)限就可設(shè)置一個(gè)用戶(hù)。它假定你將在以后授予數(shù)據(jù)庫(kù)相關(guān)的權(quán)限。
?
?
2.通過(guò)直接修改授權(quán)表設(shè)置用戶(hù)權(quán)限,運(yùn)行這些命令(注意,在結(jié)束時(shí)FLUSH PRIVILEGES):
shell> mysql --user=root mysql
?
mysql> INSERT INTO user (Host,User,Password)?VALUES('localhost','custom',PASSWORD('stupid'));
mysql> INSERT INTO user (Host,User,Password)?VALUES('server.domain','custom',PASSWORD('stupid'));
mysql> INSERT INTO user (Host,User,Password)?VALUES('whitehouse.gov','custom',PASSWORD('stupid'));
?
mysql> INSERT INTO db?
??? (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,??Create_priv,Drop_priv)
??? VALUES?('localhost','bankaccount','custom','Y','Y','Y','Y','Y','Y');
?
mysql> INSERT INTO db
??? (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,?Create_priv,Drop_priv)
??? VALUES?('whitehouse.gov','expenses','custom','Y','Y','Y','Y','Y','Y');
?
mysql> INSERT INTO db?(Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,?Create_priv,Drop_priv)
??? VALUES('%','customer','custom','Y','Y','Y','Y','Y','Y');
?
mysql> FLUSH PRIVILEGES;
?
?
3.改動(dòng)密碼時(shí)有時(shí)候會(huì)遇到忘記先前的密碼,這時(shí)可以采用以下方式:
修改你的my.ini 配置文件,
在里面的 [mysqld]節(jié)中某處加入下面的一行
skip-grant-tables
然后保存,重啟 mysqld 服務(wù),這樣你可以使用任何用戶(hù)名以超級(jí)管理員的身體登錄 MySQL 服務(wù)了。
然后轉(zhuǎn)到mysql數(shù)據(jù)庫(kù)中修改user表:
update user set password=PASSword('1234') where user='root';
一定記住要用password函數(shù),否則將來(lái)將要輸入的密碼是‘1234’的密文。
最后刪除上面所添中的內(nèi)容,重啟服務(wù)。
?
另外,如果可以從本機(jī)或其它機(jī)器上找到可以正常使用的MySql數(shù)據(jù)庫(kù),那么也可拷貝其mysql庫(kù)中的文件名為user的相關(guān)文件,覆蓋忘記密碼的數(shù)據(jù)庫(kù)中的同名文件,這樣也能以被拷貝者的賬戶(hù)密碼登錄。
?
?
4.如何設(shè)置MySql賬戶(hù)使其可以從遠(yuǎn)程訪問(wèn)服務(wù)器
?
在5.0版本中,其實(shí)有一個(gè)圖形界面的配置向?qū)Чぞ?#xff0c;在設(shè)置root賬戶(hù)密碼時(shí),可以選擇是否允許其從遠(yuǎn)程訪問(wèn)。默認(rèn)情況下是不允許的。
在命令行下,可以有兩種大同小異的方法來(lái)作此設(shè)置:
(1)mysql>GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY 'something' WITH GRANT OPTION;
mysql>GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY 'something' WITH GRANT OPTION;
第一句增加了一個(gè)root用戶(hù)授權(quán)通過(guò)本地機(jī)(localhost)訪問(wèn),密碼“something”。
第二句則是使用通配符,授與root用戶(hù)從任何其它主機(jī)發(fā)起的訪問(wèn)。
?
(2)亦可直接使用update語(yǔ)句修改user表:使用root用戶(hù)或其他用戶(hù)登錄mysql,轉(zhuǎn)到mysql數(shù)據(jù)庫(kù)
update user set host='localhost' where user='root';
flush privileges;//只允許root在本機(jī)登錄
?
update user set host='%' where user='root';
flush privileges;//允許root遠(yuǎn)程訪問(wèn)
?
注意,以上一定要加flush語(yǔ)句。
?
另外,如果要建新用戶(hù),則用grant語(yǔ)句比較方便,記住語(yǔ)句grant總是創(chuàng)建新用戶(hù)。
?
?
5.關(guān)于MySql的3306端口
一次在服務(wù)器上新裝5.0.18時(shí),提示3306端口已被占用,強(qiáng)制使用該端口,則發(fā)現(xiàn)所連接上的數(shù)據(jù)庫(kù)是4.1.8版本,始終無(wú)法訪問(wèn)到新創(chuàng)建的服務(wù)器。后來(lái)發(fā)現(xiàn)機(jī)器上原來(lái)裝有一個(gè)mysql服務(wù)器,4.1.8版本。
?
此時(shí),應(yīng)重新配置新版本的數(shù)據(jù)庫(kù),將端口設(shè)為其他的,如3307,那么在訪問(wèn)時(shí),可以通過(guò)加上選項(xiàng):--port=3307來(lái)訪問(wèn),在.net程序中也須將連接字符串添上port=3307,即可。
?
(以上部分內(nèi)容來(lái)源于網(wǎng)絡(luò))?
?
轉(zhuǎn)載于:https://www.cnblogs.com/morvenhuang/archive/2006/09/03/493589.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的数据库基础系列之一:MySQL账户的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 终于解决了
- 下一篇: linux cmake编译源码,linu