树莓派学习笔记1 -- 解决mysql无法远程连接问题

来源:互联网 发布:php模拟form post提交 编辑:程序博客网 时间:2024/05/16 10:26

以前犯懒从来没学过博客,随着时间推移很多资料和学习资料不好找或者丢失了,觉得很有必要把学习过程记录下来,以后希望能坚持下去。

树莓派安装mysql过程就不重复了,网上很多,可以参考这位大侠的《树莓派(raspberry pi)学习11: 将树莓派变成一个Web服务器 》。

搭建好Web服务器后,Navicat premium数据库管理工具挺不错的,支持mysql、postgreSQL、SQLServer、Oracle和Sqlite,希望通过Navicat premium工具来远程管理mysql数据库,可视远程连接总提示无法连接(10038),按照网上通常的改表改权限无法解决,梳理了下思路,正如别人说的,连接不上无非两个原因:一个是连接网络包括端口原因;mysql配置原因。

解决步骤:

第一步,修改mysql配置使得可以远程登陆

1、终端输入 sudo mysql -u root -p"raspberry"             // 引号中替换你自己的root密码

进入mysql终端,如果不能进入确定mysql服务是否已经启动,如果没启动可以尝试 sudo service mysql start


2、mysql终端输入 use mysql;

选择mysql数据库,记得带上分号


3、查看user表记录并将host中改为%,输入  select host,user,password from user;

查看记录,我的表里有很多条user='root'记录,user表是host和user两个形成主键,所以象网上说的 用一条“update user set host = '%' where user = 'root';”是不可以的,所以要加上where条件,根据自己查询记录来修改,我的是这么写的:

update user set host='%'  where host='localhost' AND user='root';


第二步,针对端口配置

如果经过第一步还是无法连接,请尝试如下步骤

1、树莓派终端中输入: cat /etc/services | grep mysql

确定mysql的端口号为3306


2、查看3306状态:netstat -tanp

这里发现是127.0.0.1:3306 ,而发现ftp和80端口都是0.0.0.0:21 或 80,说明已经把端口绑定在127回路上,需要去掉绑定;


3、修改mysql配置文件 sudo nano /etc/mysql/my.cnf

bind-address = 127.0.0.1前面加# 注释掉,这样3306端口不会绑定在回路上只允许本地访问


4、在windows中运行cmd打开命令行窗口,输入 telnet 192.168.1.109 3306    // 这里的ip换成你自己的,3306是mysql默认端口

win7默认不带telnet,请在“程序” -- “打开关闭Windows功能”里面添加。如果显示无法连接,可以尝试输入 telnet 192.168.1.109 80 (如果你已经配好了web服务器)或者telnet 192.168.1.109 21(如果已经安装了ftp)看是否能连通。如果能通的话,基本用navicat也没有问题。如果还是不行,查看是否是本地防火墙原因。


参考:

Linux端口状态查看,端口的打开与关闭

mysql 远程连接不上,由于bind-address问题

0 0
原创粉丝点击