启动mysql报错10038_解决navicat远程连接mysql报错10038的问题

navicat远程连接mysql报错10038一般由以下两个原因:

一:本地防火墙问题

在本地安装了mysql、navicat并打开了mysql服务的情况下,来设置防火墙。

0afd3575d8ef3f004ca88d1bb90a8695.png

首先右击或者点击入站规则,找到新建规则,点击。

bdf90905f01ed3724fa8b4b0a9e2ac1e.png

点击端口。

bdf90905f01ed3724fa8b4b0a9e2ac1e.png

在特定本地端口中填入3306.

dafec0c03ef12a6142aeeb790ae544d7.png

一直点击下一步。

09dcb940679b7cc7e7df628dd60a1480.png

这里可以给一个好分别的名称即可。

之前再尝试连接即可,若仍然不可以,可能是服务器方面的问题。

二:服务器3306端口未打开

首先需要在安全组开放端口。

我这里使用的是阿里云服务器。首先需要进入云服务器,找到安全组。

69b3031e3e110095f22667f397310240.png

进入里面找到配置规则。

a5a22517793b8a24c20cdd77645908f7.png

然后进行快速添加,添加3306端口即可。

之后同样在云服务器下再进入实例列表,点击远程连接,进入服务器终端。

9b43d487b1c1b3cf830dbf234fce2eaf.png

然后在命令行输入firewall-cmd --query-port=3306/tcp

fe6f8a720971ac91217194f17694af2e.png

若这里显示的是no,那么需要让防火墙开启3306端口:

1.开启端口3306

firewall-cmd --zone=public --add-port=3306/tcp --permanent

2.重启防火墙

firewall-cmd --reload

查看已经开放的端口

firewall-cmd --list-ports

接着需要让mysql开启远程访问权限:

1.登陆mysql (若遗忘数据库密码,往下看)

mysql -u root -p

2.设置访问地址(本人实际操作的时候并没有设置就可以连接成功了)

如果你想允许用户root从ip为192.168.1.123的主机连接到mysql服务器,并使用root作为密码

grant all privileges on *.* to 'root'@'192.168.1.123'identified by 'password' with grant option;

3.刷新

flush privileges;

如果在上面第1步登陆mysql的时候遗忘了密码,可以进行以下操作。

(以下主要来源于:linux下mysql忘记密码解决方案)

1.检查mysql服务是否启动,如果启动,关闭mysql服务

运行命令:ps -ef | grep -i mysql

48203ec4ec1d005ca9cb424b88b9469b.png

如果开着就运行关闭的命令:service mysqld stop

ff3b6bb6f396b992bac9c8b64c1b254d.png

2.修改mysql的配置文件my.conf

一般在/etc目录下,运行命令:vi /etc/my.cnf,编辑文件、

90096a2e20275e1738d9ab22e49b5140.png

在文件的[mysqld]标签下添加一句:skip-grant-tables

746e0d307ba6cd663ab21bf008816358.png

然后wq!保存退出。

3.重启数据库

运行命令:service mysqld start

4.进入到mysql数据库

运行命令:mysql -u root

8d0db43aeee163a46733de7fabb14110.png

5.修改密码

运行语句:use mysql;

继续运行语句:update mysql.user set authentication_string=password('root_password') where user='root';

root_password替换成你想要的密码

24070d76bb1a513c24bb990b2e494d30.png

6.把步骤2加的东西删除掉,再重启服务器,就可以使用刚才修改的密码登录进服务器了。

到这一步已经全部结束。

以上就是本人解决10038问题的时候的一些步骤啦~

到此这篇关于关于navicat远程连接mysql报错10038的问题的文章就介绍到这了,更多相关navicat远程连接错误10038内容请搜索萬仟网以前的文章或继续浏览下面的相关文章希望大家以后多多支持萬仟网!

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Navicat连接MySQL报错10060通常是由于网络连接问题引起的。以下是可能的解决方法: 1.检查MySQL服务器是否正在运行,并确保已启用远程连接。 2.检查防火墙设置,确保MySQL端口(默认为3306)未被阻止。 3.检查网络连接,确保可以从客户端计算机ping通MySQL服务器。 4.尝试使用IP地址而不是主机名连接MySQL服务器。 5.尝试使用SSH隧道连接MySQL服务器。 以下是一个使用SSH隧道连接MySQL服务器的示例代码: ```python import paramiko import pymysql # SSH连接信息 ssh_host = 'ssh_host' ssh_port = 22 ssh_user = 'ssh_user' ssh_password = 'ssh_password' # MySQL连接信息 mysql_host = 'mysql_host' mysql_port = 3306 mysql_user = 'mysql_user' mysql_password = 'mysql_password' mysql_db = 'mysql_db' # 创建SSH客户端 ssh_client = paramiko.SSHClient() ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh_client.connect(hostname=ssh_host, port=ssh_port, username=ssh_user, password=ssh_password) # 创建SSH隧道 ssh_tunnel = ssh_client.get_transport().open_channel('direct-tcpip', (mysql_host, mysql_port), ('localhost', 0)) # 创建MySQL连接 mysql_conn = pymysql.connect(host='127.0.0.1', port=ssh_tunnel.local_bind_port, user=mysql_user, password=mysql_password, db=mysql_db) # 执行SQL查询 with mysql_conn.cursor() as cursor: cursor.execute('SELECT * FROM table') result = cursor.fetchall() print(result) # 关闭MySQL连接和SSH客户端 mysql_conn.close() ssh_client.close() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值