远程连接 Mysql 失败的解决方法

今天在虚拟机Ubuntu上折腾了一晚上mysql,然后试着用java连接,搞了很久都没成功,但是同学配好的Debian上却连接成功了,也就是说我的配置有问题。折腾了很久,最后还是通过理解异常信息来大致猜测。

操作方法

  • 01

    远程连接是输入mysql所在主机的IP和端口来确定主机的逻辑地址,再通过用户和密码来确定登录哪个用户。比如: String url = "jdbc:mysql://192.168.183.134:3306/mysql"; 就是先在网络层连上IP为192.168.183.134的主机,再去连接这台主机的具体端口3306(传输层),然后传输层达成连接后,在应用层用账号密码登陆,访问mysql数据库: Connection conn = DriverManager.getConnection(url, user, password); 一开始我怀疑是否端口设置问题,然后在/etc/mysql/my.cnf上加上了port=3306,结果还是连不上,显示端口拒绝访问。 然后用命令$netstat -apn 找到端口3306的一条信息: tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 仔细一看,这里提供的IP是127.0.0.1,结合socket编程的经验,一般要接收任意主机发送的消息时,IP会设置为0.0.0.0,而127.0.0.1(回送地址)是否意味着只能本地访问?然后打开同学的Debian查看他的mysql占用端口时,果然如我所想: tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 经过一番搜索后,得出结论是mysql默认只提供给本地访问,而要开启远程访问功能需要额外设置。从安全的角度看这也是合理的。 设置方法还是修改配置文件/etc/mysql/my.cnf [client] default-character-set=utf8 [mysqld] default-storage-engine=INNODB character-set-server=utf8 collation-server=utf8_general_ci port=3306 bind-address=0.0.0.0 utf8相关的是之前本地录入汉字数据时发现插入失败,汉子和VARCHAR不兼容,在mysql模式下输入STATUS查看的状态时: Server characterset: latin1 Db characterset: latin1 Client characterset: utf8 Conn. characterset: utf8 部分选自《linux就该这么学》感兴趣可以去看下 经过这个修改后,前2个字符集就全变成了utf8,支持中文。其他的修改就如同我所说的,绑定IP为0.0.0.0,即接收任意地址的主机的连接,端口绑定3306。 但是依然不能访问,只不过错误信息发生了改变,这次很明确了,是显示用户没有连接权限,也就是说用户只能本地连接,依然搜索资料后得出解决方案如下:

  • 02

    1.新建用户远程连接mysql数据库 mysql> grant all on *.* to team@'%' identified by 'java123' with grant option; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)

  • 03

    2.支持root用户允许远程连接mysql数据库 mysql> grant all on *.* to 'root'@'%' identified by 'cplusplus' with grant option; Query OK, 0 rows affected, 1 warning (0.01 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) 参考:配置mysql允许远程连接的方法

(0)

相关推荐

  • CredSSP远程桌面加密Oracle修正连接服务器失败的解决方法

    远程桌面是我们计算机中一项功能,为用户所喜爱,可是不少小伙伴却在连接远程桌面时出现了一些麻烦,出现了"CredSSP远程桌面加密Oracle修正连接服务器失败"的系统提示.我们应该 ...

  • 详解Windows10系统连接硬盘失败的解决方法

    详解Windows10系统连接硬盘失败的解决方法:硬盘有固态硬盘(SSD 盘,新式硬盘)、机械硬盘(HDD 传统硬盘)、混合硬盘(HHD 一块基于传统机械硬盘诞生出来的新硬盘)。SSD采用闪存颗粒来存 ...

  • win7连接wifi失败的解决方法

    win7是我们经常使用的计算机系统,它可供家庭及商业工作环境.笔记本电脑.平板电脑.多媒体中心等使用,用途强大.然而,在使用时我们依然会存在诸多困惑,比如怎么解决连接wifi失败呢?话不多说,小编今天 ...

  • Win7系统无法创建远程连接管理服务的解决方法

    要解决这个故障,我们需要启动Remote Access Connection Manager与Network Connections及Telephony服务。我们可通过两种方法启动服务: 启动方法一: ...

  • Win7无法创建远程连接管理服务的解决方法

    要解决这个故障,我们需要启动Remote Access Connection Manager与Network Connections及Telephony服务。我们可通过两种方法启动服务: 启动方法一: ...

  • Win7远程桌面连接不上怎么办?Win7远程桌面连接不上的解决方法

    Win7远程桌面连接不上怎么办?Win7系统应该说是最多人在用的系统,Win7的远程桌面功能非常实用,方便我们远程操作电脑.最近有用Win7系统的用户反应,远程桌面有时候会发生连接不上的问题,这又是怎 ...

  • 宽带连接提示错误678解决方法

    宽带连接错误678最简单实用的解决方法,如果按照下面的步骤依然不能解决问题,请及时与当地宽带提供商联系。 错误678怎么解决? 错误代码678怎么解决? 提示完整信息:错误678:远程计算机没有反应。 ...

  • windows7/8升级win10卡在32%造成升级失败的解决方法

    随着win正式版发布了有两个多月了,很多用户都抢先升级到了win10系统,直接从win7.win8系统升级到win10系统的用户不在少数,不过有部分用户反映在升级win10的过程中出现卡在32%时,就 ...

  • win8宽带连接错误813的解决方法

    现在的社会无线网铺天盖地,不管是家庭.公司还是商业大楼中都设置了无线网,这也能说明我们国家的互联网发展迅速,已经变成一个互联网大国.即使无线网使用的如此频繁,但是网线连接一直没有被磨灭掉,能够保存必有 ...