SQL卡住了怎么办

1
SELECT * FROM information_schema.innodb_trx;

查看运行中的事务(重点关注长时间运行的事务)

然后KILL 线程id(trx_mysql_thread_id)即可

新建SQL

拥抱 docker desktop 的gui

(MySQL 5.7+ 引入的 X Protocol (X Plugin),提供了一个33060的端口,采用protobuf标准)

  • 去images下一个MySQL
  • 配置端口,采用3306,33060相同对应MySQL的端口,本地也没有占用这两个
  • 然后持久化,挂载目录,如果删除容器后数据不需要了也无所谓,但是如果数据有转移到其它容易的打算的话还是挂载一下。Host path是自己的电脑目录,Container path是/var/lib/mysql(默认存储位置,可以通过*–datadir*来更改)
  • 然后MySQL必须要有一个初始密码才行,通过在下面的环境变量设置MYSQL_ROOT_PASSWORD即可。

下面使用DBeaver,一个开源的Java数据库管理软件来进行操作。

添加管理员用户

1
2
3
4
5
6
7
8
-- 先创建用户(% 表示允许任意主机登录)
CREATE USER 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD';

-- 再授予权限(WITH GRANT OPTION 用于允许它授予别人权限可选)
GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' (WITH GRANT OPTION);

-- 刷新权限
FLUSH PRIVILEGES;
1
2
3
会发现提示
'FLUSH PRIVILEGES' is deprecated and will be removed in a future release.
MySQL 8.0+ 创建用户、授权  不需要 FLUSH PRIVILEGES

然后创建一个数据库

1
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

字符集,和字符串比较规则。

vo getter

原本以为没什么用,结果序列化的时候是用getter来序列化的,悲