解决 Navicat连接Linux下数据库,错误码“10060”, “1045”
数据库服务系统:CentOS7
错误码“10060”截图:
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。1.确认客户机与主机之间的网络是通的(可以通过在客户机上ping主机的IP来确认)
2.确认服务器的数据库是允许账户远程登录
3.检查数据库3306的端口是否处于监听状态 ,运行命令 netstat -ntpl 来查看
4.检查防火墙是否是active的状态,运行命令 systemctl status firewalld
5.如果防火墙是开启的,可以选择关闭防火墙,或者是设置防火墙开启3306端口,运行的命令分别如下:
关闭防火墙: systemctl stop firewalld.service
开启3306端口: firewall-cmd --zone=public -add-port=3306/tcp --permanent 开启端口监听之后记得重载防火墙, 运行 firewall-cmd --reload
错误码“1045”截图:
错误原因很明显了,就是用户名或者是密码错误。
有没有遇到和我相同情况的小伙伴,在Linux下,用这个账户和密码是可以登入数据库的,但是远程登录不了。
解决方法:
1.在Linux下登入数据库
2.查看数据库的所有账户,在数据库中执行语句 select user,host from mysql.user;
3.查看远程登录用到的账号的host是什么,如果远程登录账号的host为localhost(仅本机登录),或者是127.0.0.1 (仅本机登录),在远程登录到的时候,就会提示错误1045
4.在数据库中重新创建远程登录账号:
创建账号: CREATE USER 'username'@'host' IDENTIFIED BY ‘yourpassword’;
host注意设置为%或者是设置为客户机的IP
给账号授权: GRANT ALL PRIVILEGES ON *.* TO 'username'@'host' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
重载授权表: FLUSH PRIVILEGES;
username, host,yourpassword都要填入自己创建的账户的信息,授权应该根据自己的情况来,我这里是要远程操作数据库,创建table,增删改查等功能,所以权限给得比较多。
