首頁 >資料庫 >mysql教程 >MySQL帳戶相關

MySQL帳戶相關

黄舟
黄舟原創
2016-12-16 11:27:121110瀏覽

1.MySQL使用者建立:

shell> mysql --user=root mysql

 

mysql> GRANT ALL PRIVILEGES ON *.* TO monty@local 分析GRANT ALL PRIVILEGES ON *.* TO monty@"%" IDENTIFIED BY 'something' WITH GRANT OPTION;

 

mysql> GRANT RELOAD,PROCESS ON* *.* TO dummy@localhost;

 

這些GRANT語句安裝3個新用戶:

monty

可以從任何地方連接伺服器的一個完全的超級用戶,但是必須使用一個口令'something'做這個。注意,我們必須對monty@localhost和monty@"%"發出GRANT語句。如果我們增加localhost條目,對localhost的匿名用戶條目在我們從本地主機連接接時由mysql_install_db創建的條目將優先考慮,因為它有更特定的Host字段值,所以以user表排列順序看更早到來。

 

admin

可以從localhost沒有一個口令進行連接並且被授予reload和process管理權限的用戶。這允許使用者執行mysqladmin reload、mysqladmin refresh和mysqladmin flush-*指令,還有mysqladmin processlist。沒有授予資料庫有關的權限。他們能在以後透過發出另一個GRANT語句授權。

dummy

可以不用一個口令連接的一個用戶,但是只能從本地主機。全域權限被設定為'N'--USAGE權限類型允許你無需權限就可設定一個使用者。它假定你將在以後授予資料庫相關的權限。

 

 

2.透過直接修改授權表設定使用者權限,執行這些指令(注意,在結束時FLUSH PRIVILEGES):

shell> mysql --user=root mysql🜎 mysql

shell 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)

骨','Y','Y','Y');


 


mysql> INSERT INTO db

    (Host,Db,User,Select_priv,Insert_priv,Updatepriv,Upete. ( '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.改動密碼時有時候會忘記先前的密碼修改你的my.ini 設定文件,

在裡面的[mysqld]節中某處加入下面的一行

skip-grant-tables

然後保存,重啟mysqld 服務,這樣你可以使用任何用戶名以超級管理員的身體登入MySQL 服務了。

然後到mysql資料庫修改user表:


update user set password=PASSword('1234') where user='root';

一定記住要用password函數,否則將來將要輸入的密碼是' 1234'的密文。

最後刪除上面所添的內容,重啟服務。

 

另外,如果可以從本機或其它機器上找到可以正常使用的MySql資料庫,那麼也可拷貝其mysql庫中的文件名為user的相關文件,覆蓋忘記密碼的資料庫中的同名文件,這樣也能以被拷貝者的帳號密碼登入。

 

 

4.如何設定MySql帳戶使其可以從遠端存取伺服器

在5.0版本中,其實有一個圖形介面的設定精靈工具,在設定是否允許其密碼時,可以選擇是否允許其密碼遠端存取。預設是不允許的。

在命令列下,可以有兩種大同小異的方法來做此設定:

(1)mysql>GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY 'something' WITH GRANTANTANT; GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY 'something' WITH GRANT OPTION;

第一句增加了一個root用戶授權透過本地機(localhost)訪問,密碼「something」。

第二句則是使用通配符,授予root使用者從任何其它主機發起的存取。

 

(2)也可直接使用update語句修改user表:使用root使用者或其他使用者登入mysql,到mysql資料庫

update user set host='localhost' where user='root';

update user set host='localhost' where user='root';

privileges;//只允許root在本機登入

 

update user set host='%' where user='root';

flush privileges;//允許rootroot

flush privileges;//允許rootroot

flush privileges;//允許rootroot

加flush語句。

 

另外,如果要建造新用戶,則用grant語句比較方便,記住語句grant總是創建新用戶。

 

 

5.關於MySql的3306連接埠

一次在伺服器上新裝5.0.18時,提示3306埠

一次在伺服器上新裝5.0.18時,提示3306埠已被佔用,強制使用此埠,則發現所連接上的資料庫是4. ,始終無法存取到新建立的伺服器。後來發現機器上原來裝有一個mysql伺服器,4.1.8版本。


 

🎜此時,應重新配置新版本的資料庫, 將連接埠設為其他的,如3307,那麼在訪問時,可以透過加上選項:--port=3307來訪問,在.net程式中也須將連接字串添上port=3307,即可。 🎜🎜 以上就是MySQL帳號相關的內容,更多相關文章請關注PHP中文網(www.php.cn)! 🎜🎜🎜🎜🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn