连接mysql数据库连接报错(数据库连接错误)

本文目录一览:

使用jdbc连接mysql为什么报错?

当我用JDBC连接MySql数据库时,编译报了如下错误:

错误1:

Loading class `com.mysql.jdbc.Driver’. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver’. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.

这要求我们注册驱动时,把Class.forName(“com.mysql.jdbc.Driver”);改成 Class.forName(“com.mysql.cj.jdbc.Driver”);

当我信息满满的修改之后重新编译时,再次出现了错误:

错误2:

Fri Feb 22 08:55:38 CST 2019 WARN: Establishing SSL connection without server’s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn’t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false’. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

这要求我们在设置url参数时,将useSSL=false,修改后 jdbc:mysql://localhost:3306/ds3?useSSL=false

当我修改后,本以为这下应该没问题了,没想到,再一次出现了问题

错误3:

Exception in thread “main” java.sql.SQLException: The server time zone value ‘Öйú±ê׼ʱ¼ä’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

这要求我们修改时区,修改成jdbc:mysql://localhost:3306/ds3?useSSL=falseserverTimezone=UTC

终于,不在报错误了。

错误4:当我们配置xml文件时,要把转为其本身的转义字符

配置properties文件的urlurl=jdbc:mysql:///ds3?useSSL=falseserverTimezone=UTC配置xml文件的urlproperty name=”url”jdbc:mysql://localhost:3306/ds3?useSSL=falseserverTimezone=UTC/property

mysql5.7.12报错如下情况导致无法连接数据库应该怎么办?

一、mysqld 进程没有正常运行遇到这种情况首先到服务器上看看 mysqld 进程是否活着,采用的命令:

二、客户端不能和进程 mysqld 通信如果 MySQL 服务器上的 mysqld 进程运行正常,我们再看看客户端能不能和 mysqld 进行通信,使用下面的命令进行网络连通的测试:telnet localhost 3306

如果本地能通,再到客户端的机器上把 localhost 换成 MySQL 服务器的 ip 地址进行测试。如果不能通,通常有两种原因,一种原因是 OS 或网络的问题,或者是防火墙;另一种原因是 mysqld 自身根本没有侦听客户端的连接请求, mysqld 启动后对于客户端的侦听是分三种情况。

第一种情况

是使用参数 –skip-networking 跳过侦听客户端的网络连接,用下面的命令我们可以看到 MySQL 根本没有侦听 3306 端口。

第二种情况

使用参数 –bind-address 后面增加对客户端访问 IP 地址的限制,例如只侦听本地的连接

三、账户密码的问题最后一种情况是账户密码的问题,应付这种情况我们有个有力的工具就是查看 MySQL 的 error log, error log 记载信息的详细程度上由参数 –log-error-verbosity 进行控制的

连接mysql数据库失败怎么办

1 mysql 错误 ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’

解决办法:关闭防火墙,linux下命令

[root@etl01 bin]# chkconfig –list | grep -i iptables ====check fire wall

iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off

[root@etl01 bin]# /sbin/service iptables stop ====stop fire wall

Flushing firewall rules: [ OK ]

Setting chains to policy ACCEPT: nat filter [ OK ]

Unloading iptables modules: [ OK ]

2 报错:1130-host … is not allowed to connect to this MySql server

解决办法:

授权形式

比如账户为root,密码为root

use mysql;

用root账户从任何主机上访问mysql数据库了

GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ IDENTIFIED BY ‘root’ WITH GRANT OPTION;

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

GRANT ALL PRIVILEGES ON *.* TO ‘root’@’192.168.1.3’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;

连接内网服务器上的mysql报错

错误原因是:本地IP(xxx.xxx.xxx.xxx)没有访问远程数据库的权限。

于是下面开启本地IP(xxx.xxx.xxx.xxx)对远程mysql数据库的访问权限。

首先远程连接进入服务器,在cms中输入mysql -u root -p,然后回车,输入密码后回车进入mysql命令行。

输入use mysql;

输入select user,password,host from user;

可以看到host中只有localhost主机。我们需要将xxx.xxx.xxx.xxx也添加到这里才对。

添加方法如下:

输入

grant all privileges on *.* to root@”xxx.xxx.xxx.xxx” identified by “密码”;

这相当于是给IP-xxx.xxx.xxx.xxx赋予了所有的权限,包括远程访问权限。

然后再输入

flush privileges;

这相当于是重新加载一下mysql权限,这一步必须有。

再次输入select user,password,host from user;

可以看到host中已经有了新加的IP。

现在再次用Navicat for MySQl访问远程mysql数据库,已经能正常打开了。

问题解决。

不过还有一个问题,发现双击打开某张表的时候很慢,至少要3秒。

原因是:

当远程访问mysql时, mysql会解析域名, 所以会导致访问速度很慢, 会有2,3秒延时!

解决办法:

修改mysql安装目录下的my.ini,加上下面这个配置可解决此问题。在[mysqld]下加入:skip-name-resolve

保存退出后重启mysql服务。

然后访问速度就和本地一样快啦。

mysql连接数据库失败,请确定数据库用户名,密码设置正确

现象

一线的工程师反映了一个奇怪的现象,刚刚从 MySQL 官网上下载了一个 MySQL 5.7.31。安装完成后,发现使用任何密码都能登陆 MySQL,修改密码也不管用,重新启动 MySQL 也不能解决。

分析

怀疑使用了 –skip-grant-tables 使用 mysqld –print-defaults 检查,没有发现。

检查登陆用户,都是 root@localhost,说明和 proxy user 没有关系。

使用 mysql –print-defaults 检查客户端是否设置默认的用户和密码,没有发现。

检查数据库中的用户和密码的相关字段:

发现一切都正常,再检查 plugin 字段,发现只有 root 用户是 auth_socket ,其它的用户都是 mysql_native_password,问题可能就出在这儿。

对 auth_socket 验证插件不了解,感觉是这个插件不安全,使用下面的命令修改后,问题解决:

update user set plugin=”mysql_native_password” where user=’root’;

auth_socket 验证插件的使用场景

问题解决后,又仔细研究了一下 auth_socket 这个插件,发现这种验证方式有以下特点:

首先,这种验证方式不要求输入密码,即使输入了密码也不验证。这个特点让很多人觉得很不安全,实际仔细研究一下这种方式,发现还是相当安全的,因为它有另外两个限制;

只能用 UNIX 的 socket 方式登陆,这就保证了只能本地登陆,用户在使用这种登陆方式时已经通过了操作系统的安全验证;

操作系统的用户和 MySQL 数据库的用户名必须一致,例如你要登陆MySQL 的 root 用户,必须用操作系统的 root用户登陆。

auth_socket 这个插件因为有这些特点,它很适合我们在系统投产前进行安装调试的时候使用,而且也有相当的安全性,因为系统投产前通常经常同时使用操作系统的 root 用户和 MySQL 的 root 用户。当我们在系统投产后,操作系统的 root 用户和 MySQL 的 root 用户就不能随便使用了,这时可以换成其它的验证方式,可以使用下面的命令进行切换:

ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘test’;

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/245562.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 13:09
下一篇 2024-12-12 13:09

相关推荐

  • 如何修改mysql的端口号

    本文将介绍如何修改mysql的端口号,方便开发者根据实际需求配置对应端口号。 一、为什么需要修改mysql端口号 默认情况下,mysql使用的端口号是3306。在某些情况下,我们需…

    编程 2025-04-29
  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Python操作MySQL

    本文将从以下几个方面对Python操作MySQL进行详细阐述: 一、连接MySQL数据库 在使用Python操作MySQL之前,我们需要先连接MySQL数据库。在Python中,我…

    编程 2025-04-29
  • Python运行不报错又无任何结果输出可能产生的原因以及解决方法

    在Python编程过程中,有时候会出现程序运行不报错但却没有任何结果输出的情况。本文将从多个方面解析这个问题,并提供相应的解决方法。 一、语法错误 语法错误是Python程序中最常…

    编程 2025-04-29
  • Java 监控接口返回信息报错信息怎么处理

    本文将从多个方面对 Java 监控接口返回信息报错信息的处理方法进行详细的阐述,其中包括如何捕获异常、如何使用日志输出错误信息、以及如何通过异常处理机制解决报错问题等等。以下是详细…

    编程 2025-04-29
  • MySQL递归函数的用法

    本文将从多个方面对MySQL递归函数的用法做详细的阐述,包括函数的定义、使用方法、示例及注意事项。 一、递归函数的定义 递归函数是指在函数内部调用自身的函数。MySQL提供了CRE…

    编程 2025-04-29
  • Python载入Cookie错误解决方法用法介绍

    本文将从多个方面详细阐述Python载入Cookie错误的解决方法,希望能对读者有所帮助。 一、Cookie错误常见原因 1、Cookie过期:当Cookie过期时,载入Cooki…

    编程 2025-04-29
  • Python切片索引越界是否会报错

    解答:当对一个字符串、列表、元组进行切片时,如果索引越界会返回空序列,不会报错。 一、切片索引的概念 切片是指对序列进行操作,从其中一段截取一个新序列。序列可以是字符串、列表、元组…

    编程 2025-04-29
  • 如何解决Grid监控报错prvg-1205

    Grid监控是Oracle RAC的重要组件,它可以帮助监视RAC集群的运行状态和性能,对于集群管理非常关键。但是,如果在安装过程中遇到报错prvg-1205,将会导致安装失败,影…

    编程 2025-04-28
  • MySQL bigint与long的区别

    本文将从数据类型定义、存储空间、数据范围、计算效率、应用场景五个方面详细阐述MySQL bigint与long的区别。 一、数据类型定义 bigint在MySQL中是一种有符号的整…

    编程 2025-04-28

发表回复

登录后才能评论