mysql不能远程连接的解决办法

这篇具有很好参考价值的文章主要介绍了mysql不能远程连接的解决办法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  MySQL数据库不能远程连接的原因可能有以下几个:


MySQL没有开启网络连接。

MySQL默认只监听本地连接,需要在配置文件my.ini或者/etc/my.cnf中设置bind-address为服务器IP,开启网络连接。


MySQL没有开启远程访问权限。

MySQL默认只允许root用户在本地登录,需要授权远程访问权限。

可以执行GRANT ALL ON.TO 'root'@'%' IDENTIFIED BY 'password';命令授权root用户的远程访问权限。


服务器防火墙阻止了MySQL的网络连接。

如果服务器启用了防火墙,需要设置防火墙打开MySQL默认的3306端口,允许入站连接。


MySQL用户没有远程访问权限。

除了root用户,其他用户不具备远程访问权限,需要分别授权。

grant all on dbname.* to 'username'@'%' identified by 'password';


服务器与客户端之间的网络不可达。

服务器与远程客户端之间的网络如果出现问题,也会导致无法连接MySQL数据库。需要检查服务器和客户端的网络连接。


MySQL版本较低。

较低版本的MySQL对网络连接支持可能会存在问题,升级到较新版本可以解决部分网络连接问题。


建议的解决步骤:


设置my.ini配置文件,加入bind-address = 0.0.0.0,重启MySQL服务。


执行GRANT ALL ON.TO 'root'@'%' WITH GRANT OPTION;

授权root用户的远程访问权限。


检查服务器防火墙设置,开放MySQL的3306端口。或者暂时关闭防火墙进行测试


分别为远程连接用户授权远程访问权限。

grant all on dbname.* to 'username'@'%' identified by 'password';

首先登陆mysql控制台,登陆的命令也很简单,命令如下所示:
mysql -uroot -p666

为需要远程登录的用户赋予权限:

mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "666";
mysql> flush privileges;

第一行代码的含义是 所有的ip均可以访问root用户的数据库 密码是666
第二行的含义是刷新权限信息,必须刷新,要不然还要重启服务。

 MySQL 用户和权限管理

(一) 用户的创建及注意事项

1. 用户命名

username 不要超过 个字符,最长不要超过 16 个字符。

host 支持通配符 % *

username@192.168.222.%

username@192.168.222.10

用户名匹配原则:最精确匹配(下面详解)

使用 username 和 host 控制数据库的访问

如果从 192.168.222.10 上连接 DB 则需要使用 username@192.168.222.10

2. 用户名的创建

grant all privileges on *.* to 'username'@'192.168.222.%';

---这个授权登录的时候没有密码。

grant all privileges on *.* to 'username'@'%' identified by '123456';

---对来自所有地方的 IP 用户授权,不限制登录来源,并加密码。

with grant option

---创建的用户可以给其他用户授权delete from mysql.user where user!=root or host!=localhost;

---新建数据库之后,用户处理

flush privileges;

---将内存中的权限数据同步到磁盘。

select user,host,password from mysql.user;

---查询用户信息

3. 用户名的删除:

drop user 'scott'@'192.168.222.10';

flush privileges;

(二) 用户连接的实例

创建 2 个用户名相同,但是 host 不同,密码也不同的用户

grant all privileges on *.* to 'scott'@'192.168.222.10' identified by 'tiger';

grant all privileges on *.* to 'scott'@'%' identified by '123456;

创建 个用户,然后使用 scott 和 123456 密码,能否可以连接?

不可以连接,必须使用密码 tiger 连接。

原则是:用户最精确匹配

(三)忘记管理员用户密码以及注意事项

停止 MySQL 服务

service mysql stop

指定参数 skip-grant-tables 启动数据库服务添加

mysqld_safe --defaults-file=/data/mysql/mysql3306/my.cnf --datadir=/data/mysql/mysql3306/data

--basedir=/usr/local/mysql --user=mysql --port=3306 --skip-grant-tables &修改用户密码

mysql

select user,host,password from mysql.user;

update user set password=password('root12345') where user='root' and host=’localhost’;

select user,host,password from mysql.user;

filush privileges;

注意:update 语句一定加 where 限制条件

检查客户端与服务器之间网络是否连通,并排查相关网络问题。


根据实际情况,考虑升级MySQL版本到较新版本。


如果问题仍未解决,需要根据MySQL的错误日志进一步排查原因。文章来源地址https://www.toymoban.com/news/detail-757224.html

