回答
這在MySQL中默認是允許的。
默認情況下禁用的是遠程root
訪問。如果要啓用,在本地運行SQL命令:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
,然後找到下面一行,在my.cnf
文件,通常生活在/etc/mysql/my.cnf
在Unix/OSX系統評論它。在某些情況下,該文件的位置是/etc/mysql/mysql.conf.d/mysqld.cnf)。
如果是Windows系統,可以在MySQL安裝目錄找到它,通常是C:\Program Files\MySQL\MySQL Server 5.5\
,文件名將是my.ini
。
行更改
bind-address = 127.0.0.1
到
#bind-address = 127.0.0.1
如果您的MySQL服務器進程正在偵聽127.0.0.1或:: 1,那麼您將無法遠程連接。如果您在/etc/my.cnf
中設置了bind-address
設置,則可能是問題的根源。
您還必須爲非localhost
用戶添加權限。
在我的情況下,我試圖連接到分OS的遠程MySQL服務器。在經歷了許多解決方案(授予所有權限,刪除IP綁定,啓用聯網)問題後,仍然沒有解決。
事實證明,在研究各種解決方案時,我遇到了iptables,這讓我意識到mysql端口3306不接受連接。
這是關於如何檢查和解決此問題的小記事。
- 檢查是否端口正在接受連接:
telnet (mysql server ip) [portNo]
- 添加IP表規則,允許端口上的連接:
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
- 不會推薦爲生產環境,但如果你的iptables配置不正確,添加規則可能不能解決問題。在這種情況下,下面要做到:
service iptables stop
希望這有助於。
你剛剛救了我的屁股 – JafarAlali92 2017-08-09 13:00:23
完成上述所有操作後,我仍然無法遠程登錄爲root
,但通過Telnet到端口3306
確認MySQL
正在接受連接。
我開始看着MySQL中的用戶,注意到有不同的密碼multiple root users。
select user, host, password from mysql.user;
所以在MySQL
我再次set all the passwords for root,我終於可以遠程登錄爲root
。
use mysql;
update user set password=PASSWORD("NEWPASSWORD") where User='root';
flush privileges;
對於需要它的人,如果您的防火牆服務正在運行,那麼檢查防火牆端口3306也是開放的。
僅供參考 我拉我的頭髮,這個問題了幾個小時。最後我把我的託管服務提供商,發現我的情況下使用,在對的1and1控制面板他們有,你有一個二次防火牆的雲服務器克隆和添加端口3306.一旦添加,我就直接進入了。
這聽起來非常特定於您的情況。我不是網絡知識的源泉,但您確定這個解決方案適用於這個問題嗎? – 2016-12-13 21:34:14
我也有過這個問題。與雲託管的服務器共同, – 2017-04-11 07:08:53
而對於OS X的人們,請注意綁定地址參數通常在啓動的plist中設置,而不是在my.ini文件中。所以在我的情況下,我從/Library/LaunchDaemons/homebrew.mxcl.mariadb.plist
刪除<string>--bind-address=127.0.0.1</string>
。
plist文件的替代位置:'〜/ Library/LaunchAgents' – 2017-06-14 15:17:38
如果您從brew
安裝了MySQL,它默認只在本地接口上偵聽。要解決您需要編輯/usr/local/etc/my.cnf
並將bind-address
從127.0.0.1
更改爲*
。
然後運行brew services restart mysql
。
從我的經驗來看,您可以在此路徑下找到配置文件/etc/mysql/mysql.conf.d/mysqld.cnf
。
(我掙扎了一段時間才能找到這條路徑)
這個博客How to setup a MySQL server on Local Area Network將是從頭開始建立一個MySQL
有用
請按照以下提到的步驟序來設置通配符遠程訪問MySQL用戶。
的(1)打開cmd。 (2)導航到路徑C:\ Program Files \ MySQL \ MySQL服務器5.X \ bin和 運行此命令。
的MySQL -u根-p
(3)輸入根密碼。
(4)執行以下命令以提供權限。
授予特權。至'USERNAME'@'IP' 'PASSWORD';
USERNAME:您希望連接到MySQL服務器的用戶名。
IP:您希望允許訪問MySQL 服務器的公共IP地址。
PASSWORD:使用的用戶名的密碼。
IP可以用%代替以允許用戶從任何IP地址連接到 地址。
(5)通過以下命令並退出,沖洗前置物。
FLUSH PRIVILEGES;
exit;
完成之後,我的根目錄仍然存在拒絕訪問。我錯過了什麼? – teapeng 2018-01-04 03:03:57
- 1. 允許所有遠程連接,MySQL
- 2. MySQL的不允許遠程連接
- 3. 允許遠程連接postgresql
- 4. 允許用戶遠程連接到MySQL數據庫
- 5. SQL Server 2008.允許遠程連接?
- 6. 允許SQL Server遠程連接
- 7. SQL Server 2008允許遠程連接嗎?
- 8. 如何在Mac的MAMP中允許遠程連接到mysql數據庫
- 9. 如何允許遠程mysql登錄?
- 10. 如何遠程連接到mySQL實例?
- 11. servlet連接到遠程mysql
- 12. 遠程連接到mysql?
- 13. ZeosLib允許遠程連接到Android中的MSSQL嗎?
- 14. 如何允許多個連接到Dancer2
- 15. 當連接到SQL Server 2005時,SQL Server不允許遠程連接
- 16. 遠程連接MySQL
- 17. 遠程連接MySQL
- 18. Mysql遠程連接
- 19. 如何加快遠程mysql連接
- 20. 如何連接遠程mysql數據庫
- 21. 允許mysql無密碼連接
- 22. MySQL不允許外部連接
- 23. 允許https連接
- 24. 連接遠程mysql時連接ETIMEOUT db
- 25. 無法連接到遠程MySQL與PHP
- 26. 無法遠程連接到mysql
- 27. PHP連接到遠程MySQL服務器
- 28. 遠程連接到MySQL數據庫
- 29. 我無法連接到遠程MySQL
- 30. 連接到遠程mysql服務器
可能重複[啓用遠程MySQL連接(http://stackoverflow.com/questions/8380797/enable-remote-mysql-connection) – user 2014-03-10 03:34:37
不要對不是代碼的文本使用代碼格式。無關。 – EJP 2017-11-25 08:51:12