情況一:只是忘記了密碼
sp_password Null,'123,'sa'
把sa的密碼設為「123」
執行成功後有「Command(s) completed successfully.」 OK!
情況二:忘記了密碼,而且從sysadmin中刪除了builtin\Administrators帳號,現在沒其他人是sysadmin了
A:
SQL Server 2005/2008提供了針對該情況的更好的災難恢復方法,無需侵入master資料庫,不會對master資料庫中的對象和數據(例如登陸帳號,證書等)造成損壞。Windows管理員組的成員現在當SQL Server以單用戶模式啟動(另外一個名稱為維護模式)的情況下對SQL Server有了訪問許可權。
通過使用單用戶模式,SQL Server 2005/2008避免了Windows管理員以sysadmin的身份在不被發現的情況下濫用許可權。Windows管理員帳號能進行部分維護任務,例如安裝補丁等。
要將SQL Server以單用戶模式啟動,您可以在命令行模式下增加「-m」參數。您也可以使用SQL Server配置管理員工具。它提供了對文件訪問和其他許可權的合適控制。要是用配置管理工具來恢復您的系統,您可以根據如下步驟:
1. 從菜單->SQL Server 2005->配置,打開配置管理工具(SQL Server Configuration Manager)
2. 停止您想要恢復的SQL Server實例
3. 找到「高級」標簽,「啟動參數」選項文本框中增加「;–m」
4. 點擊「是」按鈕,重新啟動SQL Server實例
請注意:請確保在「;」和「-m」之間沒有空格。注冊參數解析器對類似的輸入錯誤非常敏感。您可以在SQL Server的ERRORLOG文件內看到顯示「SQL Server started in single-user mode.」
5. 在SQL Server實例以單用戶模式啟動後,Windows管理員帳號就能使用sqlcmd工具在Windows驗證模式下連接SQL Server。您可以使用T-SQL命令諸如「sp_addsrvrolemember」來在sysadmin伺服器角色中添加現有登錄帳號或新創建一個登錄帳號。範例語句如下:
EXEC sp_addsrvrolemember 'CONTOSO\Buck', 'sysadmin';
GO
6. 只要sysadmin訪問許可權被恢復,在配置管理中從啟動參數中移除「;-m」參數,重新啟動SQL Server實例
重要的安全提示:
a. 該過程應該只能被用於當沒有其他方法使用特權帳號(例如sysadmin或等同角色)來訪問系統的災難恢復。
b. 該過程允許Windows管理員在SQL Server中有越權行為。它包含了可以被監測和檢測出的明確的侵入行為,包含:
1. 在單用戶模式下停止SQL Server並重啟
2. 使用Windows帳號連接SQL Server。
⑵ mysql資料庫密碼忘記了怎麼辦
面提供了5種linux忘記mysql密碼找回方法哦。
方法一:
# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> update user set password=password(newpassword) where user=root;
mysql> flush privileges;
mysql> quit
# /etc/init.d/mysql restart
# mysql -uroot -p
enter password: <輸入新設的密碼newpassword>
mysql>
方法二:
直接使用/etc/mysql/debian.cnf文件中[client]節提供的用戶名和密碼:
# mysql -udebian-sys-maint -p
enter password: <輸入[client]節的密碼>
mysql> update user set password=password(newpassword) where user=root;
mysql> flush privileges;
mysql> quit
# mysql -uroot -p
enter password: <輸入新設的密碼newpassword>
mysql>
方法三:
這種方法我沒有進行過測試,因為我的root用戶默認密碼已經被我修改過了,那位有空測試一下,把結果告訴我,謝謝!!
# mysql -uroot -p
enter password: <輸入/etc/mysql/debian.cnf文件中[client]節提供的密碼>
方法四:
方法如下: 1, 關閉mysql服務 /etc/init.d/mysqld stop 2,使用 –skip-grant-tables選項啟動mysql服務,可以修 改/etc/inin.d/mysqld腳本啟動位置增加此選項, vi /etc/init.d/mysqld
方法如下:
1, 關閉mysql服務
/etc/init.d/mysqld stop
2,使用 –skip-grant-tables選項啟動mysql服務,可以修 改/etc/inin.d/mysqld腳本啟動位置增加此選項,
vi /etc/init.d/mysqld
在下面運行啟動的語句里增加--skip-grant-tables
/usr/bin/mysqld_safe --skip-grant-tables --datadir="$datadir" --socket="$socketfile"
--log-error="$errlogfile" --pid-file="$mypidfile"
加入--skip-grant-tables的意思是啟動mysql服務的時候跳 過許可權表認證。啟動後,連接到mysql的root不需要口令
3,重新啟動mysql服務
/etc/init.d/mysqld start
4. 修改root用戶的密碼;
mysql> update mysql.user set password=password(123456) where user=root;
mysql> flush privileges;
mysql> quit
5. 重新啟動mysql,就可以使用 新密碼登錄了。
mysql
mysql -u root –p
輸入密碼:123456
6,關閉mysql服務
/etc/init.d/mysqld stop
7, 重新修改第2步修改的/etc/init.d/mysqld,使其保持原來不變,也就是取消--skip-grant-tables語句
8,重新 啟動mysql服務
/etc/init.d/mysqld start
⑶ 本地MySQL密碼忘了,怎麼找回
1、以管理員的身份打開cmd,然後跳過許可權啟動mysql,命令:xxx--skip-grant-tables 前面是mysql配置文件的位置,然後回車。專
⑷ 搭建linux環境時安裝的wdcp 想更改資料庫密碼 可初始密碼總是不對
很大的原因是您的系統盤滿了,估計是你開啟了web日誌,然後將系統盤被填滿了。
登陸伺服器,df -h查看下磁碟是否已經爆滿,如果的確是,請嘗試刪除以下兩個目錄中的文件日誌文件
/www/wdlinux/apache/logs/
/www/wdlinux/nginx/logs/
雖然個人覺得wdcp已經不錯了,但由於系統,環境,基礎等各種原因,還是會有些這樣或那樣的問題
為了新手能更好的處理解決這些問題,在wdcp2.2開始,提供了些常見問題的修復檢查工具,以便能更好的使用
強制修改mysql的root密碼,在忘記mysql密碼時有用
sh /www/wdlinux/tools/mysql_root_chg.sh
ftp配置文件檢查,在FTP不能連接或登錄時有用
sh /www/wdlinux/tools/pureftp_conf_check.sh
wdcp許可權檢查,在wdcp後台不正常或部分功能無法使用時有用
sh /www/wdlinux/tools/wdcp_perm_check.sh
wdcp資料庫無法連接的修復,如登錄後台提示"無法連接mysql,請檢查mysql是否已啟動及用戶密碼是否設置正確"
sh /www/wdlinux/tools/mysql_wdcp_chg.sh
wdcp後台登錄密碼忘記的修改方法
sh /www/wdlinux/tools/wdcp_login_chp.sh