mysql 远程连接不上,bind-address参数配置要求,以及怎么去使得mysql能够允许远程的客户端访问
刚安装了MySQL服务器,使用远程管理工具总是连接不上,因为知道mysql的默认端口是3306,于是使用telnet连接这个端口,(从这里可以学到telnet是可以这样用的)
telnet 192.168.1.10 3306
还是连接不上,于是怀疑是防火墙问题,便将防火墙关掉,
service iptables stop
再次telnet,还是没办法连上这个端口,然后通过netstat查看3306的端口状态是怎么样的(从这里可以学到netstat是可以这样用的)
netstat -apn | grep 3306
终于发现了一个比较奇怪的东西
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 3783/mysqld
上面标红的地方,监听端口正常,但却绑定了本地回旋地址,难怪总是连接不上,于是查了下资料,找到了解决办法:
修改mysql的配置文件/etc/mysql/my.conf,将bind-address后面增加远程访问IP地址或者禁掉这句话就可以让远程机登陆访问了。
bind-address=127.0.0.1 139.196.197.138
(允许多个IP可访问mysql服务器,空格隔开)
记得要重启mysql服务哦
service mysql restart
参考链接:http://www.php512.com/?p=808
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
mysql的配置文件my.cnf 或者 my.ini在哪?
1)/etc/mysql/my.conf
2)D:\mysql-5.7.27-win32\my.ini
即一般linux 上都放在 /etc/my.cnf ,window 上安装都是默认可能按照上面的路径还是没找到, window 上 可以登录到mysql中 使用 show variables like '%data%' 先找到data 存放路径, 一般my.ini 在 data文件的上一级。
上面的是针对的LINUX系统上的mysql的配置的 /etc/mysql/my.conf
下面来介绍一下在window上面的mysql 的配置 mysql 的配置文件 D:\mysql-5.7.27-win32\my.ini

此时出现的问题:net stop mysql 之后无法的去从新的启动mysql 服务,报错如下:

之后将配置文件再的blind -adress改成了127.0.0.1 没有配置两个ip,这个时候可以去正常的关闭和重启Mysql服务了,
更改成blind -adress=192.168.27.1了, 192.168.27.1是远程的客户端的ip,之后重启还是无法启动,报错如下;

blind -adress=192.168.27.4, 192.168.27.4是mysql server所在计算机的ip,可以重启

