先要聲明一點,大部分狀況下,修改MySQL是須要有mysql裏的root權限的, 因此通常用戶沒法更改密碼,除非請求管理員。 php
方法一
使用phpmyadmin,這是最簡單的了,修改mysql庫的user表,不過別忘了使用PASSWORD函數。 mysql
方法二 sql
使用mysqladmin,這是前面聲明的一個特例。 函數
mysqladmin -u root -p password mypasswd ui
如:D:\Mysql\bin>mysqladmin -u root -p password admin
Enter password:(在此輸入你原密碼)
輸入這個命令後,須要輸入root的原密碼,而後root的密碼將改成mypasswd。把命令裏的root改成你的用戶名,你就能夠改你本身的密碼了。固然若是你的mysqladmin鏈接不上mysql server,或者你沒有辦法執行mysqladmin,那麼這種方法就是無效的。並且mysqladmin沒法把密碼清空。 加密
下面的方法都在mysql提示符下使用,且必須有mysql的root權限:
方法三
mysql> Insert INTO mysql.user (Host,User,Password)
VALUES('%','jeffrey',PASSWORD('biscuit'));
mysql> FLUSH PRIVILEGES
確切地說這是在增長一個用戶,用戶名爲jeffrey,密碼爲biscuit。在《mysql中文參考手冊》裏有這個例子,因此我也就寫出來了。注意要使用PASSWORD函數,而後還要使用FLUSH PRIVILEGES。 spa
方法四
和方法三同樣,只是使用了REPLACE語句
mysql> REPLACE INTO mysql.user (Host,User,Password)
VALUES('%','jeffrey',PASSWORD('biscuit'));
mysql> FLUSH PRIVILEGES server
方法五
使用SET PASSWORD語句,
mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD('biscuit');
你也必須使用PASSWORD()函數,可是不須要使用FLUSH PRIVILEGES。 ip
方法六
使用GRANT ... IDENTIFIED BY語句
mysql> GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY 'biscuit';
這裏PASSWORD()函數是沒必要要的,也不須要使用FLUSH PRIVILEGES。 it
注意:PASSWORD() [不是]以在Unix口令加密的一樣方法施行口令加密。
MySQL 忘記口令的解決辦法: 若是 MySQL 正在運行,首先殺之: killall -TERM mysqld。 啓動 MySQL :bin/safe_mysqld --skip-grant-tables & 就能夠不須要密碼就進入 MySQL 了。 而後就是 >use mysql >update user set password=password("new_pass") where user="root"; >flush privileges; 從新殺 MySQL ,用正常方法啓動 MySQL。 mysql密碼清空 Windows: 1.用系統管理員登錄系統。 2.中止MySQL的服務。 3.進入命令窗口,而後進入MySQL的安裝目錄,好比個人安裝目錄是c:\mysql,進入C:\mysql\bin 4.跳過權限檢查啓動MySQL,c:\mysql\bin>mysqld-nt --skip-grant-tables 5.從新打開一個窗口,進入c:\mysql\bin目錄,設置root的新密碼 c:\mysql\bin>mysqladmin -u root flush-privileges password "newpassword" c:\mysql\bin>mysqladmin -u root -p shutdown 將newpassword替換爲你要用的root的密碼,第二個命令會提示你輸入新密碼,重複第一個命令輸入的密碼。 6.中止MySQL Server,用正常模式啓動Mysql 7.你能夠用新的密碼連接到Mysql了。