mysql 本地连接失败

本文介绍了一种解决MySQL登录时遇到的权限拒绝问题的方法。通过关闭MySQL服务、临时跳过权限表并更新root用户的密码来恢复正常登录。同时,还提到了删除空用户名的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本地登录mysql

 mysql -u root -p

输入密码后出错

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

1.关闭mysql

   # service mysqld stop


2.屏蔽权限
   # mysqld_safe --skip-grant-table
   屏幕出现: Starting demo from .....


3.新开起一个终端输入
   # mysql -u root mysql

   mysql> UPDATE user SET Password=PASSWORD('newpwd') where USER='root';

   mysql> delete from user where user='';

   //记得要这句话,否则如果关闭先前的终端,又会出现原来的错误
   mysql> FLUSH PRIVILEGES;

   mysql> \q

### 本地 Tomcat 连接 MySQL 失败的解决方案 #### 配置 JDBC 数据库连接池 确保 `context.xml` 或 `web.xml` 文件中的数据库连接配置正确无误。通常情况下,这些文件位于项目的 `META-INF` 或 `WEB-INF` 目录下。对于 MySQL连接字符串应类似于: ```xml <Resource name="jdbc/MyDB" auth="Container" type="javax.sql.DataSource" maxTotal="100" maxIdle="30" maxWaitMillis="10000" username="dbuser" password="dbpass" driverClassName="com.mysql.cj.jdbc.Driver" url="jdbc:mysql://localhost:3306/mydatabase?useSSL=false&serverTimezone=UTC"/> ``` 注意 URL 参数中包含了 `useSSL=false` 和 `serverTimezone=UTC` 来防止 SSL 认证问题以及时间差异引发的问题[^3]。 #### 检查驱动程序兼容性 确认使用的 MySQL Connector/J 版本与 MySQL 数据库版本相匹配,并将其放置于 `$CATALINA_HOME/lib` 目录内以便让 Tomcat 能够加载此 JAR 文件作为类路径的一部分[^4]。 #### 设置正确的权限 如果应用程序尝试从外部访问 MySQL,则需授予相应的用户足够的权限来执行所需的操作。可以通过运行 SQL 命令给定特定 IP 地址范围内的客户端授予权限: ```sql GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; ``` 这会使得任何地方都可以通过指定用户名和密码连接到该数据库实例[^5]。 #### 日志分析 当遇到连接失败的情况时,应该仔细审查 Tomcat 应用服务器的日志文件 (`$CATALINA_BASE/logs/catalina.out`) 及 Web 应用自身的日志记录,寻找有关异常堆栈跟踪的信息,从而定位具体原因并采取相应措施加以修复[^2]。 #### 测试连接稳定性 有时长时间未活动可能导致现有连接被防火墙或其他安全设备切断。为了保持持久性的连接,在应用程序级别设置心跳检测机制或调整 MySQL 的超时参数可以帮助维持稳定的通信链路。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值