MySQL 密碼設定

2021-04-26 14:21:17 字數 2983 閱讀 7292

本文介紹了如何修改乙個使用者的密碼,你可以使用三種方法,grant語句、set password語句、直接修改授權表以及使用管理工具mysqladmin。乙個重要的應用就是如何在遺忘root使用者密碼的時候修改密碼,使用的方法是啟動mysql伺服器時忽略載入授權表。

由mysql使用使用者名稱和口令的方法與unix或windows使用的方式有很多不同之處:

·mysql 使用於認證目的的使用者名稱,與unix使用者名稱(登入名字)或windows使用者名稱無關。預設地,大多數mysql客戶嘗試使用當前 unix使用者名稱作為mysql使用者名稱登入,但是這僅僅為了方便。客戶程式允許用-u或--user選項指定乙個不同的名字,這意味著無論如何你不能使得乙個資料庫更安全,除非所有的mysql使用者名稱都有口令。任何人可以試圖用任何名字連線伺服器,而且如果他們指定了沒有口令的任何名字,他們將成功。

·mysql使用者名稱最長可以是16各字元;典型地,unix使用者名稱限制為8個字元。

·mysql口令與unix口令沒關係。在你使用登入到一台unix機器口令和你使用在那台機器上訪問乙個資料庫的口令之間沒有必要有關聯。

·mysql加密口令使用了乙個unix登入期間所用的不同演算法。

本節將介紹如何為mysql資料庫系統的使用者修改密碼。

使用myadmin實用程式

使用mysqladmin實用程式修改密碼的命令列是:

shell>mysqladmin -u user -p password "newpassword"

執行這個命令,在提示輸入密碼時,資料就密碼,則使用者user的密碼就被改為newpassword

。如果,原來的使用者沒有密碼,則不比指定-p選項。例如,初始化授權表之後,root使用者的密碼就是空的,你可以這樣為root使用者設立密碼:

shell>mysqladmin -u root password "newpassword"

使用語句set  password

使用mysqladmin為使用者修改密碼有乙個明顯的缺點,就是必須知道使用者原來的密碼,如果是為了給遺忘了密碼的使用者重設密碼就無能為力了。乙個專門用於修改密碼的sql語句為set  password:

·set  password = password('some password')

設定當前使用者的口令。任何非匿名的使用者能改變他自己的口令!

連線到伺服器後,你可以這樣改變自己的密碼:

mysql> set  password = password('another pass');

·set  password for user = password('some password')

mysql> set password for bob@"%.loc.gov" = password("newpass");

直接修改授權表

另一種修改,密碼的方法是直接修改授權表user。只有具備訪問mysql資料庫的使用者可以這樣做。

mysql> update mysql.user set password=password("newpass") where user="bob' and host="%.loc.gov";

mysql>flush privileges;

重新設定乙個遺忘的root口令

如果你遺忘了root使用者的口令,那麼將會是一件非常麻煩的事。除非你有其它有特權的使用者,否則很多操作都無法完成,例如,關閉資料庫等等。

例如,如果你忘記了你的mysql的root口令的話,你可以通過下面的過程恢復。

1、關閉mysql伺服器

向mysqld server 傳送kill命令關掉mysqld server(不是 kill -9),存放程序id的檔案通常在mysql的資料庫所在的目錄中。

kill `cat /mysql-data-directory/hostname.pid`

你必須是unix的root使用者或者是你所執行的server上的同等使用者,才能執行這個操作。

如果在windows平台上,也可以停止程序。如果是nt還可以用net stop mysql命令關閉資料庫。

2、使用'--skip-grant-tables' 引數來啟動 mysqld。

unix平台:

$su mysql

$safe_mysqld --skip-grant-tables &

windows平台:

c:/mysql/bin>mysqld --skip-grant-tables

以上語句,假定都位於正確的目錄。

3、連線到伺服器,修改口令

使用'mysql -h hostname mysql'命令登入到mysqld server ,用grant命令改變口令:

mysql>grant all on *.* to root@localhost indentified by 'new password'

-> with grant option;

mysql>grant all on *.* to root@% indentified by 'new password'

-> with grant option;

(如果存在乙個能從任意位址登入的root使用者,初始化授權表後,生成該使用者,為了安全,你可能已經刪除該使用者)。

其實也可以直接修改授權表:

mysql> use mysql;

mysql> update user set password =password('yourpass') where user='root';

你可能使用工具mysqladmin修改密碼:

shell> mysqladmin -h hostname -u root password 'new password

但是它修改的密碼語伺服器匹配的使用者有關。如果,你從伺服器主機連線,那麼伺服器匹配的是root@localhost,修改該使用者密碼,否則一般修改root@%密碼,除非你有其它root使用者存在。

4. 載入許可權表:

shell> mysqladmin -h hostname flush-privileges

或者使用 sql 命令`flush privileges'。

當然,在這裡,你也可以重啟mysqld。

mysql 密碼設定

系統初始化後 mysql u root p temporary password mysql set password for root loacalhost password 新密碼 mysql exit 系統初始化後,安全設定 mysql secure installation 根據螢幕提示進行...

安裝mysql沒有設定密碼,設定密碼

跳過許可權檢查,強制修改mysql密碼 也可以用來解決安裝mysql時沒有設定密碼 停止mysql服務,cmd開啟dos視窗,輸入 net stop mysql 在cmd命令列視窗,進入mysql安裝目錄 比如e program files mysql mysql server 5.0 bin 示範...

mysql口令 MySQL 密碼設定

乙個重要的應用就是如何在遺忘root使用者密碼的時候修改密碼,使用的方法是啟動mysql伺服器時忽略載入授權表。由mysql使用使用者名稱和口令的方法與unix或windows使用的方式有很多不同之處 mysql 使用於認證目的的使用者名稱,與unix使用者名稱 登入名字 或windows使用者名稱...