mysql 学习笔记

这篇博客详细介绍了MySQL的一些常用操作,包括查看表结构、进程、事务与锁,以及处理查询和'Too many connections'错误的方法。同时,博主分享了在Windows上启动MySQL的挑战,并推荐使用Docker。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查看表结构

  • desc table_name
  • show create table table_name(查看建表sql)

processlist

  • show processlist 查看进程
  • kill id 杀死进程
  • select * from information_schema.processlist 查看进程

事务与锁

  • select * from information_schema .innodb_trx 查看正在执行的事务
  • select * from information_schema .innodb_locks 查看正在执行的锁
  • show status like ‘innodb_row_lock%’ 查看锁的情况

查询

  • find_in_set (当column中的各个值用 ‘,’ 隔开的时候比like更精确)
    select * from table where find_in_set(1,column)
  • 当column是json形式的时候
    select column->’$.key’ from table_name 取值
    select * from table where column=cast(key as json) json必须使用cast转换,直接查询获取不到
  • 两值合并 concat 常用电话加区号这种
    select * from table where concat(key1,key2)=?
  • column转中文中文排序
    CONVERT(${key} USING GBK)
  • 给查询结果添加一列自增字段
    主要是定义一个变量
    select @rownum:=@rownum+1 as rank,t.* from (select @rownum:=0) as a, [table t]

too many connections

  • 查看最大连接数
    show variables like ‘%max_connections%’
  • 查看服务器响应的最大连接数:
    show global status like ‘Max_used_connections’
  • 重设最大连接数
    set GLOBAL max_connections=xxx 通常服务器响应连接数占最大连接数比例超过10%比较好

win启动mysql(遇到问题以及解决,个人觉得还是直接docker启动吧,win辣鸡)

  • 临时启动/关闭
    mysqld --console //启动 mysqladmin -uuser -p shutdown//关闭
  • 以管理员身份运行cmd
    net start mysql
  • 在这里插入图片描述
  • 首先检查my.ini文件,保证mysql配置信息正确
    my.ini
[client]
# 设置mysql客户端默认字符集
default-character-set=utf8

[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=C:\mysql
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
# datadir=C:\mysql\data

# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB




* 检查有没有data文件夹,或者data文件夹是错误的
* mysqld -remove 然后删除data文件件
* mysqld -install  
* mysqld --initialize-insecure (初始化,生成data文件夹)
   mysqld --initialize(会生成随机密码)
* net start mysql
* 然后可以无密码正常登陆(8.0.17版本,别的版本没调试过)
* 更改密码
 **use mysql;**
 **ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';**
 *别的方法 set password=password('123456');
 update user set password=password(‘123’) where user=’root’ and host=’localhost';
 我的版本没效果,会报错*
* flush privileges;

 ### 客户端链接的问题
 *  caching-sha2-password
 *  select version() 查看一下版本
 *  show variables like 'default_authentication_plugin'; //查看一下当前的加密方式
 ### 修改密码(添加用户以及授权)
 alter user 'root'@'localhost' identified by 'password' password expire never //修改密码规则
 alter user 'root'@'localhost' identified with mysql_native_password by 'password'; #更新用户的密码
 flush privileges; #刷新权限
 alter user ‘root’@‘localhost’ identified by '123456';




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值