Mat*_*sen 21 mysql remote-connection raspberry-pi
我有一个Raspberry Pi,可存储自制活动的温度数据.我正在我的计算机上创建一个Spring MVC应用程序,我想点击数据.我的Pi和我的电脑都在本地网络上.我可以完美地将SSH和FTP连接到我的RPi中.
mysql --192.168.1.102 --u root -p db
Run Code Online (Sandbox Code Playgroud)
导致"无法连接到'192.168.1.102上的MySQL服务器'".
显然,我的Java应用程序也没有连接.
SHOW VARIABLES WHERE VARIABLE_NAME = 'port' ;
Run Code Online (Sandbox Code Playgroud)
返回默认端口3306.
是否有必须启用的设置才允许远程连接到MySQL?
Luk*_*iuk 33
我自己最近遇到了同样的问题.我通过以下方式实现了它:
编辑MySQL配置
默认情况下,MySQL未配置为接受远程连接.您可以通过修改配置文件来启用远程连接:
sudo nano /etc/mysql/my.cnf
Run Code Online (Sandbox Code Playgroud)
找到该[mysqld]部分.您需要更改的行bind-address,应该设置为默认值127.0.0.1.您想要编辑此行,而是在网络上显示您的RPi的IP(从您的示例中看起来似乎是192.168.1.102).写下更改.
重启MySQL服务
sudo service mysql restart
Run Code Online (Sandbox Code Playgroud)
设置MySQL权限
以root身份连接到MySQL实例:
mysql -p -u root
Run Code Online (Sandbox Code Playgroud)
创建用户:
CREATE USER '<username>'@'<ip_address>' IDENTIFIED BY '<password>';
Run Code Online (Sandbox Code Playgroud)
授予相关数据库和表的权限:
GRANT ALL PRIVILEGES ON <database>.* TO '<username>'@'<ip_address>' IDENTIFIED BY '<password>';
Run Code Online (Sandbox Code Playgroud)
应该有希望这样做!
以下内容对我有用,感谢在这个教学中发现的评论:
GRANT ALL ON *.* TO 'root'@'192.168.1.%' IDENTIFIED BY 'your_password_here';我使用了 192.168.1.% 以便我网络上的任何计算机都可以连接到它)sudo nano /etc/mysql/my.cnf) 文件并查找“bind-address”并将其注释掉(在该行前面放一个 #)service mysql reload)service mysql restart)