但是仍然是没有解决在mysql配置文件中设置远程访问的问题!!!
具体的解决办法:网上的有人认为:可以将Mysql的配置文件更改一下在其中的blind-adress=的后面赋值两个ip地址,但是自己试过了,改成两个了,根本无法重新的去启动mysql服务,之后见到了一篇博文:https://blog.csdn.net/weixin_33816946/article/details/85977125,所以认为无法通过 blind-adress配置两个 ip ,一个是本机的localhost,一个是远程的客户端机的ip,这样没有实现(但是到底能不能这种方法去实现:还未得到答案!!!!!!!!!!)
博文的内容如下
http://jpuyy.com/2013/07/mysql-bind-multi-address.html
mysql绑定多个ip地址
发表于2013 年 月 日
my.cnf中有选项bind-address=127.0.0.1,是说mysql server监听的是本地发来的请求,如果是任意主机都可以请求,则写为0.0.0.,但是这样又不太安全。监听某ip,指定此ip地址即可,但是要保证mysql的user中有允许此ip访问,否则不能对数据库操作。那么是否可以在配置里只规定几个ip呢? 简单直接回答:不可能 请参考:http://dev.mysql.com/doc/refman/5.1/en/server-options.html#option_mysqld_bind-address The MySQL server listens on a single network socket for TCP/IP connections. This socket is bound to a single address, but it is possible for an address to map onto multiple network interfaces. The default address is 0.0.0.0. To specify an address explicitly, use the –bind-address=addr option at server startup, where addr is an IPv4 address or a host name. If addr is a host name, the server resolves the name to an IPv4 address and binds to that address. The server treats different types of addresses as follows: If the address is 0.0.0.0, the server accepts TCP/IP connections on all server host IPv4 interfaces.
If the address is a “regular” IPv4 address (such as 127.0.0.1), the server accepts TCP/IP connections only for that particular IPv4 address. 但是有此需求,就会到访问控制,那么使用防火墙iptables可实现此效果 mysql-server为192.168.1.,只允许192.168.1., 192.168.1.5, 192.168..6来访问3306端口 在my.cnf中 bind-address = 0.0.0.0
在访问3306端口的主机中,只允许192.168.1.-,其他ip一律DROP掉 /sbin/iptables -A INPUT -p tcp -s 192.168.1.4 --dport -j ACCEPT
/sbin/iptables -A INPUT -p tcp -s 192.168.1.5 --dport -j ACCEPT
/sbin/iptables -A INPUT -p tcp -s 192.168.1.6 --dport -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport -j DROP
或 /sbin/iptables -A INPUT -p tcp --dport ! -s 192.168.1.4 -j DROP
/sbin/iptables -A INPUT -p tcp --dport ! -s 192.168.1.5 -j DROP
/sbin/iptables -A INPUT -p tcp --dport ! -s 192.168.1.6 -j DROP
保存防火墙规则 service iptables save
查看INPUT链包含3306的规则 echo -e "target prot opt source destination\n$(iptables -L INPUT -n | grep 3306)"
这样就实现了mysql只允许指定ip访问。 参考: http://www.cyberciti.biz/faq/unix-linux-mysqld-server-bind-to-more-than-one-ip-address/
更改防火墙的安全策略教程:
Windows防火墙配置(允许某个网段和部分IP访问某个端口)
1.win+R
2.gpedit.msc
3.计算机配置+Windows设置+安全设置+IP安全策略,在本地计算机
4.创建IP安全策略
5.配置IP筛选器列表、筛选器操作
6.分配
演示动图见https://blog.csdn.net/u013165852/article/details/88401546
192.168.1.0/24
192.168.1.0是你的IPV4地址;/24是你的子网掩码,代表255.255.255.0。
IPV4地址用32位二进制数表示,为了方便,大家使用点分十进制记法,将每个字节用"."来分开。因此32位的4字节数被分成了4段,分别是192 168 1 0。
子网掩码也是32位二进制数表示,/24指的就是子网掩码前24位全部都是1,转换过来就是:255.255.255.0
原文链接:https://blog.csdn.net/u013165852/article/details/88401546
mysql 远程连接不上,bind-address参数配置要求,以及怎么去使得mysql能够允许远程的客户端访问的更多相关文章
- 阿里云MySQL远程连接不上问题
解决阿里云MySQL远程连接不上的问题:step1:1.修改user表:MySQL>update user set host = '%' where user = 'root'; 2.授权主机访 ...
- MySQL远程连接不上的解决方法
这篇文章主要为大家详细介绍了MySQL远程连接不上的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 之前遇到过MySQL本地可以连接但是远程连不上的问题,没有记录,今天在云上新申请的服 ...
- 解决redis远程连接不上的问题
解决redis远程连接不上的问题 redis现在的版本开启redis-server后,redis-cli只能访问到127.0.0.1,因为在配置文件中固定了ip,因此需要修改redis.conf(有的 ...
- sql server导出数据,本地数据库远程连接不上,怎样设置防火墙(自用)
控制面板——>系统安全——>windows防火墙——>高级设置 新建入站规则: 将一下两个应用 允许入站: D:\Program Files (x86)\Microsoft SQL ...
- mysql workbench连接不上远程数据库,xshell无法连接远程主机的问题
1.先说xshell无法连接的问题 最近使用virtualbox装了个ubuntu-16.04,然后在win7上使用xshell连接,首先确认win7能ping通虚拟机ip.然后确认是否安装了open ...
- 无法远程连接服务器上的mysql
使用mysql管理工具连接服务器删过得mysql,显示连接被拒绝,但是在服务器上是可以登录mysql的. 无法远程连接通常以下几种情况: 首先,关闭mysql. service mysq ...
- CMD远程连接服务器上的MySQL
1.打开CMD命令行. 2.输入mysql -h要远程的IP地址 -u设置的MySQL用户名 -p登录用户密码 例如:mysql -h192.168.0.110 -uroot -p1233 (如果不能 ...
- 远程连接centos7 上的mysql报(ERROR 2003 (HY000): Can't connect to MySQL server on '168.x.x.x' (10060) )
1.MySQL端口 因为上一篇文章我就已经给MySQL新建了一新用户,且赋予了远程连接数据库的所有权限(GRANT ALL PRIVILEGES ON *.* TO 'newuser' @ '%' I ...
- 远程连接服务器上的MySQL
crt.navicat.Linux系统.MySQL 远程连接上Linux系统,确保Linux系统已经安装上了MySQL数据库.登陆数据库.mysql -uroot -p(密码). 创建用户用来远程连接 ...
随机推荐
- Binary Number(位运算)
#include<bits/stdc++.h> using namespace std; int n; int getBits1(int n)//求取一个数的二进制形式中1的个数. { i ...
- MonoBehaviour单例的另外一种省事的写法
using UnityEngine; public class CommSystem: SingletonGeneric<CommSystem> { public static strin ...
- 如何在Word中批量选中特定文本
如何在Word中批量选中特定文本 举个例子,我们对如下文本进行操作,将文本中所有的“1111111”标红,所有的“2222222”标绿,所有的“3333333”标蓝 在Word中找到“查找”下的“高级 ...
- npm解决node-sass安装失败
npm装包一直都很成功,直到我遇见了node-sass这个包 我一直报这样的错误 npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! node-sas ...
- 代码反向生成数据库注释更新sql
原理 通过反射实体所在程序集,得到枚举值列表,再通过sql获取数据库表结构,两者拼接成sql. 规范 实体枚举字段最好也加上Description特性,方便多次更新: 代码 实体定义 public p ...
- Java-POJ1005-I Think I Need a Houseboat
盗用的翻译,哈哈哈!白嫖就完事了. 题目: 密西西比河岸某处陆地因为河水侵蚀,每年陆地面积都在减少,每年减少50平方英里,减少的陆地面积呈半圆形,即该半圆形面积以每年50平方英里的速度增长.在第一年初 ...
- jenkins常用
记最精简版的启动:gradle集成springboot+vue 安装jenkins,安装待推荐插件 服务器安装gradle 服务器安装npm 配置git仓库,配置git开发者账号等 配置gradle构 ...
- Android 使用 MPAndroidChart 实现折线图
Android 使用 MPAndroidChart 实现折线图 做Android项目的时候用到了折线图,不光折线图,还可能遇到很多的图表需要展示渲染,自己手画的话那好玩了,今天使用MPAndroidC ...
- AC3 mantissa quantization and decoding
1.overview 所有的mantissa被quantize到固定精确度的level(有相应的bap标识)上,level小于等于15时,使用symmetric quantization.level大 ...
- [Note]后缀自动机
后缀自动机 代码 #include <cstdio> #include <algorithm> #include <cstring> const int M = 1 ...