MySQL 命令(持续更新)

  • 将 MySQL 命令结果输出到文件中

    通过 k8s MySQL pod 里的客户端连接到 MySQL 服务器

    kubectl exec mysql-pod -- mysql -hx.x.x.x -uroot -proot -e 'SELECT * FROM db.table;' > result.txt
    
  • 通过 k8s MySQL pod 的客户端连接 MySQL 服务器,直接进入到 MySQL 客户端界面

    kubectl exec -it mysql-pod -- mysql  -hx.x.x.x -uroot  -proot
    
  • 输出查询结果时如果要根据条件输出不同的值,可以使用 CASE 语句

    • 当 flag 字段不为 NULL 时,输出 flag 字段的值;
    • 否则再检查 code 字段是否为 NULL,code 字段不为 NULL 时,name1 和 name2 相等则输出 0,不相等则输出 1;
    • code 字段为 NULL,则输出 NULL。
    SELECT id, 
        CASE
            WHEN flag IS NOT NULL THEN flag
            WHEN code IS NOT NULL THEN
                CASE
                    WHEN name_1 = name_2 THEN 0
                    ELSE 1
                END
            ELSE NULL
        END AS result
    FROM table_1;
    
  • update 也支持 join

    如果 t1 关联 t2 有多条记录,则会用关联的第 1 条记录更新

    UPDATE db.table_1 t1 join db.table1_2 t2 on t1.s_id = t2.s_id set t1.order_no = t2.order_num where t1.order_num is null;
    
  • 查询某个表中字段 1 和字段 2 的值不唯一的记录

    SELECT service1_id, service2_id, COUNT(*)
    FROM table_1
    GROUP BY service1_id, service2_id
    HAVING COUNT(*) > 1;
    
  • MySQL 服务器开启 SQL 日志记录

    // 查看 SQL 日志记录是否开启
    mysql> SHOW VARIABLES LIKE 'general_log';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | general_log   | OFF   |
    +---------------+-------+
    1 row in set (0.00 sec)
    
    // 如何没有开启执行这条命令开启
    SET global general_log = 1;
    
    // 查看日志输出格式是否是 FILE
    mysql> SHOW VARIABLES LIKE 'log_output';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | log_output    | FILE  |
    +---------------+-------+
    1 row in set (0.00 sec)
    
    // 查看日志记录的文件
    mysql> SHOW VARIABLES LIKE 'general_log_file';
    +------------------+------------------------------------------------------+
    | Variable_name    | Value                                                |
    +------------------+------------------------------------------------------+
    | general_log_file | /var/lib/mysql/data/mydata/ae94c55f6df-a7c1901-0.log |
    +------------------+------------------------------------------------------+
    1 row in set (0.01 sec)
    
    // 必要时可以设置日志输出文件,一般用上一步查出来的日志查看即可
    SET global general_log_file = '/var/log/mysql/general.log';
    
    // 查看日志内容
    tail -n 50 /var/lib/mysql/data/mydata/ae94c55f6df-a7c1901-0.log
    
  • 通过 k8s MySQL pod 导出表数据

    kubectl exec mysql-pod -- mysqldump -hx.x.x.x -uroot -proot --set-gtid-purged=OFF db_1 table_1 table_2 > dump.sql
    
  • 通过 k8s MySQL pod 导入表数据

    kubectl exec mysql-pod -- mysql -hx.x.x.x -uroot -proot db_1 < input.sql
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值