Shawn's Blog

蒸汽兔

MYSQL 相关命令

字数:361 字 阅读时长:约 2 分钟 阅读

创建账户

create user '{user}'@'%' identified by '{password}';

检查账户是否存在

SELECT EXISTS(SELECT 1 FROM mysql.user WHERE user = 'username')

授权账户

GRANT ALL PRIVILEGES ON {database}.* TO '{user}'@'%' IDENTIFIED BY '{password}';
GRANT ALL PRIVILEGES ON {database}.* TO '{user}'@'localhost' IDENTIFIED BY '{password}';

查询全局等待事务锁超时时间

SHOW GLOBAL VARIABLES LIKE 'innodb_lock_wait_timeout';

设置全局等待事务锁超时时间

SET  GLOBAL innodb_lock_wait_timeout=100;(单位是秒)

事务

相关表

  • innodb_trx:当前运行的所有事务
  • innodb_locks:当前出现的锁
  • innodb_lock_waits:锁等待对应的关系
  • processlist:当前进程信息

检查是否锁表

show open tables where in_use > 0;

查询当前正在执行的事务

select * from information_schema.innodb_trx

查询当前出现的锁

select * from information_schema.innodb_locks

查询等待锁的事务所执行的SQL

SELECT
    a.trx_id '事务 id',
    a.trx_mysql_thread_id '事务线程 id',
    a.trx_query '事务 SQL' 
FROM
    information_schema.innodb_locks b,
    information_schema.innodb_trx a 
WHERE
    b.lock_trx_id = a.trx_id;

通过事务线程ID查找进程信息

select * from information_schema.processlist where id = ${事务线程id}

杀死阻塞事务

kill ${事务线程id}

© Shawn Jim. All rights reserved. 本站总访问量 次, 访客数 人次.