mysql認(rèn)證失敗怎么辦 驗(yàn)證mysql安裝成功

安裝了mysql5.5后驗(yàn)證是否成功出現(xiàn)問(wèn)題

這應(yīng)該是你的環(huán)境配置問(wèn)題。

我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、青川ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的青川網(wǎng)站制作公司

檢查一下你的php中mysql的擴(kuò)展是否開(kāi)啟。

檢查你的mysql的相關(guān)dll是否放到windows/system中

#1045 無(wú)法登錄 MySQL 服務(wù)器

解決辦法是重新設(shè)置root用戶密碼,在Windows平臺(tái)下操作步驟如下:

1、以系統(tǒng)管理員身份登錄到系統(tǒng);

2、如果MySQL服務(wù)器正在運(yùn)行,停止它。

如果是作為Windows服務(wù)運(yùn)行的服務(wù)器,進(jìn)入服務(wù)管理器:開(kāi)始菜單-控制面板-管理工具-服務(wù)

如果服務(wù)器不是作為服務(wù)而運(yùn)行的,可能需要使用任務(wù)管理器來(lái)強(qiáng)制停止它。

3、創(chuàng)建1個(gè)文本文件,并將下述命令置于單一行中:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');

用任意名稱保存該文件。在本例中,該文件為C:\mysql-init.txt。

4、進(jìn)入DOS命令提示:開(kāi)始菜單-運(yùn)行- cmd

假定你已將MySQL安裝到C:\mysql。如果你將MySQL安裝到了另一位置,請(qǐng)對(duì)下述命令進(jìn)行相應(yīng)的調(diào)整。

在DOS命令提示符下,執(zhí)行命令:

C:\ C:\mysql\bin\mysqld-nt --init-file=C:\mysql-init.txt

在服務(wù)器啟動(dòng)時(shí),執(zhí)行由“--init-file”選項(xiàng)(作用:在啟動(dòng)時(shí)從指定的文件中讀取SQL命令)命名的文件的內(nèi)容,更改根用戶密碼。當(dāng)服務(wù)器成功啟動(dòng)后,應(yīng)刪除C:\mysql-init.txt。

5、停止MySQL服務(wù)器,然后在正常模式下重啟它。如果以服務(wù)方式運(yùn)行服務(wù)器,應(yīng)從Windows服務(wù)窗口啟動(dòng)它。如果以手動(dòng)方式啟動(dòng)了服務(wù)器,能夠像正常情形下一樣使用命令。

附:

其他方法

方法一:

# /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: 輸入新設(shè)的密碼newpassword

mysql

方法二:

直接使用/etc/mysql/debian.cnf文件中[client]節(jié)提供的用戶名和密碼:

# mysql -udebian-sys-maint -p

Enter password: 輸入[client]節(jié)的密碼

mysql UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’;

mysql FLUSH PRIVILEGES;

mysql quit

# mysql -uroot -p

Enter password: 輸入新設(shè)的密碼newpassword

mysql

另一個(gè)方法

Windows:

1. 管理員登陸系統(tǒng),停止mysql服務(wù)或者結(jié)束mysqld-nt進(jìn)程

2. 進(jìn)入命令行,來(lái)到mysql的安裝目錄.假設(shè)安裝目錄為 d:\mysql\ , CMD進(jìn)入命令行

3. 運(yùn)行 d:\mysql\bin\mysqld-nt --skip-grant-tables 啟動(dòng)mysql,關(guān)閉權(quán)限的檢查

4. 運(yùn)行 d:\mysql\bin\mysqladmin -u root flush-privileges password "newpassword" 重設(shè)root密碼

5. 重新啟動(dòng)mysql服務(wù)

mysql error:Access denied for user 'root'@'localhost' (using password: YES)

①右鍵點(diǎn)擊C盤(其他盤符也行)?屬性?安全?編輯

②打開(kāi)之后,在這里查看當(dāng)前的賬戶是否在其中?如在,點(diǎn)選編輯。

③選擇用戶或組→高級(jí)→選擇用戶或組→立即查找,找到后點(diǎn)選該用戶→確定

④返回→確定,這里是重點(diǎn),一般默認(rèn)是沒(méi)有所有權(quán)限的,點(diǎn)擊允許中的完全控制→確定。

處理異常情況:

