MySQL
关于常见的MySQL技术学习和解决方法
DO your like
冇七年
展开
-
MySQL8 windows archive 安装
2.2.删除datadir // 即my.ini配置文件的datadir属性描述了data的存放路径,删除该data目录。1.mysqld --install mysql // mysql是本次安装的服务命名,也可以叫做mysql8 etc.2.3.mysqld --install mysql8 // 更改服务命名 重新安装。原创 2024-09-09 11:24:59 · 383 阅读 · 0 评论 -
MySQL8 windows archive 安装
2.2.删除datadir // 即my.ini配置文件的datadir属性描述了data的存放路径,删除该data目录。1.mysqld --install mysql // mysql是本次安装的服务命名,也可以叫做mysql8 etc.2.3.mysqld --install mysql8 // 更改服务命名 重新安装。原创 2024-09-09 11:24:59 · 383 阅读 · 0 评论 -
Mysql8客户端连接异常:Public Key Retrieval is not allowed
mysql 8.0 默认使用 caching_sha2_password 身份验证机制 (即从原来mysql_native_password 更改为 caching_sha2_password。从 5.7 升级 8.0 版本的不会改变现有用户的身份验证方法,但新用户会默认使用新的 caching_sha2_password。客户端不支持新的加密方式。修改用户的密码和加密方式。方案一:在命令行模式下进入mysql,输入以下命令:或者然后就可以正常连接了。原创 2024-09-06 17:27:45 · 398 阅读 · 0 评论 -
MySQL核心点笔记
条件查询-- 1、关系运算符:> < >= <= = <> (也可以用!=,是一种宽容处理,不建议)select count(last_name),last_name,first_name FROM employees WHERE salary<>20000 -- 聚集函数只能显示一行-- 2、按逻辑表达式筛选:and or-- 3、范围表达式:between and,not between and-- 4、确定集合:in,not in--...原创 2022-05-22 19:21:23 · 10013 阅读 · 0 评论 -
MySQL5.7访问被拒 1045 (28000): Access denied for user ‘mysql‘@‘localhost‘ (using password: YES)
说一下目前的环境,本人在云服务器上的docker部署了mysql近来连接项目发现连不上,报错ERROR1045(28000)Accessdeniedforuser'root'@'localhost',网上查阅了各种资料,最后得以解决.这里条是授权相关的语句也是解决问题的关键,localhost代表的是你的地址root代表数据库密码,由于是docker容器启动的mysql,我发现这条语句执行完毕并不能解决问题。下面是最有争议的一步,网上大部分是。由此解决问题,mysql连接正常。...转载 2022-07-15 18:28:38 · 798 阅读 · 0 评论 -
MySQL 8.0远程连接2059异常
native不支持MySQL8.0的root账号的密码验证插件,变更如下内容即可# 登录mysql -h localhost -u root -p# 修改加密规则password是自己的密码,root也是登陆账户,下同。ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; # 更新一下用户的密码ALTER USER 'root'@'localhost' IDENTIFIED WITH .原创 2022-04-21 16:45:32 · 900 阅读 · 0 评论 -
MyISAM和InnoDB的区别
MyISAM和InnoDB MyISAM InnoDB 外键 不支持 支持 事务 不支持 支持 行/表锁 表锁,不适合高并发 行锁,适合高并发 缓存 只缓存索引,不缓存真实数据 不仅缓存索引,还缓存真实数据;对内存要求高,而且内存大小对性能有直接影响 关注 节省资源,消耗少 并发写、事务、耗资源 ...原创 2021-12-06 09:21:47 · 189 阅读 · 0 评论 -
数据库优化方式
数据库优化的主要方式:微服务中分库(阿里标准是数据量过500万,或三年内达到该值)横向分表,解决单表笔数过大问题纵向分表,解决单表列过多问题,这可能会影响查询效率设计冗余列,这样起到类似回表作用,既不用再去根据a表某列去查询b表某列,也避免了多表关联查询创建索引禁用外键约束等使用合适的sql语句,比如能用between不用in,能用关联查询不用多表条件查询,...原创 2021-07-20 05:36:54 · 164 阅读 · 0 评论 -
mysql——1366error:Incorrect string value: ‘\xE7\x8E\x9E\x97‘ for column
1、已建立的表无法插入中文字符串,原因是因为数据表中的内容为latin1字符集,latin1字符集为8bit,这说明它是不能表示中文的,故而当然会报改错2、下面是具体问题,如果不修改name的字符集latin1,插入中文给name时,将会报错Incorrect string value: '\xE7\x8E\x8B\xE6\x9E\x97'3、一些关于查看和修改字符集的mysql知识:...原创 2019-06-28 13:18:02 · 1100 阅读 · 0 评论 -
mysql 8.0的远程访问
最近新购了一台电脑,现在要用新电脑访问旧电脑的数据库,结果悲剧了,连接不上:2003-can tconnecttoMySQLserveronip(10060 ‘unknow error’),原因查找:由于旧电脑装了MySQL5.7 和 MySQL8.0,两个数据库的访问端口分别为3306、3307,因此进入MySQL的cmd命令不能使用:mysql -h127.0.0.1 -uroot -p ,而是:mysql -P3307 -uroot -p,进入MySQL之后:use mysql...原创 2021-01-12 22:17:24 · 196 阅读 · 0 评论 -
数据库、sql优化
数据库优化:分库 横向分表 纵向分表,解决列过多而带来的查询问题 设计冗余列,避免使用多表连接 创建索引 禁用外键 UNION、INTERSECT、EXCEPTsql优化:查询不用* 能用between不用in 使用多表关联去代替子查询和多表条件查询 最好是在相同类型的字段间进行比较的操作 在建有索引的字段上尽量避免函数操作 在搜索字符型字段时,使用like和通配符查询耗费系统性能 避免在查询中让MySQL进行自动类型转换,因为转换过程中会使索引变得不起作用...原创 2020-08-09 21:34:26 · 116 阅读 · 0 评论 -
分布式系统唯一id生成的几种方式
转载地址:https://www.cnblogs.com/haoxinyue/p/5208136.html分布式系统唯一ID生成方案汇总系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结。生成ID的方法有很多,适应不同的场景、需求以及性能要求。所以有些比较复杂的系统会有多个ID生成的策略。下面就介绍一些常见的ID生成策略。1. 数据库自增长序列或字段最常见的方式。利用数据库,全数据库唯一。优点:1)简单,代码方便,性能可以接受。2)数字ID天然排序,对转载 2020-07-23 21:51:51 · 192 阅读 · 0 评论 -
在保持旧版本情况下安装5.7版MYSQL
在实际开发中,一些低版本数据库,不支持一些特殊的sql语句,因此高版本数据库数据导入低版本的时候就会出问题,因此,在一些特殊情况下,低版本数据库不能动,高版本mysql数据又无法导入低版本mysql,我们不得不在同一台机器上安装两个版本mysql.低版本mysql不支持的sql语句举例,比如下面的这个:CREATE TABLE `storage` ( `storageid` INT(...原创 2020-04-03 20:20:28 · 240 阅读 · 0 评论 -
MySQL的连接操作
mysql自连接mysql有时在信息查询时需要进行对自身连接(自连接),所以我们需要为表定义别名。我们举例说明,下面是商品采购表,我们需要找到采购价格比惠惠高的所有信息。一般情况我们看到这张表我们第一时间用语句进行操作:SELECT * FROM shoping WHERE price>27可想而知,这是有多么简单,假设你并不知道数据库表详细数据或者数据量相当庞大呢?作为...原创 2020-03-16 20:36:38 · 208 阅读 · 0 评论 -
trigger
触发器触发器依旧是存储过程的扩展,一次编译永久调用,是优化的一种方式优点:SQL触发器提供了检查数据完整性的替代方法。 SQL触发器可以捕获数据库层中业务逻辑中的错误。 SQL触发器提供了运行计划任务的另一种方法。通过使用SQL触发器,您不必等待运行计划的任务,因为在对表中的数据进行更改之前或之后自动调用触发器。 SQL触发器对于审核表中数据的更改非常有用。缺点:SQL触...原创 2020-02-05 23:08:41 · 203 阅读 · 0 评论 -
function
存储函数存储函数属于存储过程扩展,也一次编译多次调用的预编译Sql语句集合优点:高效,高优化,省流,安全,解耦语法:delimiter 自定义符号 - 如果函数体只有一条语句, begin和end可以省略, 同时delimiter也可以省略create function 函数名(形参列表) returns 返回类型 -注意是returnsbegin 函数体......原创 2020-02-04 23:06:26 · 259 阅读 · 0 评论 -
數據庫的索引
什么是索引 索引,使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。 在关系数据库中,索引是一种与表有关的数据库结构,它可以使对应于表的SQL语句执行得更快。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。当表中有大量记录时,若要对表进行查询,第一种搜索信息方式是全表搜索,是将所有记录一一取出,和查询条件进行一一对比,然后返...转载 2019-02-18 13:08:39 · 109 阅读 · 0 评论 -
MySQL函数大全
一、数学函数ABS(x) 返回x的绝对值 BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制) CEILING(x) 返回大于x的最小整数值 EXP(x)返回值e(自然对数的底)的x次方 FLOOR(x) 返回小于x的最大整数值 GREATEST(x1,x2,...,xn)返回集合中最大的值 LEAST(x1,x2,...,xn) 返...原创 2020-02-04 22:44:24 · 90 阅读 · 0 评论 -
procedure
存储过程一组为了完成特定功能的预编译Sql语句,存储在数据库中,一次编译后即运行在内存中,以后可以再次调用,效率高优点:一次编译,多次调用:编译后书籍存储于内存,可以被后续调用 高效:效率高于一般的sql语句 简化操作:通过把处理封装在容易使用的单元中,简化复杂的操作; 解耦,独立和优化管理:如果表名、列名或业务逻辑有变化。只需要更改存储过程的代码,使用人员无需更改代码; 存......原创 2020-02-04 22:34:59 · 1483 阅读 · 0 评论 -
Transaction
事务TransactionDTL,数据事务语言示例:一个转账操作,有多条sql 组成要么全部都执行成功,要么全部都不执行begin transaction -- 开始事务(1) update account set banlance = balance -100 where accountId = 1001;(2) sql...(3) sql...(4) s...原创 2020-02-04 14:54:40 · 278 阅读 · 0 评论 -
alter/change/modify
ALTER COLUMN用于默认值的设置和清除。 1 ALTER TABLE MyTable ALTER COLUMN foo SET DEFAULT 'bar'; 2 ALTER TABLE MyTable ALTER COLUMN foo DROP DEFAULT;CHANGE COLUMN字段重命名,改变数据类型,移动位置。ALTER TABLE...原创 2020-02-04 14:03:25 · 210 阅读 · 0 评论