MySQL 连接

进行连接

使用数据库的第一步是连接,连接命令为:

1
mysql -u$username -h$host -P$port -p

然后输入密码就行了,不推荐在 -p 的后面输入密码,会有安全问题。

此时会去获取你拥有的权限,之后这个连接里的所有权限判断逻辑,都会用此时读取到的权限。也就是说即使在连接后,管理员账号对此账号进行了权限更改,也不会立即生效,而是重新连接后才会生效。

查看连接

连接后,可以使用命令,查看所有连接:

1
show processlist;

连接过期

建立连接后, 如果长时间没有操作,会被自动断开,这个时间由参数 wait_timeout 控制,查看方式为:

1
show variables like 'wait_timeout';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | wait_timeout  | 28800 |
    +---------------+-------+
    1 row in set, 1 warning (0.00 sec)

默认为 28000 秒, 即 8 个小时,与之相关的还有 interactive_timeout 属性。

他们的区别是 interactive_timeout 针对交互式连接, wait_timeout 针对非交互式连接.

  • 交互式连接: 通过 mysql 客户端连接.
  • 非交互式连接: 通过 jdbc 方式连接.

长/短连接

  • 短连接: 每次程序与数据库交互后都会关闭连接,下次查询再新建连接。
  • 长连接: 成语与数据库建立连接后,就一直打开,后面的查询会重用这个连接。

短连接每次进行连接时比较耗费资源,但是维护很多长连接也会占用很多内存空间,两者之前的取舍要根据实际情况来定。