到了这里,关于mysql不能远程连接的解决办法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决Ubuntu不能上网以及无法远程连接Ubuntu

    本文环境 物理机OS: Windows10 专业版 虚拟机平台: VMware Workstation 16 Pro 虚拟机OS: Ubuntu 20.04 相信大家在使用Ubuntu中也有遇到不能上网,我也是尝试了很多的方法都不行,终于找到了两种可行的方法。想快速解决网络问题的小伙伴直接跳到方法二。不过需要说明一下的是,方

    2024年01月19日
    浏览(30)
  • 解决MySQL数据库拒绝远程计算机连接问题

    错误信息:Host is not allowed to connect to this mysql server 以前MySQL数据库部署在云服务器上,程序服务端也部署在云服务器上,连接服务器从没出现过问题。最近有一次需要做一个完全局域网的环境部署,我把数据库和程序服务端部署在里两台不同的电脑上,访问数据库的时候出现

    2024年02月09日
    浏览(28)
  • windows远程连接出现身份验证错误,要求的函数不受支持,这可能是由于credssp加密数据库修正解决办法

    第一种解决办法 WIN+R 运行 gpedit.msc: 本地组策略: 计算机配置管理模板系统凭据分配加密数据库修正 选择启用并选择易受攻击。 第二种解决办法 WIN+R,运行gpedit.msc 打开注册表,进入下面路径 HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystemCredSSPParameters 右击Sy

    2024年02月16日
    浏览(36)
  • 外部navicat无法连接mysql数据库的问题原因及解决方案

    问题起因是这样:在linux操作中的docker中部署了一个数据库,数据库启动之后,端口也映射了(创建容器时用 -p 30036:3306进行的映射),但是在外不想使用navicat连接时,怎么都连不上,本人遇到的问题如下 一、端口虽然映射了,但是服务器上的30036端口并未对外开放,因此要先开

    2024年02月07日
    浏览(41)
  • Win11家庭版无法远程连接的解决办法

          新买了台笔记本,自带Win11家庭版正版系统,可以远程连接其他计算机,但不可以被其他计算机连接。鉴于刚买,不想马上重装专业版,网上搜索了下,居然解决了,特分享下。 1、下载RDPWrap,网上有很多链接,本人下载的是“RDPWrap-v1.6.2.zip”. 2、在“设置”——“隐

    2024年02月05日
    浏览(56)
  • mysql无法远程访问的解决办法

    更改配置文件 /etc/my.cnf ,在里面插入 skip_grant_tables ,然后重启服务 systemctl restart mysqld 。这样就可以免密本机登录mysql了,但是开了免密登录,mysql服务不会监听任何端口,因为只能本机登录服务。 进入mysql库, select host,user from user; ,查看对应的用户是否开启了远程可访问的

    2023年04月18日
    浏览(32)
  • flink任务启动抛出mysql数据库连接过多异常message from server:“Too many connections“解决办法

    1. 异常现象 2. 现象分析 2.1 mysql数据库最大默认连接数是151 2.2 已用连接数超过了最大连接数导致的异常 3. 解决办法 3.1 修改mysql最大连接数配置文件 命令行修改最大连接数(max_connections),设置最大连接数为1000。 mysql set global max_connections = 1000; 这种方式有个问题,就是设置的最

    2024年02月14日
    浏览(37)
  • 关于kali无法ssh远程连接以及无法直接使用root登录的解决办法

    准备将pwn机转移到kali上面,之后就可以专职用kali来debug做pwn题以及挖洞了,不过呢,kali默认是关闭ssh服务的,所以需要我们手动开启,而且19年的kali版本之后,kali开始默认关闭了root登录,所以我们也需要开启这个 我们先使用 netstat -lnt 命令查看一下当前开启的服务,看看

    2024年02月10日
    浏览(29)
  • 解决1130-Host‘ ‘is not allowed to connect to this MySQL server,实现远程连接本地数据库

    在使用Navicat远程连接本地数据库时,遇到了这样一个问题, 我使用 本地主机的地址,连接本地的数据库,报错host ‘’ is not allowed to connect to this mysql server。 上网上查了一下资料,原来自己安装在本地的mysql默认时不允许进行远程登陆,如果想要远程访问本地的数据库需要修

    2024年02月11日
    浏览(37)
  • 宝塔安装MySQL无法远程连接【已解决】

    我是阿里云的服务器! 确保阿里云开放3306端口。 宝塔开放3306端口 确保MySQL root用户(或者你要连接的用户)的权限是允许所有的人连接! 如何查看? 如果MySQL安装成功的话,在本地连接MySQL。 输入密码(root密码在这查看) 刷新配置! 到此,就可以远程连接数据库了! 打完收

    2024年02月09日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包