使用navicat连接mysql数据库时常报的错误:2003、1698、1251

61 篇文章 1 订阅
60 篇文章 0 订阅

连接不上数据库

error 1698

报错提示:ERROR 1698 (28000): Access denied for user 'root'@'localhost'


报错原因: 在安装mysql数据库的过程中未给root用户设置密码,导致不能登陆成功


解决措施: 设置数据库root用户密码
第一步: update mysql.user set authentication_string=PASSWORD('root'),plugin='mysql_native_password' where user='root';
第二步:flush privileges; (刷新)
第三步:用root用户的新密码登录mysql

error 2003

报错提示:
第一种: 2003 - Can't connect to MySQL server on 'localhost'(10061 "Unknown error")(本地连接数据库出错)
或者第二种:2003-cant connection to mysql server on ‘IP’(10061 unknown error)(服务器远程连接出错:未知错误)
或者第三种:Can't connect to MySQL server on "IP地址'(10038)(服务器远程连接数据库出错:防火墙出错)


报错原因:
第一个错误提示的原因:mysql服务未成功启动,所以连接不上
第二个错误提示的原因:注意这个10061 unknown error,表示未知错误,出错的原因可能是:(1)mysql服务未成功启动(2)配置文件出错
第三个错误提示的原因:报10038表示服务器防火墙没有开启3306端口


解决措施:
(1)针对第一个错误提示的解决:与mysql服务是否启动有关,去重新启动下服务:
方式一:右击计算机=>管理=>服务和应用程序=>服务=>找到MySQL服务,启动,甚至可以改为自启动,这样之后电脑开机后mysql服务就会自动启动了
方式二:或者在mysql安装目录的bin目录下输入命令net start mysql 启动mysql服务
(2)针对第二个错误提示的解决:(全程在服务器端操作)
第一步:先查看mysql服务是否开启,如果开启了,表示不是服务未启动的问题,则看第二步
第二步:登入mysql数据库:musql -u 用户 -p 密码
第三步:输入use mysql;再输入:update user set Host='%' where User='root';(这表示修改mysql库的user表,将host项,从localhost改为%。%这里表示的是允许任意host访问,如果只允许某一个ip访问,则可改为相应的ip。)
第四步:exit命令退出数据库,服务器终端输入命令vim /etc/mysql/mysql.conf.d/mysqld.cnf来打开配置文件mysqld.cnf,修改43行的bind_address=127.0.0.1为bind_address=0.0.0.0
第五步:重启mysql服务,service mysql restart
(3)针对第三个错误提示的解决:
第一步:打开防火墙配置文件:vim /etc/sysconfig/iptables
第二步:将配置文件中的一行A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT中的80改为3306
第三步:重启防火墙:service iptables restart

error 1251

报错提示:1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client.


报错原因:发现是从MySQL8.0 高级版本的时候出现的问题,而8之前的低版本都还没有这个问题。MySQL8.0版本改变了密码的验证规则导致的问题


解决措施:
第一步:更新密码
alter user 'root'@'localhost' identified with mysql_native_password by '设置新密码';
注意:如果还是出错,就将localhost改为%,这样就可以解决了,解释:登录mysql数据库,使用use mysql; 命令后,再输入 select user,host form user; 查看root用户和它对应的host,有的数据库中的root对应的host是localhost,有的对应的host是%
第二步:刷新
FLUSH PRIVILEGES

  • 0
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
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() ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值