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(密码). 创建用户用来远程连接 ...
随机推荐
- linux异常 - 无法分配内存
解决方案: 删除虚拟机上不必要的东西 重启开虚拟机的电脑
- util之Map
1.定义 Map<String, Integer> map = new HashMap<String,Integer>(); 2.判断map中是否存在某个键的值: if(map ...
- jdk动态代理底层实现
一.代理设计模式 代理设计模式是Java常用的设计模式之一. 特点: 01.委托类和代理类有共同的接口或者父类: 02.代理类负责为委托类处理消息,并将消息转发给委托类: 03.委托类和代理类对象通常 ...
- centos修改静态Ip地址
centos修改静态Ip地址 待办 昨天待办 https://blog.csdn.net/johnnycode/article/details/40624403 centos修改静态ip地址
- 一文复习JSP内容
概念: JSP 全名为 Java Server Pages, 中文名叫 java 服务器页面, 其根 本是一个简化的 Servlet 设计, 它是由 Sun Microsystems 公司 倡导. 许 ...
- 10-Java-JSTL标签库的使用
使用JSTL标签库使用 第一步:引入相关jar包到WEB-INF/lib/,JSTL标签库(standard.jar,jstl.jar) 第二步:在JSP文件中通过 taglib指令引入标签库,例如: ...
- MyBatis(3)——配置解析
MyBatis中文参考指南:MyBatis用户指南 //------------核心配置文件说明------------// //*在注释中进行说明 <configuration> < ...
- 解释查询和本地查询 区分 Enumerable 和 Queryable
https://www.cnblogs.com/gosky/p/5757575.html 简单介绍:Enumerable 和 Queryable 他们都是静态类,位于命名控件 System.Linq下 ...
- bootstrap的网格控制
<div class="container-fluid row m-0 p-0"> <div class="col-2 border"> ...
- EVE无法安装vim
有些时候,由于一些错误的操作,可能导致vim无法使用,例如如下情况: root@eve-ng:~# vim /etc/profile-bash: vim: command not found 此时,一 ...