如何在Raspberry Pi上打开MySQL进行外部/远程连接?
我有一个树莓圆周率指数,为家庭酿造活动存储温度数据。我正在我的计算机上制作一个SpringMVC应用程序,我想点击数据。我的Pi和计算机都在本地网络上。我可以将SSH和FTP完美地传输到我的RPi中如何在Raspberry Pi上打开MySQL进行外部/远程连接?,mysql,raspberry-pi,remote-connection,Mysql,Raspberry Pi,Remote Connection,我有一个树莓圆周率指数,为家庭酿造活动存储温度数据。我正在我的计算机上制作一个SpringMVC应用程序,我想点击数据。我的Pi和计算机都在本地网络上。我可以将SSH和FTP完美地传输到我的RPi中 mysql --192.168.1.102 --u root -p db 导致“无法连接到'192.168.1.102'上的MySQL服务器” 显然,我的Java应用程序也没有连接 SHOW VARIABLES WHERE VARIABLE_NAME = 'port' ; 返回默认端口3306
mysql --192.168.1.102 --u root -p db
导致“无法连接到'192.168.1.102'上的MySQL服务器”
显然,我的Java应用程序也没有连接
SHOW VARIABLES WHERE VARIABLE_NAME = 'port' ;
返回默认端口3306
是否必须启用一个设置才能允许远程连接到MySQL?我最近也遇到了同样的问题。我通过以下操作使其工作: 编辑MySQL配置 默认情况下,MySQL未配置为接受远程连接。您可以通过修改配置文件来启用远程连接:
sudo nano /etc/mysql/my.cnf
查找[mysqld]
部分。您需要更改的行是绑定地址
,它应该设置为默认值127.0.0.1
。您希望编辑这一行,以显示网络上RPi的IP(在您的示例中,它似乎是192.168.1.102)。写下更改
重新启动MySQL服务
sudo service mysql restart
设置MySQL权限
以root用户身份连接到MySQL实例:
mysql -p -u root
创建用户:
CREATE USER '<username>'@'<ip_address>' IDENTIFIED BY '<password>';
创建由“”标识的用户“@”;
- 语法中的撇号(')是必需的
- IP地址是您试图连接的网络上设备的IP地址
GRANT ALL PRIVILEGES ON <database>.* TO '<username>'@'<ip_address>' IDENTIFIED BY '<password>';
将。*上的所有权限授予由“”标识的“@”;
- 这些参数是在上一步中用于创建用户的参数
- *将授予对指定数据库中所有表的访问权限。或者,您可以指定一个特定的表
- 您可能只想通过授予相关特权来加强安全性,但这应该足以测试它是否有效
希望能做到 以下内容对我很有用,这是我在instructable上找到的一条评论:
Grant ALL ON*.*到'root'@'192.168.1.%'由'your_password_here'标识代码>(我使用192.168.1.%,这样网络上的任何计算机都可以连接到它)
sudo nano/etc/mysql/my.cnf
)并查找“bind address”并将其注释掉(在行前放一个#)服务MySQL重新加载
)服务MySQL重新启动
)如果您的问题是无法在Raspberry Pi上远程连接MySQL,请尝试以下步骤。我也遇到了同样的问题,通过执行以下命令得到了解决 1)
sudo nano/etc/mysql/my.cnf
2) #bind address=127.0.0.1
//注释掉这一行
bind-address = 0.0.0.0 //add this line just below above line
3) sudo/etc/init.d/mysql restart
//重新启动mysql
4) sudo mysql-u root-p
//以用户“root”身份登录mysql cli
5) 使用GRANT选项将**上的所有权限授予由“beta”标识的“root”@“%”代码>
这里“root”是mysql用户,“beta”是密码,这里为“root”设置了权限。相应地更改它,并在mysql cli中执行上述查询
祝你好运 为什么当被低估的答案就在这里时,整个堆栈溢出都是废话?你不需要另外做flush特权代码>?