MySQL 常见问题

发布于 2024-10-26 09:06:45 字数 5378 浏览 5 评论 0

window Table 'mysql.user' doesn't exist

找到 my.ini 中的 datadir=C:/mysql/data ​ 把 data 目录下的文件全部清空,执行 mysqld --initialize-insecure --user=mysql ​ 初始化,执行 mysqld --defaults-file=…/my.ini --console ​,看看是否能够启动

https://blog.csdn.net/mxj588love/article/details/115945729

Install/Remove of the Service Denied!

打开 cmd.exe 程序的时候选择“用管理员身份打开”

mysqld: [ERROR] Found option without preceding group in config file

这个错误通常表示在 MySQL 配置文件中有一个选项没有正确地放在相应的组中。你可以检查配置文件(通常是 my.cnfmy.ini )并确保所有选项都位于正确的组标签下,例如 [mysqld] 。你可以提供一些具体的配置文件内容吗?这样我可以帮助你更好地解决问题。

mysqld: [ERROR] Fatal error in defaults handling. Program aborted!

原因:原因是 my.ini 文件保存格式的问题:mysql 里面的配置文件 my.ini 编码格式正常情况应该是 ANSI/ASCII 格式的。但是,出现这种情况是 my.ini 配置文件格式竟然被默认改成了 utf-8 格式造成的。

解决:步骤:用记事本打开 my.ini 文件——>点击 文件 选择 另存为 ——>将编码选为 ANSI ——>保存覆盖——>重启 MySQL 。

数据库 字符串类型数据 按数值排序

降序排列: SELECT from nrrs.etl_job ORDER BY duration+0 desc ​ 升序排列: SELECT from nrrs.etl_job ORDER BY duration+0 asc

最全方案: https://blog.csdn.net/parade0393/article/details/79406020

sql 取 结果 第一个

LIMIT 1

https://www.cnblogs.com/feifeicui/p/10169854.html

有条件的合并第二个表

left join 时间 最近

SELECT

u.id,

u.user_name,

u.last_upd_time AS audit_time,

u.state,

suo.opt_user_name

FROM

users AS u

LEFT JOIN (

SELECT

opt_user_name,

opt_type,

user_id

FROM

opt_user_log

WHERE

opt_type IN (1, 2)

ORDER BY

add_time DESC

) AS suo ON suo.user_id = u.id

WHERE

(1 = 1)

GROUP BY

u.id

ORDER BY

field(u.state, 1, 2, 3),

audit_time DESC;

https://blog.csdn.net/weixin_32258183/article/details/113253821

查询重复

select*from tablenamewhere idin (
select idfrom tablename
group by id
having count(id)> 1
)

https://www.cnblogs.com/cl1024cl/p/6205529.html

sql 单表/多表查询去除重复记录

单表 distinct

多表 group by

https://www.php.cn/sql/460992.html

SQL 分组取最新的一条数据

SELECT
    obj.status, obj.mail_id, MAX(obj.update_time) latest_time, obj.*
FROM
    (
        SELECT DISTINCT
            (a.id) temp_id,
            a.*
        FROM
            t_send_mail_history a
        ORDER BY
            a.update_time DESC
    ) obj
WHERE mail_id = '2109170MA0209407Y0ANZ0WSONQC4PVM'
GROUP BY mail_id;

错误写法:

SELECT t2.id, STATUS,mail_id,MAX(t2.update_time) AS latest_time
FROM  t_send_mail_history t2
GROUP BY t2.mail_id;

https://blog.csdn.net/persistencegoing/article/details/92764058

insert 8.5w/s 高

关于线程:我的 cpu 只有十二个线程,所以核心线程设置的 10,留两个线程打杂;

https://blog.csdn.net/qq_33709582/article/details/121745749?utm_medium=distribute.pc_feed_v2.none-task-blog-expert_recommend-1.pc_personrecdepth_1-utm_source=distribute.pc_feed_v2.none-task-blog-expert_recommend-1.pc_personrec

数据库大表优化

https://blog.csdn.net/qq_28804275/article/details/99498553

sql-哪些情况需要创建索引

主键自动建立唯一索引 频繁作为查询条件的字段应该创建索引 查询中与其它表关联的字段,外键关联建立索引 频繁更新的字段不适合建索引(每次更新不单单是更新了记录还会更新索引) where 条件中用不到的字段不建索引 单键/组合索引(在高并发下建议建组合索引) 查询中排序的字段,排序字段通过索引去访问提高排序速度 查询中统计或分组字段 https://blog.csdn.net/a332056918/article/details/81916255

那些情况下不创建索引

https://blog.csdn.net/yhw_1125/article/details/99291625

慢查询 排查

介绍两个不错的定位慢查询的工具。

mysqldumpslow

MySQL 内置了 mysqldumpslow 这个工具来帮助我们分析慢查询日志文件,Windows 环境下使用该工具需要安装 Perl 环境。比如我们可以通过 mysqldumpslow -s t 10 LAPTOP-8817LKVE-slow.log 命令得到按照查询时间排序的 10 条 SQL 。

pt-query-digest

除此之外还有 pt-query-digest,这个是 Percona Toolkit 中的工具之一,download 地址: https://www.percona.com/downloads/percona-toolkit/LATEST

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

娇俏

暂无简介

0 文章
0 评论
22 人气
更多

推荐作者

新人笑

文章 0 评论 0

mb_vYjKhcd3

文章 0 评论 0

小高

文章 0 评论 0

来日方长

文章 0 评论 0

哄哄

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文