MySQL常用命令

MySQL 常用命令

  • 查询数据库每张表的大小
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    SELECT
    TABLE_NAME AS '表名',
    concat(
    round(DATA_LENGTH / 1024 / 1024, 2),
    'MB'
    ) AS '数据大小',
    concat(
    round(INDEX_LENGTH / 1024 / 1024, 2),
    'MB'
    ) AS '索引大小',
    TABLE_ROWS AS '数据条数',
    concat(
    round(
    (DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024,
    2
    ),
    'MB'
    ) AS '总大小'
    FROM
    TABLES
    WHERE
    TABLE_SCHEMA = 'AAAA'
    ORDER BY
    (DATA_LENGTH + INDEX_LENGTH) DESC;

  • 转换日志文件
    参考官网链接
    1
    2
    mysqlbinlog -v --base64-output=DECODE-ROWS log_file > a.txt
    ./mysqlbinlog -v --base64-output=DECODE-ROWS -d efi --start-datetime="2009-04-12 12:00:00" --stop-datetime="2019-04-12 14:00:00" D:/mysql/mysql-bin.002715 > D:/mysql/20190412.txt

  • 导入导出
    1
    2
    3
    4
    -- 导出
    mysqldump -h主机 -P端口 -u用户名 -p密码 数据库名 > 文件名.sql
    -- 导入
    mysql -h主机 -P端口 -u用户名 -p密码 数据库名 < 文件名.sql

  • 查看线程
    1
    2
    -- 可以解决数据库CPU占用过高的问题,根据看到的sql语句考虑加索引
    show full processlist;

  • 查看全局配置信息
    1
    show global variables;

  • 最大连接数
    1
    2
    3
    4
    -- 查看最大连接数
    show variables like '%max_connections%';
    -- 修改最大连接数
    set global max_connections=1000;
  • 查看编码
    1
    show variables like '%char%';

  • Docker运行MySQL
  • 用户名密码是上面命令中的操作员用户名密码,不需要用root登录,默认操作员只能操作efi这个数据库
  • 使用命名卷管理数据,保持宿主机清洁
1
2
3
4
5
6
7
8
9
10
11
$ docker run --name mysql \
-d \
-p 3306:3306 \
-e MYSQL\_ROOT\_PASSWORD=rootpsw \
-e MYSQL\_USER=user \
-e MYSQL\_PASSWORD=userpsw \
-e MYSQL\_DATABASE=efi \
-v mysql:/var/lib/mysql \
mysql:5.7.18 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci

文章目录
  1. 1. MySQL 常用命令