0%

Install

环境

  • macOS Monterey 12.1
  • go1.17.5
  • therecipe/qt
  • therecipe/env_darwin_amd64_513 (Qt5.13)
  • Xcode v13.2 / xcode-select –install
阅读全文 »

go package “net/http” 无法直接使用 unix 域套接字侦听的服务,会提示,不支持的协议。

方案

  • 实现自己的 RoundTripper 支持 unix socket 。

  • 伪造拨号功能并将其传递给传输:

阅读全文 »

背景

项目中经常使用别人维护的模块,在 git 中使用子模块的功能能够大大提高开发效率。使用子模块后,不必负责子模块的维护,只需要在必要的时候同步更新子模块即可。本文主要讲解子模块相关的基础命令,详细使用请参考 man page。

子模块的添加

添加子模块非常简单,命令如下:git submodule add <url> <path>

其中,url 为子模块的路径,path 为该子模块存储的目录路径。

阅读全文 »

1、检查 MariaDB 数据库存放目录

1
mysql -u root
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
MariaDB [(none)]> show variables like '%dir%';
+-----------------------------------------+----------------------------+
| Variable_name | Value |
+-----------------------------------------+----------------------------+
| aria_sync_log_dir | NEWFILE |
| basedir | /usr/ |
| binlog_direct_non_transactional_updates | OFF |
| character_sets_dir | /usr/share/mysql/charsets/ |
| datadir | /var/lib/mysql |
| ignore_db_dirs | |
| innodb_data_home_dir | |
| innodb_log_group_home_dir | ./ |
| innodb_max_dirty_pages_pct | 90.000000 |
| innodb_max_dirty_pages_pct_lwm | 0.000000 |
| innodb_tmpdir | |
| innodb_undo_directory | ./ |
| lc_messages_dir | |
| plugin_dir | /usr/lib64/mysql/plugin/ |
| slave_load_tmpdir | /tmp |
| tmpdir | /tmp |
| wsrep_data_home_dir | /var/lib/mysql |
| wsrep_dirty_reads | OFF |
+-----------------------------------------+----------------------------+

MariaDB [(none)]> status
--------------
mysql Ver 15.1 Distrib 10.7.1-MariaDB, for Linux (x86_64) using readline 5.1

Connection id: 4
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server: MariaDB
Server version: 10.7.1-MariaDB-log MariaDB Server
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: utf8mb4
Conn. characterset: utf8mb4
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 9 min 2 sec

Threads: 2 Questions: 5 Slow queries: 0 Opens: 16 Open tables: 10 Queries per second avg: 0.009
--------------

查看 datadir 那一行所指的路径 /var/lib/mysql

查看 UNIX socket

阅读全文 »

问题

使用 docker 经常会遇到时区问题。
基本上都是UTC时间,默认时区为0时区,

1
2
3
docker run --name test --rm -ti alpine /bin/sh
# date
Mon Jan 11 02:52:18 UTC 2021

而我们主要用的是 CST 时间,北京时间,位于东八区。时区代号: Asia/Shanghai

1
2
3
docker run --name test --rm -ti -v /etc/timezone:/etc/timezone:ro -v /etc/localtime:/etc/localtime:ro alpine /bin/sh
# date
Mon Jan 11 10:53:06 CST 2021

下面汇总几个方案:

阅读全文 »

遇到这么一个问题,不小心删除关键数据(delete),MySQL 没有备份且没有开 binlog。网上搜寻了一遍,发现可以使用 percona 的恢复工具解决,本文做个恢复步骤记录。

阅读全文 »

Docker容器使用问题

Failed to get D-Bus connection: Operation not permitted

问题

使用centos7镜像创建容器后,在里面使用systemctl启动服务报错。

1
2
3
4
5
docker run -itd --name centos7 centos:7
docker attach centos7
yum install vsftpd
systemctl start vsftpd
Failed to get D-Bus connection: Operation not permitted
阅读全文 »

Supervisor简单介绍

supervisor是一个 Client/Server模式的系统,允许用户在类unix操作系统上监视和控制多个进程,或者可以说是多个程序。supervisor与launchd,daemontools,runit等程序有着相同的功能,与其中某些程序不同的是,它并不作为“id 为 1的进程”而替代init。相反,它用于控制应用程序,像启动其它程序一样,通俗理解就是,把Supervisor服务管理的进程程序,它们作为supervisor的子进程来运行,而supervisor是父进程。supervisor来监控管理子进程的启动关闭和异常退出后的自动启动。

至于为什么要用supervisor来管理进程,是因为相对于linux传统的进程管理(即系统自带的init 进程管理)方式来说,它有很多的优势:

阅读全文 »