基础命令
查看客户端连接了
查看空闲连接最大空闲时长
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
| 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)修改配置文件