原创

MySQL相关总结技术点分享

温馨提示:
本文最后更新于 2024年04月10日 ,已超过 374 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

平时在使用过程中遇到一些简单的问题,分享一下,在开发和测试中经常用到。

MySQL相关总结技术点

管理命令

MySQL单节点的测试环境,经常看到很多binlog专用很多空间,可以通过命令进行清理,清理之前考虑是否需要备份。

purge master logs before '2024-01-15 17:20:00'; -- 删除指定日期以前的日志索引中binlog日志文件

purge master logs to'mysql-bin.000022'; //删除指定日志文件的日志索引中binlog日志文件
// 注意:使用该语法,会将对应的文件和mysql-bin.index中对应路径删除

// 通过设置binlog过期时间,使系统自动删除binlog文件
show variables like 'expire_logs_days';
set global expire_logs_days = 7;    #设置binlog多少天过期

// 新版本的使用秒设置过期的日期
show variables like 'binlog_expire_logs_seconds';
set global binlog_expire_logs_seconds = 6000;

需要总结的技术知识点

创建数据库

-- 创建数据库
create database linkdata default charset utf8 collate utf8_general_ci;
-- 本地登录
CREATE USER 'linkdatauser'@'localhost'  IDENTIFIED BY 'linkdata123?';  
-- 远程登录
CREATE USER 'linkdatauser'@'%'  IDENTIFIED BY ‘linkdata';

-- 给用户付权限
grant all privileges on linkdata.* to 'linkdatauser'@'localhost'; 
flush privileges; --  刷新系统权限表

MySQL8修改root密码

# 初次安装数据库软件,初次登陆修改root密码
set password='XXX123?'

错误问题

Error 1418: This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you might want to use the less safe

set global log_bin_trust_function_creators=TRUE;

Variable 'sql_mode' can't be set to the value of 'NO_AUTO_CREATE_USER'

原因:MySQL8取消了NO_AUTO_CREATE_USER
解决方案:把.sql文件里的 'NO_AUTO_CREATE_USER'删掉就好了,包括注释里面的

MySQL锁表查询和解锁操作(在管理员角色下尝试)

1、在mysql中查看锁表和解锁的步骤如下

    -- 1.查看当前数据库锁表的情况
    SELECT * FROM information_schema.INNODB_TRX;
    -- 2.杀掉查询结果中锁表的trx_mysql_thread_id
    kill trx_mysql_thread_id

2、另外一种查询锁方法

    -- 1、查询是否锁表
    show OPEN TABLES where In_use > 0; 
    -- 2、查询进程
    show processlist
    -- 查询到相对应的进程===然后 kill    id
    -- 补充:
    -- 查看正在锁的事务
    SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; 
    -- 查看等待锁的事务
正文到此结束
本文目录