MySQL数据库权限报错常见BUG问题汇总

本文汇总了MySQL安装及使用过程中常见的错误,包括服务无法启动、Access denied for user 'root'@'localhost'、服务启动后自动停止以及3306端口冲突等问题,并提供了详细的解决步骤和DOS命令操作。

前言

笔者我在很久以前部署了一个JSP管理系统时安装了MySQL 5.7.26,最近这段时间打开使用时,忽然发现总报各种错误,基本是root账户的password的问题,可能是时间太久笔者忘了密码,或者MySQL自身权限问题。基于此,特汇总MySQL最容易出现的安装、启动、登入和Navicat Premium连接MySQL的问题。

MySQL安装

进入MySQL 官网此处下载社区版,笔者使用流行的5.7版本 mysql-installer-community-5.7.26.0.msi,当然目前已经到8.0.20时代了,不过这并不影响一些基本操作,谁让我有怀旧情结呢。
在这里插入图片描述
MySQL安装过程简单,贴几张关键的步骤图(p.s.其实是时间久远没图了把5.7.20和5.7.26的混贴)便不再赘述:
1、必须安装微软的VBVC运行库作为MySQL的依赖。
在这里插入图片描述
2、添加角色或改root时密码必须不能忘呀
在这里插入图片描述
3、High Availability 一般选用标准类型
在这里插入图片描述
Type and Networking 的配置类型选用 Development computer
在这里插入图片描述
这里附加一下我自制的过程动图:
在这里插入图片描述

重点讲下安装后的系统变量配置、成功验证、字符集编码更改等。
控制面板>系统高级设置>
1、配置 Path 变量
变量值: C:\Program Files\MySQL\MySQL Server 5.7\bin\; (MySQL的安装目录bin)
2、验证配置成功
在管理员模式下的DOS命令行输入
net start mysql57(启动)
net stop mysql57(关闭)
mysql -uroot -p(登录)

以下是几种常见 MySQL 数据库基础报错及解决办法: - **报错 (1449)**:错误信息为 `ERROR 1449 (HY000): The user specified as a definer ('mysql.infoschema'@'localhost') does not exist`,解决方法是重启 MySQL 并登录,输入之前设置的密码,命令如下: ```bash service mysql restart mysql -u root -p ``` [^1] - **报错 (3719)**:警告信息为 `'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.`,建议考虑使用 `UTF8MB4` 以避免未来版本的歧义 [^2]。 - **报错 1130**:可以通过以下命令解决: ```sql use mysql; select 'host' from user where user='root'; update user set host = '%' where user ='root'; flush privileges; select 'host' from user where user='root'; ``` 也可使用可视化工具处理 [^3]。 - **报错 `Communications link failure`**:可能的原因及解决办法如下: - **服务问题**:开启 MySQL 数据服务。 - **网络问题**:在当前服务器 ping 一下,查看是否能连接上 MySQL 服务器。 - **MySQL 超时问题**:修改 `my.ini` 配置文件里的 `wait_timeout` 和 `interactive_timeout` 属性值,确保 `wait_timeout` 的值大于数据库连接池的最大超时时间,避免数据库提前关闭连接而连接池未关闭的情况,默认超时时间为 8 小时,8 小时内无访问则访问会被拒绝。 - **MySQL 事务问题**:手动操作事务时要保证事务提交,`@Transactional` 事务注解需加在接口的实现类或接口实现方法上,且方法必须是 `public` 修饰的 [^4]。 - **修改密码相关**:当需要修改密码时,依次输入以下命令: ```sql use mysql; update user set authentication_string=password("******") where user="root"; flush privileges; ``` 其中 `******` 需替换为实际要设置的密码 [^5]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值