在MySQL資料庫中如何來複位根使用者的密碼

來源:互聯網
上載者:User

  如果你從未為MySQL設定根使用者密碼,伺服器在以根使用者身份進行串連時不要求輸入密碼。但是,建議你為每個賬戶設定密碼。

  如果你以前設定了根使用者密碼,但卻忘記了該密碼,可設定新的密碼。下述步驟是針對Windows平台的。在本節後面的內容中,介紹了針對Unix平台的步驟。

  在Windows平台下,該步驟是:

  以系統管理員身份登入到系統。

  如果MySQL伺服器正在運行,停止它。對於作為Windows服務啟動並執行伺服器,進入服務管理員:

  開始菜單->控制台->管理工具->服務

  然後在列表中找出MySQL伺服器,並停止它。

  如果伺服器不是作為服務而啟動並執行,可能需要使用工作管理員來強制停止它。

  建立1個文字檔,並將下述命令置於單一行中:

  SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');

  用任意名稱儲存該檔案。在本例中,該檔案為C:mysql-init.txt。

  開啟控制台視窗,進入DOS命令提示:

  開始菜單->運行-> cmd

  假定你已將MySQL安裝到C:mysql。如果你將MySQL安裝到了另一位置,請對下述命令進行相應的調整。

  在DOS命令提示字元下,執行命令:

  C:> C:mysqlbinmysqld-nt --init-file=

  C:mysql-init.txt

  在伺服器啟動時,執行由“--init-file”選項命名的檔案的內容,更改根使用者密碼。當伺服器成功啟動後,應刪除C:mysql-init.txt。

  如果你使用MySQL安裝嚮導安裝了MySQL,或許需要指定“--defaults-file”選項:

  C:> C:Program FilesMySQLMySQL Server 5.1binmysqld-nt.exe

  --defaults-file="C:Program FilesMySQLMySQL Server 5.1my.ini"

  --init-file=C:mysql-init.txt

  使用服務管理員,可找到恰當的“--defaults-file”設定:

  開始菜單->控制台->管理工具->服務

  在列表中找出MySQL服務,右擊,並選擇“屬性”選項。在可執列欄位的Path(路徑)中包含“--defaults-file”設定。

  停止MySQL伺服器,然後在正常模式下重啟它。如果以服務方式運行伺服器,應從Windows服務視窗啟動它。如果以手動方式啟動了伺服器,能夠像正常情形下一樣使用命令。共2頁。

  應能使用新密碼進行串連。

  在Unix環境下,重設根使用者密碼的步驟如下:

  以Unix根使用者身份、或以運行mysqld伺服器的相同身份登入到系統。

  找到包含伺服器處理序ID的.pid檔案。該檔案的準確位置和名稱取決於你的分發版、主機名稱和配置。常見位置是/var/lib/mysql/、/var/run/mysqld/和/usr/local/mysql/data/。一般情況下,檔案名稱的副檔名為.pid,並以mysqld或系統的主機名稱開始。

  在下述命令中使用.pid檔案的路徑名,向mysqld進程發出正常的kill(而不是kill -9),可停止MySQL伺服器:

  shell> kill `cat /mysql-data-directory/host_name.pid`

  注意,cat命令使用符號“`”而不是“’”:這會使cat的輸出代入到kill命令中。

  建立文字檔,並將下述命令放在檔案內的1行上:

  SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');

  用任意名稱儲存檔案。對於本例,檔案為~/mysql-init。

  用特殊的“--init-file=~/mysql-init”選項重啟MySQL伺服器:

  shell> mysqld_safe --init-file=~/mysql-init &

  檔案init-file的內容在伺服器啟動時執行,更改根使用者密碼。伺服器成功啟動後,應刪除~/mysql-init。

  應能使用新密碼進行串連。

  作為可選方式,在任何平台上,可使用mysql用戶端設定新密碼(但該方法不夠安全):

  停止mysqld,並用“--skip-grant-tables --user=root”選項重啟它(Windows使用者可省略--user=root部分)。

  使用下述命令串連到mysqld伺服器:

  shell> mysql -u root

  在mysql用戶端發出下述語句:

  mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd')

  -> WHERE User='root';

  mysql> FLUSH PRIVILEGES;

  用打算使用的實際根使用者密碼替換“newpwd”。

  應能使用新密碼進行串連。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.