navicat遠程連接mysql報錯10038一般由以下兩個原因:
一:本地防火墻問題
在本地安裝了mysql、navicat并打開了mysql服務的情況下,來設置防火墻。
首先右擊或者點擊入站規則,找到新建規則,點擊。
點擊端口。
在特定本地端口中填入3306.
一直點擊下一步。
這里可以給一個好分別的名稱即可。
之前再嘗試連接即可,若仍然不可以,可能是服務器方面的問題。
二:服務器3306端口未打開
首先需要在安全組開放端口。
我這里使用的是阿里云服務器。首先需要進入云服務器,找到安全組。
進入里面找到配置規則。
然后進行快速添加,添加3306端口即可。
之后同樣在云服務器下再進入實例列表,點擊遠程連接,進入服務器終端。
然后在命令行輸入firewall-cmd --query-port=3306/tcp
若這里顯示的是no,那么需要讓防火墻開啟3306端口:
1.開啟端口3306
firewall-cmd --zone=public --add-port=3306/tcp --permanent
2.重啟防火墻
firewall-cmd --reload
查看已經開放的端口
firewall-cmd --list-ports
接著需要讓mysql開啟遠程訪問權限:
1.登陸mysql (若遺忘數據庫密碼,往下看)
mysql -u root -p
2.設置訪問地址(本人實際操作的時候并沒有設置就可以連接成功了)
1
2
|
如果你想允許用戶root從ip為192.168.1.123的主機連接到mysql服務器,并使用root作為密碼 grant all privileges on *.* to 'root' @ '192.168.1.123' identified by 'password' with grant option ; |
3.刷新
flush privileges;
如果在上面第1步登陸mysql的時候遺忘了密碼,可以進行以下操作。
(以下主要來源于:linux下mysql忘記密碼解決方案)
1.檢查mysql服務是否啟動,如果啟動,關閉mysql服務
運行命令:ps -ef | grep -i mysql
如果開著就運行關閉的命令:service mysqld stop
2.修改mysql的配置文件my.conf
一般在/etc目錄下,運行命令:vi /etc/my.cnf,編輯文件、
在文件的[mysqld]標簽下添加一句:skip-grant-tables
然后wq!保存退出。
3.重啟數據庫
運行命令:service mysqld start
4.進入到mysql數據庫
運行命令:mysql -u root
5.修改密碼
運行語句:use mysql;
繼續運行語句:update mysql.user set authentication_string=password('root_password') where user='root';
root_password替換成你想要的密碼
6.把步驟2加的東西刪除掉,再重啟服務器,就可以使用剛才修改的密碼登錄進服務器了。
到這一步已經全部結束。
以上就是本人解決10038問題的時候的一些步驟啦~
到此這篇關于關于navicat遠程連接mysql報錯10038的問題的文章就介紹到這了,更多相關navicat遠程連接錯誤10038內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/qq_33390316/article/details/109952277