• 远程直接连接 MySQL 数据库,阿里云腾讯云允许远程连接教程


    不使用SSH登录远程主机直接连接远程数据库

    修改MySQL登录权限

    1、登录MySQL

    mysql -u root -p
    然后输入密码,进入mysql

    2、修改mysql库的user表

    修改mysql库的user表,将host项,从localhost改为%。%这里表示的是允许任意host访问,如果只允许某一个ip访问,则可改为相应的ip,比如可以将localhost改为192.168.1.123,这表示只允许局域网的192.168.1.123这个ip远程访问mysql。
    (默认的账号的host属性都是localhost,意思是这个账号只能本地使用,如果要使用某个账号来远程登录,必须将账号的host属性值更改成%。)

    mysql> use mysql;
    mysql> update user set host = '%' where user = 'JavaWeb';
    mysql> select user,host from user;
    mysql> flush privileges;//刷新数据库
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    3、防火墙开放3306端口

    查看 firewalld 状态
    systemctl status firewalld
    在这里插入图片描述

    开启 firewalld
    systemctl start firewalld
    在这里插入图片描述
    开放端口

    // --permanent 永久生效,没有此参数重启后失效
    firewall-cmd --zone=public --add-port=3306/tcp --permanent 
    
    • 1
    • 2

    重新载入
    firewall-cmd --reload
    查看
    firewall-cmd --zone=public --query-port=3306/tcp
    删除
    firewall-cmd --zone=public --remove-port=3306/tcp --permanent

    Navicat直接连接远程数据库报错

    【报错】Can’t connect to MySQL server (10060)

    1、网络问题

    看看能不能ping通
    在这里插入图片描述

    2、mysql账户设置

    mysql账户是否不允许远程连接

    --  mysql -u root -p
    
    --  show databases;
    
    --  use mysql;
     
    --  select host,user from user
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    若【要是用】的用户显示host为localhost 则需要授权 root 用户的所有权限并设置远程访问

    -- GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;     //任何远程主机都可以访问数据库  
     
    -- FLUSH PRIVILEGES;    //需要输入次命令使修改生效  
     
    -- EXIT    //退出 
    
    • 1
    • 2
    • 3
    • 4
    • 5

    也可以通过修改表来实现远程:(修改整个user表)

    -- use mysql;  
     
    -- update user set host = '%' where user = 'root';  
     
    -- select host, user from user; 
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3、防火墙端口未开放

    root@iZ2zee2l6djknfZ ~]# firewall-cmd --list-ports
    20/tcp 21/tcp 22/tcp 80/tcp 8888/tcp 39000-40000/tcp 8001/tcp 8001/udp
    [root@iZ2zee2l6djknfZ ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
    success
    [root@iZ2zee2l6djknfZ ~]# firewall-cmd --reload
    success
    [root@iZ2zee2l6djknfZ ~]# firewall-cmd --list-port
    20/tcp 21/tcp 22/tcp 80/tcp 8888/tcp 39000-40000/tcp 8001/tcp 8001/udp 3306/tcp
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    可以看出一开始mysql3306端口没有开放 ,然后此处开放,然后刷新就可以了

    其他防火墙命令

    #centos7查看防火墙所有信息
    firewall-cmd --list-all
    
    #centos7查看防火墙开放的端口信息
    firewall-cmd --list-ports
    
    #新增一个开放端口
    firewall-cmd --zone=public --add-port=80/tcp --permanent
    #说明:
    #–zone #作用域
    #–add-port=80/tcp #添加端口,格式为:端口/通讯协议
    #–permanent 永久生效,没有此参数重启后失效
     
    #新增多个端口:
    firewall-cmd --zone=public --add-port=80-90/tcp --permanent
    
    #删除
    firewall-cmd --zone=public --remove-port=80/tcp --permanent #重新加载firewall-cmd --reload
    
    #查看本机已经启用的监听端口centos7以下使用netstat -ant,7使用ss
    ss -ant
    
    #centos7启动防火墙
    systemctl start firewalld.service
    
    #centos7停止防火墙/关闭防火墙
    systemctl stop firewalld.service
    
    #centos7重启防火墙
    systemctl restart firewalld.service
     
     
    #设置开机启用防火墙
    systemctl enable firewalld.service
    
    #设置开机不启动防火墙
    systemctl disable firewalld.service
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    4、查看云服务器商是否配置安全组规则

    其实出现这个错误的原因也不外乎以上几个方面,相信按照上面的思路找出原因,定能将问题解决掉

    【报错】1045:Access denied for user ‘root’@’localhost’(using password: YES)

    错误原因:当登录MySQL数据库出现 Error 1045 错误时,表明你输入的用户名或密码错误被拒绝访问了;MySQL服务搭建后,默认root用户是不能进行远程访问连接的。

    解决方法

    (1)改表法
    可能是你的账号不允许从远程登录,只能在localhost本地登录数据库。建议在数据库搭建时,创建一远程连接的用户或者在localhost的主机上将mysql数据库下的"user"表里的"root"用户开启远程登录(把localhost这个值替换为%)。
    (2)授权法
    授权格式(mysql中不区分大小写):
    GRANT 权限 ON 数据库.* TO “用户名”@ “登录主机” IDENTIFIED BY “密码”;
    在这里插入图片描述

    参考文章:
    MySQL错误:Can’t connect to MySQL server (10060) 解决方案
    Navicat连接MySQL时弹出:1045:Access denied for user ‘root’@’localhost’
    Centos7开放3306端口

  • 相关阅读:
    notification控件 通知栏
    公司电脑如何限制安装软件
    mybatis源码体系介绍配置文件解析及源码解析
    万界星空科技电子机电行业MES系统,2000元/年起
    实时跟踪用户管理操作
    聚乳酸-羟基乙酸共聚物修饰卵清白蛋白OVA/小鼠血清白蛋白(MSA)/大鼠血清白蛋白(RSA)齐岳
    一面数据: Hadoop 迁移云上架构设计与实践
    STM32F1课程学习
    JAVA毕业设计vue校园菜鸟驿站管理系统计算机源码+lw文档+系统+调试部署+数据库
    SqlServer函数,存储过程的创建和使用
  • 原文地址:https://blog.csdn.net/mfysss/article/details/128081556