mysql怎么连接不起来 mysql80连接不上

配置skip-name-resolve后,客户端无法连上mysql配置skip-name-resolve后,客户端无法连上mysql
原因是由于mysql对连接的客户端进行DNS反向解析 。
有2种解决办法:
1,把client的ip写在mysql服务器的/etc/hosts文件里,随便给个名字就可以了 。
2,在 my.cnf 中加入 skip-name-resolve。
对于第一种方法比较笨,也不实用,那么 skip-name-resolve 选项可以禁用dns解析,但是,这样不能在mysql的授权表中使用主机名了,只能使用IP 。
我理解mysql是这样来处理客户端解析过程的,
1,当mysql的client连过来的时候,服务器会主动去查client的域名 。
2 , 首先查找 /etc/hosts 文件,搜索域名和IP的对应关系 。
3,如果hosts文件没有,则查找DNS设置,如果没有设置DNS服务器 , 会立刻返回失败,就相当于mysql设置了skip-name-resolve参数,如果设置了DNS服务器 , 就进行反向解析,直到timeout 。
注:所谓反向解析是这样的:
mysql接收到连接请求后,获得的是客户端的ip , 为了更好的匹配mysql.user里的权限记录(某些是用hostname定义的) 。
如果mysql服务器设置了dns服务器,并且客户端ip在dns上并没有相应的hostname,那么这个过程很慢,导致连接等待 。
添加skip-name-resolve以后就跳过这个过程了 。
MySQL8远程连接不上的原因执行 ./bin/mysqld --defaults-file=xxx --initialize-insecure 初始化data目录
./bin/mysqld_safe --defaults-file=/home/xxx/mysql/my.cnf
运行后netstat -anlp | grep mysql 发现mysqld进程使用的是unix domain socket,没使用tcp/tcp6 , 没监听端口,看配置文件里面有一行 --skip-grant-tables , 看官方文档,如果开启了--skip-grant-tables默认启用--skip-networking , 这样就不允许远程连接了,因为--skip-grant-tables不安全 。
.
./bin/mysqladmin shutdown
电脑连接mysql失败原因一:登录账号、密码、服务器名称、数据库名称登录错误导致不能连接 , 这个比较常见,仔细检查好所填信息是否正确 , 填写正确一般就可以解决 。
解决方法:当正在使用的软件出现数据库不能连接时,一般就是服务器名出现问题,更改服务器名称一般可以解决问题 。数据库如果是安装在本机,服务器名可以用“.”或“(local)”来代替 ;如果是安装在局域网的其它计算机上,可以用IP地址作为服务器名 。
原因二:如果没能正确安装SQL服务器,也会导致数据库连接不上;安装好数据库后,如果SQL服务管理器没有启动,则要去服务那里开启 。
解决方法:如果是SQL数据库未能能成功安装,再次重新安装时,可能会无法安装 , 提示是存在一个未完成的安装挂起 。解决就方法是:打开注册表编辑器,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager中找到并删除PendingFileRenameOperations项目即可 。
如果是更改了Windows的用户名或者密码 , 会导致SQL服务管理器不能启动,解决办法是去控制版面的服务那里修改启动 。具体是:点击开始--设置--控制面板--管理工具--服务--找到MSSQLSERVER服务--在上面右键--属性--登陆--修改启动服务的帐户和密码 。
原因三:因权限问题导致数据库不能连接,解决方法是检测计算机的安全保护限制、SQL Server安全设置、操作系统的安全限 。
解决方法:可以先暂时关闭防火墙或者杀毒软件,看是否是这些软件的安全设置所导致 。
SQL Server安全设置:打开企业管理器--展开SQ L Server组--右击服务器名--点击属性--在SQL Server属性--安全性中,把“身份验证”选择为“在SQL Server和Windows”;
如果SQL服务器采用的是Windows XP系统,当工作站电脑出现不能连接数据库的情况时,可以在服务器和工作站各建立一个相同的WINDOWS用户账号和密码
原因四:引起原因:网络连接存在故障;
解决方法:检修网络是否存在故障 。
mysql连接不上怎么办1.排除网络或防火墙问题
先看是否能ping通远程服务器,ping 192.168.1.211 , 如果不可以就是网络问题 。然后,检查端口是否被防火墙挡住了,telnet 192.168.1.211 3306,如果连接失败,配置防火墙 。
配置防火墙 , 开启3306端口
vi /etc/sysconfig/iptables
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT(允许3306端口通过防火墙)
/etc/init.d/iptables restart(重启防火墙使配置生效)
2.检查MySQL配置
如果开启了防火墙,telnet还是失败 , 通过netstat查看3306的端口状态:
netstat -apn|grep 3306
tcp600 127.0.0.1:3306:::*LISTEN13524/mysqld
注意地方,这说明3306被绑定到了本地 。检查一下my.cnf的配置,这里可以配置绑定ip地址 。
bind-address=addr
不配置或者IP配置为0.0.0.0,表示监听所有客户端连接 。
ps:我开启3306端口,并且检查MySQL配置之后,telent仍然失败,但是在本机telnet是ok的,再三确认了配置没有问题 。后来跟我们的ucloud账号管理员提了一下 , 才知道ucloud管理后台也需要开启3306端口,用云服务器的留意这个 。
3.检查用户访问权限
MySQL建用户的时候会指定一个host , 默认是127.0.0.1/localhost,那么这个用户就只能本机访问,其它机器用这个用户帐号访问会提示没有权限,host改为%,表示允许所有机器访问 。
最后,别忘了重启mysql使配置生效 。
# /etc/init.d/mysql restart
望采纳
【mysql怎么连接不起来 mysql80连接不上】mysql怎么连接不起来的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于mysql80连接不上、mysql怎么连接不起来的信息别忘了在本站进行查找喔 。

    推荐阅读