程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MySQL賬戶相關_MySQL教程

MySQL賬戶相關_MySQL教程

編輯:關於MYSQL數據庫

1.MySQL用戶創建:

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語句安裝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> 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.改動密碼時有時候會遇到忘記先前的密碼,這時可以采用以下方式:

修改你的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版本中,其實有一個圖形界面的配置向導工具,在設置root賬戶密碼時,可以選擇是否允許其從遠程訪問。默認情況下是不允許的。

在命令行下,可以有兩種大同小異的方法來作此設置:

(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;

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

第二句則是使用通配符,授與root用戶從任何其它主機發起的訪問。

 

(2)亦可直接使用update語句修改user表:使用root用戶或其他用戶登錄mysql,轉到MySQL數據庫

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

flush privileges;//只允許root在本機登錄

 

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

flush privileges;//允許root遠程訪問

 

注意,以上一定要加flush語句。

 

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


 

 

5.關於MySQL的3306端口

一次在服務器上新裝5.0.18時,提示3306端口已被占用,強制使用該端口,則發現所連接上的數據庫是4.1.8版本,始終無法訪問到新創建的服務器。後來發現機器上原來裝有一個MySQL服務器,4.1.8版本。

 

此時,應重新配置新版本的數據庫, 將端口設為其他的,如3307,那麼在訪問時,可以通過加上選項:--port=3307來訪問,在.Net程序中也須將連接字符串添上port=3307,即可。


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved