MY SQL8.0 user表无password字段

8.0版本的user表里,没有password字段,取而代之的是authentication_string。所以需要设置密码时,应该操作此字段。

MySQL8.0后请使用alter修改用户密码,因为在MySQL8.0以后的加密方式为caching_sha2_password,如果使用update修改密码会给user表中root用户的authentication_string字段下设置newpassowrd值,当再使用alter user ‘root’@‘localhost’ identified by 'newpassword’修改密码时会一直报错,必须清空后再修改,因为authentication_string字段下只能是MySQL加密后的43位字符串密码,其他的会报格式错误,所以在MySQL8.0以后能修改密码的方法只能是:ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘你的密码’

参考链接:https://blog.csdn.net/qq_42833469/article/details/90674945

### MySQL 5.7与MySQL 8.0之间的SQL语法或功能区别 #### 功能增强与新增特性 MySQL 8.0相较于MySQL 5.7引入了许多新特性和改进的功能。以下是主要差异: 1. **窗口函数的支持** - MySQL 8.0增加了对窗口函数(Window Functions)的支持,允许在查询中使用`OVER()`子句来计算基于分区的数据集上的聚合操作[^5]。 2. **通用达式 (CTE)** - CTE通过`WITH`关键字实现,在复杂查询中提供更好的可读性和重用性。这种结构使得递归查询成为可能,而这是MySQL 5.7所不支持的[^6]。 3. **JSON路径达式的扩展** - JSON数据类型的处理能力得到了显著提升,包括更强大的路径达式以及新的内置函数如`JSON_TABLE`用于将JSON文档转换成关系型格形式[^7]。 4. **角色管理** - 新增的角色机制简化了权限分配流程,管理员可以通过创建和授予角色一次性给予用户一组预定义好的权限集合[^8]。 5. **InnoDB直查缓存失效** - 自MySQL 8.0起,默认情况下关闭了InnoDB缓冲池预加载历史记录列的功能,这意味着即使重启服务器也不会自动恢复之前的状态信息[^9]。 #### 性能优化方面 - 在索引构建上做了大量工作,特别是对于二级索引重建过程中的锁策略调整;另外还增强了全文搜索引擎的能力,比如支持多列组合建立虚拟字段参与检索等场景下的现都有不同程度改善[^10]。 #### 配置选项变化 某些系统变量已被废弃或者替换成其他名称/行为模式,例如: - `innodb_file_per_table`现在始终开启不可更改; - 去掉了对MyISAM引擎作为默认存储引擎的选择权,强制使用更加稳定可靠的InnoDB替代方案[^11]。 ```python # 示例代码展示如何启用profile并查看执行计划 import pymysql connection = pymysql.connect(host='localhost', user='root', password='password', database='testdb') try: with connection.cursor() as cursor: # 启动profiling cursor.execute("SET profiling = 1;") # 执行测试查询 sql_query = "SELECT * FROM employees WHERE department_id = %s" cursor.execute(sql_query, ('HR',)) finally: connection.close() ``` 上述脚本展示了怎样利用Python连接至数据库实例并通过激活profiling监控具体某条指令的实际消耗情况[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值