點(diǎn)選 高級(jí)→所有者→編輯

輸入ev→檢查名稱→添加權(quán)限即可。

權(quán)限管理,一般指根據(jù)系統(tǒng)設(shè)置的安全規(guī)則或者安全策略,用戶可以訪問(wèn)而且只能訪問(wèn)自己被授權(quán)的資源,不多不少。權(quán)限管理幾乎出現(xiàn)在任何系統(tǒng)里面,只要有用戶和密碼的系統(tǒng)。 很多人,常將“用戶身份認(rèn)證”、“密碼加密”、“系統(tǒng)管理”等概念與權(quán)限管理概念混淆。

從控制力度來(lái)看,可以將權(quán)限管理分為兩大類:

1,功能級(jí)權(quán)限管理;

2,數(shù)據(jù)級(jí)權(quán)限管理。

從控制方向來(lái)看,也可以將權(quán)限管理分為兩大類:

1,從系統(tǒng)獲取數(shù)據(jù),比如查詢訂單、查詢客戶資料;

2,向系統(tǒng)提交數(shù)據(jù),比如刪除訂單、修改客戶資料。

用mysql驗(yàn)證登陸失敗

現(xiàn)象

一線的工程師反映了一個(gè)奇怪的現(xiàn)象,剛剛從 MySQL 官網(wǎng)上下載了一個(gè) MySQL 5.7.31。安裝完成后,發(fā)現(xiàn)使用任何密碼都能登陸 MySQL,修改密碼也不管用,重新啟動(dòng) MySQL 也不能解決。

分析

懷疑使用了 --skip-grant-tables 使用 mysqld --print-defaults 檢查,沒(méi)有發(fā)現(xiàn)。

檢查登陸用戶,都是 root@localhost,說(shuō)明和 proxy user 沒(méi)有關(guān)系。

使用 mysql --print-defaults 檢查客戶端是否設(shè)置默認(rèn)的用戶和密碼,沒(méi)有發(fā)現(xiàn)。

發(fā)現(xiàn)一切都正常,再檢查 plugin 字段,發(fā)現(xiàn)只有 root 用戶是 auth_socket ,其它的用戶都是 mysql_native_password,問(wèn)題可能就出在這兒。

問(wèn)題解決

對(duì) auth_socket 驗(yàn)證插件不了解,感覺(jué)是這個(gè)插件不安全,使用下面的命令修改后,問(wèn)題解決:

update user set plugin="mysql_native_password" where user='root';

auth_socket 驗(yàn)證插件的使用場(chǎng)景

問(wèn)題解決后,又仔細(xì)研究了一下 auth_socket 這個(gè)插件,發(fā)現(xiàn)這種驗(yàn)證方式有以下特點(diǎn):

首先,這種驗(yàn)證方式不要求輸入密碼,即使輸入了密碼也不驗(yàn)證。這個(gè)特點(diǎn)讓很多人覺(jué)得很不安全,實(shí)際仔細(xì)研究一下這種方式,發(fā)現(xiàn)還是相當(dāng)安全的,因?yàn)樗辛硗鈨蓚€(gè)限制;

只能用 UNIX 的 socket 方式登陸,這就保證了只能本地登陸,用戶在使用這種登陸方式時(shí)已經(jīng)通過(guò)了操作系統(tǒng)的安全驗(yàn)證;

操作系統(tǒng)的用戶和 MySQL 數(shù)據(jù)庫(kù)的用戶名必須一致,例如你要登陸 MySQL 的 root 用戶,必須用操作系統(tǒng)的 root 用戶登陸。

auth_socket 這個(gè)插件因?yàn)橛羞@些特點(diǎn),它很適合我們?cè)谙到y(tǒng)投產(chǎn)前進(jìn)行安裝調(diào)試的時(shí)候使用,而且也有相當(dāng)?shù)陌踩?,因?yàn)橄到y(tǒng)投產(chǎn)前通常經(jīng)常同時(shí)使用操作系統(tǒng)的 root 用戶和 MySQL 的 root 用戶。當(dāng)我們?cè)谙到y(tǒng)投產(chǎn)后,操作系統(tǒng)的 root 用戶和 MySQL 的 root 用戶就不能隨便使用了,這時(shí)可以換成其它的驗(yàn)證方式,可以使用下面的命令進(jìn)行切換:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';

