windows 下mysql更新用户password异常后导致的问题

本文介绍了一种因错误更新MySQL用户密码导致无法正常登录及执行数据库操作的问题,并提供了详细的解决步骤,包括修改配置文件、重启服务、更新密码等。

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

新装mysql,更新user 密码,记不清当时具体执行语句了,应该是正常的updat 。。。。set 。。。。。=“” where user=。。。。

结果导致用户表数据异常,登录后show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| test |

+--------------------+

2 rows in set (0.00 sec)

再也看不到数据库名为mysql的库;

当执行create 等命令操作数据表时候,各种:

ERROR 1227 (42000): Access denied; you need (at least one of) the RELOAD privilege(s) for this operation

看日志各种:

2016-09-01 16:11:04 18384 [Warning] Found invalid password for user: 'root@localhost'; Ignoring user
2016-09-01 16:11:04 18384 [Warning] Found invalid password for user: 'root@127.0.0.1'; Ignoring user
2016-09-01 16:11:04 18384 [Warning] Found invalid password for user: 'root@::1'; Ignoring user

然后开始各种搜,网上各种啪啦啪啦,也不是那么回事。记录下自己的过程:

系统:windows

mysql:5.6.12

解决:

1.修改my.ini,在 [mysqld] 增加配置项:skip_grant_tables

2.重启mysql 服务;

3.能看到名为mysql的库了;(成功一小步。。。)

4.use mysql;

5.update user password =password("你要设置的密码") where user="root";(一定要执行对了语句,在密码那再不是直接=“”)

6.flush privileges;

7.exit;(这里应该顺道删掉my.inin里的配置项skip_grant_tables,或者注释也行)

8.重启mysql 服务;

整个世界和平了。。。。。。

### PyQt5 应用打包后 MySQL 连接问题的解决方案 当使用PyQt5开发的应用程序在Windows环境下完成打包之后,如果遇到无法连接MySQL数据库的情况,通常可能是因为缺少必要的驱动程序或配置正确所致。以下是针对该问题的具体分析和解决方法: #### 1. 驱动程序缺失 PyQt5依赖于QSQL模块来实现与MySQL数据库的交互功能。然而,在某些情况下,打包后的应用程序可能会因为未包含相应的数据库驱动而失败。例如,`qsqlmysql.dll` 是用于支持MySQL连接的关键动态链接库文件。 为了确保此文件被正确嵌入到最终可执行文件中,可以采取以下措施: - **手动复制驱动文件**:将 `qsqlmysql.dll` 文件从 Qt 安装目录下的 `plugins/sqldrivers/` 路径拷贝至打包生成的应用程序根目录下[^1]。 ```bash cp <qt_install_path>/plugins/sqldrivers/qsqlmysql.dll <your_app_output_dir>/ ``` - **修改打包脚本**:通过调整 PyInstaller 的 `.spec` 文件或其他构建工具设置,显式指定需要额外包含的资源路径。例如,在 `.spec` 中添加如下内容以自动引入 sqldrivers 插件: ```python from PyInstaller.utils.hooks import collect_all datas, binaries, hiddenimports = collect_all('sqlite') a = Analysis( ['main.py'], pathex=['.'], datas=datas, binaries=[('path_to_qt_plugins/sqldrivers/qsqlmysql.dll', 'sqldrivers')], ... ) ``` #### 2. 数据库客户端库版本冲突 除了上述提到的 QSQL 驱动外,还需要确认目标机器上已安装并兼容当前使用的 MySQL Connector/C 版本。如果运行环境中存在多个同版本的 MySQL 客户端库,则可能导致加载错误或崩溃现象发生。 因此建议始终采用与开发阶段一致的 MySQL Client Library (libmysql.dll),并将它一同部署给用户。可以通过命令行检查 libmysql.dll 是否能够正常工作: ```cmd dumpbin /dependents libmysql.dll ``` 同时注意验证其位数(32-bit vs 64-bit)需匹配操作系统架构以及 Python 解释器本身编译时所基于的目标平台类型。 #### 3. 环境变量配置当 有时即使所有必需组件均已就绪,但如果系统未能找到这些共享对象仍会引发异常行为。此时可通过适当扩展 PATH 变量范围使得外部进程也能访问它们;或者直接把相关 DLL 放置在同一级目录下来规避此类风险。 另外还需留意 SSL/TLS 加密选项是否开启及其证书链校验逻辑是否会干扰初始握手过程。关闭安全模式或将信任存储位置硬编码进源码里也是一种可行办法。 --- ### 示例代码片段 下面给出一段简单的测试函数用来诊断基本连通性状况: ```python import sys from PyQt5.QtSql import QSqlDatabase, QSqlQuery def test_mysql_connection(): db = QSqlDatabase.addDatabase("QMYSQL") # 使用 QMYSQL 驱动 db.setHostName("localhost") db.setDatabaseName("testdb") db.setUserName("root") db.setPassword("password") if not db.open(): print(f"Failed to connect: {db.lastError().text()}", file=sys.stderr) return False query = QSqlQuery() if query.exec_("SELECT VERSION();"): while query.next(): version = query.value(0) print(f"MySQL Server Version: {version}") db.close() return True ``` 调用以上方法前应先保证环境搭建完毕无误后再继续后续操作步骤。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值