標籤:管理員 伺服器 windows 忘記密碼 mysql登入密碼
忘記mysql登入密碼的修改方法:
方法原理:mysqld伺服器安裝的時候一步操縱就是需要初始化資料操縱。初始化後會有mysql資料庫,裡面有預設的表,其中mysqld在啟動時候會將user、db、host、tables_priv、columns_priv、procs_priv這6張表讀入記憶體當中。這6張表是對mysql使用者和其操縱進行認證的,其中user表是存放資料庫使用者資訊,db是資料庫層級的認證,host預設是空,可以添加使用者對mysql資料庫的存取控制資訊,tables_priv是表層級控制,columns_priv是列層級控制,procs_priv是進程層級的控制。
用戶端在進行串連mysql伺服器是要經曆兩個階段:
階段1:伺服器檢查是否允許你串連。
階段2:假定你能串連,伺服器檢查你發出的每個請求。看你是否有足夠的許可權實施它。
這裡的修改方法就是在啟動資料庫的時候不去檢查user表中使用者控制資訊,使用指定的選項檔案來啟動資料庫。
一種方法是修改啟動指令檔
編輯啟動指令碼,啟動mysql_safe是傳遞兩個參數
--skip-grant-tbales 設定跳過授權表登入
--skip-networking 設定不允許網路訪問,只能本地主機訪問
啟動伺服器後使用更新授權表的方式修改user表的密碼,移除設定檔的兩個選項在重新啟動伺服器,可以使用新密碼串連登入
另一種方法:指定啟動選項檔案
windows下的修改方法:
安裝mysql的時候預設是root使用者,密碼為空白。
作為管理員,假如忘記了密碼,可以根據以下步驟來修改密碼登入。
一、如果mysqld伺服器此時處於運行狀態,要關閉mysqld伺服器。
開始菜單->控制台->管理工具->服務
然後在列表中找出MySQL伺服器,並停止它。或者通過工作管理員來停止。
二、建立一個文字檔,在單一第一行中寫入
SET PASSWORD FOR ‘root‘@‘localhost‘ = PASSWORD(‘MyNewPassword‘);
用任意名稱儲存該檔案。在本例中,該檔案為C:\mysql-init.txt。
三、開啟控制台視窗,進入DOS命令提示:
開始菜單->運行-> cmd
假定你已將MySQL安裝到C:\mysql。如果你將MySQL安裝到了另一位置,請對下述命令進行相應的調整。在DOS命令提示字元下,執行命令:
C:\> C:\mysql\bin\mysqld-nt --init-file=C:\mysql-init.txt
在伺服器啟動時,執行由“--init-file”選項命名的檔案的內容,更改根使用者密碼。當伺服器成功啟動後,應刪除C:\mysql-init.txt。
四、使用新密碼串連mysql伺服器
如果你使用MySQL安裝嚮導安裝了MySQL,或許需要指定“--defaults-file”選項:
C:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld-nt.exe
--defaults-file="C:\Program Files\MySQL\MySQL Server 5.1\my.ini"
--init-file=C:\mysql-init.txt
使用服務管理員,可找到恰當的“--defaults-file”設定:
開始菜單->控制台->管理工具->服務
在列表中找出MySQL服務,右擊,並選擇“屬性”選項。在可執列欄位的Path(路徑)中包含“--defaults-file”設定。
停止MySQL伺服器,然後在正常模式下重啟它。如果以服務方式運行伺服器,應從Windows服務視窗啟動它。如果以手動方式啟動了伺服器,能夠像正常情形下一樣使用命令。
應能使用新密碼進行串連。
在linux系統下的修改方法:
一、如果伺服器是運行狀態,需要停止伺服器。找到mysqld的進程ID,將其殺死。
使用netstat -tunlp | grep mysqld 查看進程或者查看mysqld進程檔案,常見位置是/var/lib/mysql/、/var/run/mysqld/和/usr/local/mysql/data/。
一般情況下,檔案名稱的副檔名為.pid,
二、建立文字檔,並將下述命令放在檔案內的1行上:
SET PASSWORD FOR ‘root‘@‘localhost‘ = PASSWORD(‘MyNewPassword‘);
用任意名稱儲存檔案。對於本例,檔案為/var/a.txt。
用特殊的“--init-file=~/mysql-init”選項重啟MySQL伺服器:
三、啟動伺服器
[[email protected] bin]# /usr/bin/mysqld_safe --init-file=/var/a.txt &
[1] 7375
[[email protected] bin]# 150701 10:31:38 mysqld_safe Logging to ‘/var/log/mysqld.log‘.
150701 10:31:38 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
表示伺服器啟動成功。
檔案init-file的內容在伺服器啟動時執行,更改根使用者密碼。伺服器成功啟動後,應刪除~/mysql-init。
四、使用新密碼串連資料庫
[[email protected] var]# mysql -u root -h localhost -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.66 Source distribution
Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
mysql>
作為可選方式,在任何平台上,可使用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”。
應能使用新密碼進行串連。
本文出自 “七顆星” 部落格,請務必保留此出處http://qikexing.blog.51cto.com/7948843/1672500
mysql忘記密碼怎麼改