我在用mysql數(shù)據(jù)驗(yàn)證注入測(cè)試時(shí)候在文本框用戶名登錄輸入'or 1=1 --登錄失敗,

select * from users where user_name=''or 1=1' and password='$password'

語(yǔ)句中多了個(gè)單引號(hào),查詢語(yǔ)句錯(cuò)了

Mysql8.0.13 登錄報(bào)1045(28000)錯(cuò)誤

mysql-8.0.13 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

一、修改root密碼

mysql?update mysql.user set authentication_string="123456" where user="root";

或:mysqlupdate mysql.user set authentication_string="123456" where user="root" and?host='localhost';

#刷新權(quán)限(必須步驟)

mysql flush privileges;

#查詢密碼是否生效:

mysql select host,user,authentication_string from mysql.user;

mysql-8.0.13修改密碼后mysqlquit? 再次登錄。

mysql - u root -p

password:123456?

報(bào)錯(cuò):ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

找到一種解決方法:

1、cmd-1窗口:無(wú)密碼啟動(dòng)mysql服務(wù)

mysqld --console --skip-grant-tables --shared-memory ;

#--skip-grant-tables 的意思是啟動(dòng)MySQL服務(wù)的時(shí)候跳過(guò)權(quán)限表認(rèn)證。

2、無(wú)密碼登錄,再次修改密碼。

再開(kāi)一個(gè)CMD窗口(前一個(gè)CMD窗口已經(jīng)不能動(dòng)了),轉(zhuǎn)到mysql\bin目錄

mysql -u root -p

-密碼不輸入直接enter

#修改密碼為空

mysql UPDATE mysql.user SET authentication_string='' WHERE user='root';

mysqlflush privileges;? ??

myslqquit? ?

#再次登錄無(wú)密碼登錄

mysql - u root -p

Enter password:?

#enter不輸入密碼進(jìn)入mysql

------------------------------------------------------------------------------------

查詢網(wǎng)上資料,可能是MySQL8.0的caching_sha2_password問(wèn)題,再來(lái)試試

MySQL8.0采用了新的更安全的驗(yàn)證方式,原有修改密碼方法修改密碼后無(wú)法登錄

mysqlupdate mysql.user set authentication_string="123456" where user="root" and?host='localhost';

1、首先查詢用戶

mysql select host,user,plugin,authentication_string from mysql.user;

2、修改密碼和密碼方式

mysql ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

mysql flush privileges;

3、退出再次登錄,成功。

或者也可以修改密碼后再修改plugin

1、mysqlupdate mysql.user set authentication_string="123456" where user="root" and?host='localhost';

2、mysql UPDATE mysql.user SET plugin='mysql_native_password' WHERE user='root';

具體步驟:windows-mysql無(wú)法登錄,修改密碼

1、首先關(guān)閉正在運(yùn)行的MySQL服務(wù)。?

2、打開(kāi)CMD窗口,轉(zhuǎn)到mysql\bin目錄。?

3.、輸入 mysqld --console --skip-grant-tables --shared-memory ;。--skip-grant-tables 的意思是啟動(dòng)MySQL服務(wù)的時(shí)候跳過(guò)權(quán)限表認(rèn)證。

4、再開(kāi)一個(gè)CMD窗口(前一個(gè)窗口已經(jīng)不能動(dòng)了),轉(zhuǎn)到mysql\bin目錄。?

5. 輸入mysql -u root -p回車,出現(xiàn)MySQL提示符 。??

6. 進(jìn)行修改密碼:

ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

# plugin需要改成: mysql_native_password

7. 刷新權(quán)限(必須步驟):flush privileges; 。?

8. 退出 quit。?

9. 再次訪問(wèn),使用用戶名root和新密碼123456登錄。?

#啟動(dòng)mysql服務(wù)? ? net start mysql

#停止mysql服務(wù)? ? net stop mysql

#登錄mysql? ?mysql -u root? -p

#查詢用戶信息?

mysql select host,user,plugin,authentication_string from mysql.user;

#修改密碼:

mysql ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY it'123456';

#退出? mysqlquit

名稱欄目:mysql認(rèn)證失敗怎么辦 驗(yàn)證mysql安裝成功
分享網(wǎng)址:http://muchs.cn/article4/hjshoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、電子商務(wù)、微信公眾號(hào)品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司