Mysql連線失敗總結

2021-05-23 19:11:10 字數 3196 閱讀 5470

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...