本文目錄一覽:
- 1、mysql連接數據庫失敗,請確定數據庫用戶名,密碼設置正確
- 2、Navicat for mysql無法連接數據庫
- 3、無法連接MySQL數據庫
- 4、mySQL數據庫連接不上怎麼辦。。
- 5、管理員,創建遠程mysql數據庫用戶,為什麼連接不上
- 6、無法連接遠程MySQL數據庫哪,如何解決
mysql連接數據庫失敗,請確定數據庫用戶名,密碼設置正確
現象
一線的工程師反映了一個奇怪的現象,剛剛從 MySQL 官網上下載了一個 MySQL 5.7.31。安裝完成後,發現使用任何密碼都能登陸 MySQL,修改密碼也不管用,重新啟動 MySQL 也不能解決。
分析
懷疑使用了 –skip-grant-tables 使用 mysqld –print-defaults 檢查,沒有發現。
檢查登陸用戶,都是 root@localhost,說明和 proxy user 沒有關係。
使用 mysql –print-defaults 檢查客戶端是否設置默認的用戶和密碼,沒有發現。
檢查數據庫中的用戶和密碼的相關字段:
發現一切都正常,再檢查 plugin 字段,發現只有 root 用戶是 auth_socket ,其它的用戶都是 mysql_native_password,問題可能就出在這兒。
對 auth_socket 驗證插件不了解,感覺是這個插件不安全,使用下面的命令修改後,問題解決:
update user set plugin=”mysql_native_password” where user=’root’;
auth_socket 驗證插件的使用場景
問題解決後,又仔細研究了一下 auth_socket 這個插件,發現這種驗證方式有以下特點:
首先,這種驗證方式不要求輸入密碼,即使輸入了密碼也不驗證。這個特點讓很多人覺得很不安全,實際仔細研究一下這種方式,發現還是相當安全的,因為它有另外兩個限制;
只能用 UNIX 的 socket 方式登陸,這就保證了只能本地登陸,用戶在使用這種登陸方式時已經通過了操作系統的安全驗證;
操作系統的用戶和 MySQL 數據庫的用戶名必須一致,例如你要登陸MySQL 的 root 用戶,必須用操作系統的 root用戶登陸。
auth_socket 這個插件因為有這些特點,它很適合我們在系統投產前進行安裝調試的時候使用,而且也有相當的安全性,因為系統投產前通常經常同時使用操作系統的 root 用戶和 MySQL 的 root 用戶。當我們在系統投產後,操作系統的 root 用戶和 MySQL 的 root 用戶就不能隨便使用了,這時可以換成其它的驗證方式,可以使用下面的命令進行切換:
ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘test’;
Navicat for mysql無法連接數據庫
錯誤10061的意思是MySQL的服務還沒有啟動,所以無法連接.Wamp在托盤位置有個白色的扇形的圖標.點擊它,然後PutOnline,如果你的圖標和我的一樣,那麼才說明包括Apache和MySQL兩個服務都啟動正常.
開始-運行-services.msc,看一看wampmysqld服務是不是已啟動,如果這個沒啟動.表示wamp的MySQL服務的確沒起來.樓主需要重裝下Wamp了.
無法連接MySQL數據庫
並不是你的 帳號密碼錯了 而是你的鏈接字符串里 的 host 寫的是IP地址
出現這個問題的原因是因為你的 root 的host權限為 LocalHost
您可以修改 root的 host權限 為 % 就可以了~
UPDATE mysql.user SET HOST=’%’ WHERE USER=’root’;
mySQL數據庫連接不上怎麼辦。。
這問題頭疼,是不是要講詳細.。局域網處理方案,一般連接檢查順序:
1.查看數據庫監聽端口;
2.查看該監聽服務啟動沒有;
3.查看驅動包有沒有放(服務器端common-lib,開發工具common開發包[一般自帶有];
4.運行jdbc連接程序,有沒有出異常,出異常上面沒弄好,看看異常,就可以追蹤處理。
5.直接使用開發工具的鏈接測試平台,備好各個屬性,添入驅動包,測試鏈接是否成功,成功你的程序有問題,沒成功換驅動包。
管理員,創建遠程mysql數據庫用戶,為什麼連接不上
應該是沒有授權的問題,給你的數據庫用戶賦上所有主機連接權限:
1
GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ IDENTIFIED BY ‘password’ WITH GRANT OPTION;
上述語句意思是將root用戶賦予可以訪問任何主機的任何數據庫權限,注意password為你設置的root用戶密碼。
無法連接遠程MySQL數據庫哪,如何解決
一、連接遠程數據庫:
1、顯示密碼
如:MySQL
連接遠程數據庫(192.168.5.116),端口「3306」,用戶名為「root」,密碼「123456」
C:/mysql -h
192.168.5.116 -P 3306 -u root -p123456
2、隱藏密碼
如:MySQL 連接本地數據庫,用戶名為「root」,
C:/mysql -h
localhost -u root -p
Enter password:
二、配置mysql允許遠程鏈接
默認情況下,mysql帳號不允許從遠程登陸,只能在localhost登錄。本文提供了二種方法設置mysql可以通過遠程主機進行連接。
一、改表法
在localhost登入mysql後,更改 “mysql” 數據庫里的 “user” 表裡的 “host”
項,將”localhost”改稱”%”
例如:
#mysql -u root
-p
Enter password:
……
mysql
mysqlupdate user
set host = ‘%’ where user = ‘root’;
mysqlselect host,
user from user;
二、授權法
例如:
你想myuser使用mypassword(密碼)從任何主機連接到mysql服務器的話。
mysqlGRANT ALL
PRIVILEGES ON *.* TO ‘myuser’@’%’IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;
如果你想允許用戶myuser從ip為192.168.1.6的主機連接到mysql服務器,並使用mypassword作為密碼
mysqlGRANT ALL
PRIVILEGES ON *.* TO ‘myuser’@’192.168.1.3’IDENTIFIED BY
‘mypassword’ WITH GRANT OPTION;
mysqlFLUSH
PRIVILEGES
使修改生效,就可以了
常見問題:
1、在採用法二授權法之後,無法在本地登錄mysql(如:#mysql -u root -p -h
192.168.5.116
Enter password:
ERROR 1045 (28000): Access denied for user
‘root’@’loadb116’ (using password: YES)
上例中loadb116是主機名.
解決方法:
1、這時可以使用:mysql -u
root -p 登錄,進入到mysql後。
mysql grant all privileges on *.* to ‘root’@’loadb116’
identified by ‘123456’ with grant option;
Query OK, 0 rows affected
(0.00 sec)
mysql flush
privileges;
Query OK, 0 rows affected (0.00
sec)
2、在本地使用ip地址登錄
#
mysql -u root -p -h
192.168.5.116
Enter password:
Welcome to the MySQL
monitor. Commands end with ; or /g.
Your MySQL connection id is 60
Server
version: 5.1.45 MySQL Community Server (GPL)
Type ‘help;’ or ‘/h’ for
help. Type ‘/c’ to clear the buffer.
mysql
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/244880.html