mysql调试记录

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

该命令在调试python使用pymysql连接数据库出现错误时,

报错为pymysql.err.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: NO)")

mysql -u root -p密码登录mysql后台输入命令

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

再次尝试连接数据库,报错变为

pymysql.err.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: YES)")

最后是按照这篇文章末尾执行这两句命令,pymysql就正常连接了

ALTER USER '你的mysql用户名'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY '用户对应的密码';

FLUSH PRIVILEGES;

WINDOWS环境下的MYSQL安装 - comeluder - 博客园

pymysql连接mysql 1045错误

在使用 PyMySQL 连接 MySQL 数据库时遇到错误代码 1045,通常表示访问被拒绝。这个错误通常是由于以下原因引起的:

  1. 错误的用户名或密码:最常见的原因是提供的用户名或密码不正确。

  2. 权限不足:用户可能没有足够的权限来访问特定的数据库。

  3. 用户未被授权:用户可能被创建,但没有被授权访问任何数据库。

解决步骤

1. 检查用户名和密码

确保你在连接数据库时使用的用户名和密码是正确的。可以从 MySQL 命令行工具尝试登录,例如:

 
 

mysql -u yourusername -p

然后输入密码。如果可以成功登录,那么用户名和密码就是正确的。

2. 检查用户权限

登录到 MySQL 后,你可以检查用户的权限:

 
 

SELECT user, host FROM mysql.user;

SHOW GRANTS FOR 'yourusername'@'yourhost';

这里 yourusername 是你的用户名,yourhost 是你的主机名(通常是 localhost 或一个 IP 地址)。这将显示该用户是否有权访问任何数据库。

3. 授权用户

如果用户没有权限,你可以授予他们权限。例如,要授予用户对特定数据库的访问权限,可以使用以下命令:

 
 

GRANT ALL PRIVILEGES ON databasename.* TO 'yourusername'@'yourhost';

FLUSH PRIVILEGES;

将 databasename 替换为你的数据库名。

4. 使用 PyMySQL 连接

确保你的 PyMySQL 连接字符串正确。例如:

 
 

import pymysql

connection = pymysql.connect(host='localhost',

user='yourusername',

password='yourpassword',

database='databasename')

替换 yourusernameyourpassword, 和 databasename 为你的实际用户名、密码和数据库名。

示例代码

 
 

import pymysql

from pymysql.err import OperationalError

try:

connection = pymysql.connect(host='localhost',

user='yourusername',

password='yourpassword',

database='databasename')

print("Connection successful")

except OperationalError as e:

print(f"Error: {e}")

finally:

if connection:

connection.close()

注意事项

  • 确保 MySQL 服务正在运行。

  • 检查防火墙设置,确保没有阻止 MySQL 的默认端口(通常是 3306)。

  • 使用正确的字符编码和连接参数,例如 charset='utf8mb4'

通过上述步骤,你应该能够解决因错误代码 1045 而导致的连接问题。如果问题仍然存在,请检查 MySQL 服务器的日志文件以获取更详细的错误信息。

以上都尝试了,依然连接不上

try:
    with conn.cursor() as cur:
        # 插入数据
        """
        插入订单的,1交易标的,2交易方向,3理论开仓价,4理论平仓价,5实际开仓价,6实际平仓价,7订单状态,8成交量
        """
        insert_sql = "INSERT INTO quant_orders(symbol, direction, theoretical_entry_price,theoretical_exit_price,actual_entry_price,actual_exit_price,order_status,quantity) VALUES (%s, %s, %s,%s,%s,%s,%s,%s)"
        cur.execute(insert_sql, ('INSC', 'long', 100,101,103,105,'PENDING',10))
        cur.execute(insert_sql, ('SQAU', 'SHORT', 700,701,733,706,'FILLED',12))
        conn.commit()
        print("Data inserted successfully.")
finally:
    # 关闭连接
    conn.close()

查询后得知Python向MySQL中写入数据时无论输入的数据类型如何,语句中的占位符均使用%s,所以尽管price是float类型,但是占位符不能使用%f,还是要使用%s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值