前言:前段時間把mysql安裝後一直沒管它,當時就在奇怪為什麼mysql登陸不要密碼,原來一直用的超用戶賬戶登陸的(簡稱超級用戶)
其實只怪自己太無知,之前一直用的phpbydamin進行的數據庫的可視化管理,哪裡知道這麼詳細呢?
本文原文來源mysql官方文檔5.1
正文:最開始可以使用SELECT User.Password FROM mysql.user查詢mysql數據庫root賬戶的密碼
你可以用幾種方法為root賬戶指定密碼。以下介紹了三種方法:
· 使用SET PASSWORD語句
· 使用mysqladmin命令行客戶端程序
· 使用UPDATE語句
要想使用SET PASSWORD指定密碼,用root連接服務器並執行兩個SET PASSWORD語句。一定要使用PASSWORD()函數來加密密碼。
在Windows中的語句:
shell> mysql -u root
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR 'root'@'%' = PASSWORD('newpwd');
在Unix中的語句:
shell> mysql -u root
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR 'root'@'host_name' = PASSWORD('newpwd');
用服務器主機名替換第二個SET PASSWORD語句中的host_name。這是你指定匿名賬戶密碼的主機名。
要想使用mysqladmin為root賬戶指定密碼,執行下面的命令:
shell> mysqladmin -u root password "newpwd"
shell> mysqladmin -u root -h host_name password "newpwd"
上述命令適用於Windows和Unix。用服務器主機名替換第二個命令中的host_name。不一定需要將密碼用雙引號引起來,但是你如果密碼中包含空格或專用於命令解釋的其它字符,則需要用雙引號引起來。
你還可以使用UPDATE直接修改user表。下面的UPDATE語句可以同時為兩個root賬戶指定密碼:
shell> mysql -u root
mysql> UPDATE mysql.user SET Password = PASSWORD('newpwd')
-> WHERE User = 'root';
mysql> FLUSH PRIVILEGES;
UPDATE語句適用於Windows和Unix。
設置完密碼後,當你連接服務器時你必須提供相應密碼。例如,如果你想要用mysqladmin 關閉服務器,可以使用下面的命令:
shell> mysqladmin -u root -p shutdown
Enter password: (enter root password here)