mysql命令

基础命令

查看客户端连接了

1
show processlist;

查看空闲连接最大空闲时长

1
show variables like 'wait_timeout';

手动断开空闲的连接

1
kill connection +6;  -- 6是id

查看最大连接数

1
show variables like 'max_connections';

文件相关

数据库的文件存放目录

1
2
3
4
5
6
7
8
mysql> SHOW VARIABLES LIKE 'datadir';

+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| datadir | /var/lib/mysql/ |
+---------------+-----------------+
1 row in set (0.00 sec)

对数据库加锁

1
flush tables with read lock;

执行后,整个数据库就处于只读状态了,这时其他线程执行以下操作,都会被阻塞:

  • 对数据的增删改操作,比如 insert、delete、update等语句;
  • 对表结构的更改操作,比如 alter table、drop table 等语句。

释放锁

1
unlock tables;

备份

1
mysqldump --single-transaction -u username -p database_name > backup_file.sql
  • --single-transaction:这个选项告诉mysqldump在备份开始时开启一个新的事务。为了保持一致性视图,事务的隔离级别会被设置为可重复读。这样,备份操作看到的数据是在事务开始时刻的一致性快照,而备份操作本身不会阻塞后续的写操作
  • -u username:指定用于连接数据库的用户名。
  • -p:提示输入用于连接数据库的用户密码。
  • database_name:指定要备份的数据库名。
  • > backup_file.sql:将备份输出重定向到一个文件中。

恢复

1
mysql -u username -p database_name < backup_file.sql
  • -u username:指定用于连接数据库的用户名。
  • -p:在命令执行后,你会被提示输入该用户的密码。出于安全考虑,建议不要在命令行中直接包含密码。
  • database_name:指定要恢复到的目标数据库名。这个数据库应该已经存在于MySQL服务器上,mysql命令不会自动创建数据库。
  • < backup_file.sql:这部分告诉shell从backup_file.sql文件中读取SQL语句并将其作为输入传递给mysql命令。

日志

(1)mysql开启SQL语句日志

在mysql控制台输入

1
2
3
SET GLOBAL general_log = 'ON';  --开启通用日志

SET GLOBAL slow_query_log = 'ON'; --开启慢查询日志

日志默认存储在mysql的数据目录下,可以修改配置文件my.cnf中修改,开启日志会影响性能

(2)关闭SQL语句日志

1
SET GLOBAL general_log = 'OFF';

(3)mysql日志文件

通用日志文件位置

1
2
3
4
5
6
7
8
show variables like 'general%';

+------------------+---------------------------------+
| Variable_name | Value |
+------------------+---------------------------------+
| general_log | ON |
| general_log_file | /var/lib/mysql/9b872b1dacc0.log |
+------------------+---------------------------------+

错误日志文件路径

1
2
3
4
5
6
7
show variables like 'log_error';

+---------------+--------+
| Variable_name | Value |
+---------------+--------+
| log_error | stderr |
+---------------+--------+

慢查询日志

1
2
3
4
5
6
7
8
9
10
11
12
13
14
show variables like '%slow%';

mysql> show variables like '%slow%';
+-----------------------------+--------------------------------------+
| Variable_name | Value |
+-----------------------------+--------------------------------------+
| log_slow_admin_statements | OFF |
| log_slow_extra | OFF |
| log_slow_replica_statements | OFF |
| log_slow_slave_statements | OFF |
| slow_launch_time | 2 |
| slow_query_log | OFF |
| slow_query_log_file | /var/lib/mysql/9b872b1dacc0-slow.log |
+-----------------------------+--------------------------------------+

慢查询日志时间设置

1
2
3
4
5
6
7
show variables like 'long_query_time%';

+-----------------+-----------+
| Variable_name | Value |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+

二进制日志

1
2
3
4
5
6
7
8
9
10
11
show variables like 'log_bin%';

+---------------------------------+-----------------------------+
| Variable_name | Value |
+---------------------------------+-----------------------------+
| log_bin | ON |
| log_bin_basename | /var/lib/mysql/binlog |
| log_bin_index | /var/lib/mysql/binlog.index |
| log_bin_trust_function_creators | OFF |
| log_bin_use_v1_row_events | OFF |
+---------------------------------+-----------------------------+

(4)修改配置文件


mysql命令
http://example.com/2024/03/19/数据库/mysql命令/
作者
Mrxiad
发布于
2024年3月19日
许可协议