本地鏈接虛擬機MySQL提示is not allowed to connect

本文將解決本地Navicat鏈接遠程MySQL服務器提示不容許鏈接。mysql

1、問題還原

本地Navicat鏈接centos7.3虛擬機的MySQL數據庫
在這裏插入圖片描述sql

確認鏈接後會報出一個這樣的錯誤
在這裏插入圖片描述數據庫

2、發現問題

這個問題一看就是遠程鏈接的問題,可是新學習的小夥伴估計就很難想到是這方面的問題,接下來咔咔一步一步的幫助解決這個問題。centos

首先咱們來到虛擬機終端,鏈接上MySQL。安全

執行命令mysql -uroot -p,而後輸入密碼,進入到MySQL服務器

在這裏插入圖片描述
執行指令show databases;能夠查看到目前全部的數據庫
在這裏插入圖片描述
咱們主要須要關注的是mysql這個庫,切換數據庫,執行命令use mysql,在mysql的這個數據庫裏邊有一個user表。
在這裏插入圖片描述
在這裏說一個小小的點,在終端咱們以往執行clear就能夠清屏,可是在mysql中執行clear是沒有做用的。學習

在mysql終端清屏指令是system clearcentos7

好了,迴歸正題,在user表中,咱們只須要倆個信息,一個是hos一個是user。咱們須要執行查詢語句給查詢出來。code

在這裏插入圖片描述
在上圖中,host列指定的是容許用戶登陸的ip,若是爲localhost那就只能本機登陸,遠程是登陸不了的。圖片

這也就是爲何咱們本地navicat鏈接mysql沒法鏈接的緣由。

因爲是本地的虛擬機不存在安全問題,因此咔咔將會把host設置爲%

% 表明通配符,表明這全部的鏈接均可以,不限制任何ip。

注意:在生產環境下不能爲了省事將host設置爲%,這樣作會存在安全問題,具體的設置能夠根據生產環境的IP進行設置;

問題已經找到,接下來就去解決它。

3、解決問題

執行指令update user set host='%' where user='root';,將localhost修改成%,容許讓全部ip鏈接。
在這裏插入圖片描述
到這裏還須要進行一次權限刷新flush privileges

本地navicta再次鏈接數據庫。這個時候就能夠了。

在這裏插入圖片描述

4、擴展

關於flush privileges在何時須要執行。

這個命令是將user和privilege表中的用戶信息或者權限從mysql庫中提取到內存中。

當用戶數據和權限出現修改後,不想重啓數據庫的狀況下就想直接生效,就須要執行這個指令。

也就是說這個指令只針對於用戶數據和用戶權限修改的狀況下。

在這裏插入圖片描述

相關文章
相關標籤/搜索