sauri926 2025-03-15 21:20 采纳率: 0%
浏览 16

mysql1045权限错误

在编辑一款预订系统软件,使用的是python语言,flask架构,MTV分层,数据库驱动是mysqlclient,以及SQLAlchemy,MYSQL在登录页面进行用户验证,也就是账户密码,从数据库读取时疯狂报错:
sqlalchemy.exc.OperationalError: (MySQLdb.OperationalError) (1045, "Access denied for user '用户名'@'localhost' (using password: YES)")
(Background on this error at: https://sqlalche.me/e/20/e3q8)

经过一番查找1045是因为权限不足,跟着网上走了数十次,修改了root用户登录的访问权限,将原本的localhost改为了全体访问的%,使用grant进行权限授予的时候提示我不被允许进行grant操作。
经过再一番查找是因为新版mysql不能一边创建一边授权,问题是我没有一边创建一边授权,索性跟着教程走,又创建了一个rooter,并且分别给root和rooter赋予了权限,显示零行被影响,和教程一模一样,也就是没有用的教程被他们发出来了。
随后我试着对代码进行修改,将localhost,host,%,127.0.0.1,端口号无限排列组合,均不能通过,仍然显示1045错误。

img

  • 写回答

3条回答 默认 最新

  • 阿里嘎多学长 2025-03-15 21:20
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    mysql1045权限错误

    你遇到了mysql 1045 权限错误,这是因为你的 MySQL 用户没有足够的权限来连接到数据库。下面是一些可能的解决方案:

    1. 检查 MySQL 用户的权限:使用以下命令检查 MySQL 用户的权限:
    SELECT * FROM mysql.user WHERE User='你的用户名';
    

    其中,你的用户名 是你在 MySQL 中创建的用户名。

    1. 给 MySQL 用户添加权限:使用以下命令给 MySQL 用户添加权限:
    GRANT ALL PRIVILEGES ON *.* TO '你的用户名'@'%';
    

    其中,你的用户名 是你在 MySQL 中创建的用户名,% 表示允许从任何主机连接。

    1. 检查 Flask 应用程序的配置:确保你的 Flask 应用程序的配置文件中没有错误的数据库连接信息。

    2. 使用 SQLAlchemy 连接数据库:使用 SQLAlchemy 连接数据库时,可以使用以下代码:

    from sqlalchemy import create_engine
    
    engine = create_engine('mysql+pymysql://用户名:密码@主机名:端口号/数据库名')
    

    其中,用户名密码主机名端口号数据库名 是你的 MySQL 数据库的连接信息。

    1. 检查 MySQL 服务器的日志:检查 MySQL 服务器的日志,以了解错误的原因。

    如果你仍然遇到问题,可以提供更多的信息和错误日志,以便更好地帮助你解决问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月15日