linux下
方法一:
# /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>
方法三:
# mysql -uroot -p
enter password: 《輸入/etc/mysql/debian.cnf檔案中[client]節提供的密碼》
window 下
命令列下輸入:
>cd e:/mysql/bin
>mysqladmin -u root password 你的密碼
>mysql -u root -p
enter password: 你的密碼
便可以、、、、、、、、、、、、、、、、、
找到了根本原因,在此涼一下:
導致此問題的根源在:因為給mysql的root設定了密碼,而不是最初安裝好時的密碼為空,所以使用
mysqladmin version這樣子不行了,必須這樣子:mysqladmin -uroot -p version,回車後按照提示要求輸入
root密碼即可成功執行命令。
第一種方法其實就是在不知道root密碼的情況下的一種解決辦法,那樣子啟動不用密碼即可進mysql
裡面並進行root密碼的修改,解決忘記了root密碼的問題。
輸入命令「mysqladmin -u root password 你的密碼」作用是修改root使用者的密碼,這條命令能夠不經
提示輸入原密碼而成功執行,也說明了原密碼是空。之後使用修改後的密碼自然能夠成功登入。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。怎麼更改密碼?
首先要宣告一點,大部分情況下,修改mysql是需要有mysql裡的root許可權的,所以一般使用者無法更改密碼
,除非請求管理員。
方法一
使用phpmyadmin,這是最簡單的了,修改mysql庫的user表,
不過別忘了使用password函式。
方法二
使用mysqladmin,這是前面宣告的乙個特例。
mysqladmin -u root -p password mypasswd
輸入這個命令後,需要輸入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。
方法四
和方法三一樣,只是使用了replace語句
mysql> replace into mysql.user (host,user,password)
values('%','jeffrey',password('biscuit'));
mysql> flush privileges
方法五
使用set password語句,
mysql> set password for " = password('biscuit');
擬也必須使用password()函式,
但是不需要使用flush privileges。
方法六
使用grant ... identified by語句
mysql> grant usage on *.* to " identified by 'biscuit';
這裡password()函式是不必要的,也不需要使用flush privileges。
注意: 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失敗情況總結
1 公網ip不正確 2 遠端伺服器mysql服務沒啟動 3 登入mysql的使用者名稱密碼錯誤 相信上面三種情況相比都不會弄錯,可以看看伺服器內的防火牆狀態以及有沒有開放3306埠 4 沒有關閉遠端伺服器內部的防火牆 多半是伺服器內的防火牆沒關導致遠端連線被阻擋了 systemctl status ...
MySQL連線失敗
在命令列 計算機右鍵管理.mysql workbench中啟動mysql server均失敗,提示說can t connect to mysql server on localhost 10061 2003 搞了兩三個小時,糾結死了,在網上找了很多,也試過但是沒用。最後終於找到乙個有用的。在命令列中...
mysql 遠端連線失敗 mysql 遠端連線失敗
一 mysql 禁止 ip 遠端連線 mysql 庫 user表中 host 為 localhost 修改為 允許所有 ip 連線 或者 新增一條資料 host 為允許連線的 ip 二 授權某個使用者可以遠端連線 以root為例 grant all privileges on to root ide...