LinMinquan's Blog

Experience technology to change life

Deploy Mysql 8.0.36 via Docker in Ubuntu 22.04

走了些弯路,记录下。 用 docker compose 部署的,docker-compose.yml 内容如下: version: '3' services: db: image: mysql:8.0.36 restart: always container_name: mysql8 command: --max_connections=500 environment: - MYSQL_ROOT_PASSWORD=your_password volumes: - /opt/docker/mysql8.0.36/datadir:/var/lib/mysql - /opt/docker/mysql8.0.36/config/my.cnf:/etc/mysql/my.cnf ports: - 3306:3306 MySQL 8.0.36 镜像的选择,在 https://hub.docker.com/_/mysql,选择了 8.0.36。想改它的 max_connections,后来发现进它的 container 里,vi 命令无法使用,想改一下 my.cnf 都改不了。网上说用 apt 命令安装下,但在这 container 里,连 apt 命令也用不了。后来注意到有 8.0.36-debian 版本,后者应该是基于 debian 的,试了下,可以用 apt 命令。但是在阿里云,apt 命令无法下载。 最后,用了上面的 docker-compose.yml,在宿主机上,/opt/docker/mysql8.0.36/config/my.cnf 内容如下: [mysqld] character-set-server=utf8mb4 default-time-zone='+8:00' innodb_rollback_on_timeout='ON' max_connections=500 可以不用映射 /etc/mysql/my.cnf,直接在 command 里加上 --max_connections=500 也可以。 当有多个 command 时,用数组形式,如: Read more →

Nacos as Config Center of Java Sprint Boot Project

环境: Nacos server v2.2.3,在本地跑的。 SpringBoot v2.6.14 Java v1.8 源码: https://github.com/linmq/java-examples/tree/main/nacos-demo 我一直想知道,到底一个在运行的项目,用的是本地的配置,还是 nacos 上的配置。 2023-12-03 21:45:37.629 WARN 33612 --- [ main] c.a.c.n.c.NacosPropertySourceBuilder : Ignore the empty nacos configuration and get it based on dataId[myNacos.properties] & group[DEFAULT_GROUP] 2023-12-03 21:45:37.629 INFO 33612 --- [ main] b.c.PropertySourceBootstrapConfiguration : Located property source: [BootstrapPropertySource {name='bootstrapProperties-myNacos.properties,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-myNacos,DEFAULT_GROUP'}] 2023-12-03 21:45:37.632 INFO 33612 --- [ main] c.e.nacosdemo.NacosDemoApplication : No active profile set, falling back to 1 default profile: "default" 2023-12-03 21:45:37. Read more →

Set Up Wireguard Server on Ubuntu 22.04

为了访问 ChatGPT,想用固件的 IP 来访问它,想搭个 WireGuard 来用。 一个关键点是,要在云服务器的后台系统的 VPS 防火墙,将 51820 的端口开起来。 其它的步骤参考下面的文档就好了。 Digital Ocean 的教程太长太复杂了,第二个教程简单一些,两者结合起来看。 参考链接: How To Set Up WireGuard on Ubuntu 22.04 How to Set Up WireGuard VPN on Ubuntu 20.04 Read more →

Use Logrotate to Handle Big Nohup Log File

用 nohup 的方式来运行 Java 程序的话,运行一段时间后,会占用很大的硬盘空间,导致系统挂掉。 用 Linux 原生的 logrotate 工具来处理。假设项目所在的目录是 /opt/abc/ 切到 root 用户,在 /etc/logrotate.d/ 目录里新建个文件,叫 abc,文件内容如下 su root root /opt/abc/nohup.log { daily size 100M rotate 5 compress missingok notifempty copytruncate } 第一行的 su root root 是因为项目里的 nohup.log 是需要 root 用户权限和 root group 的。 copytruncate 是先复制一份 nohup.log 文件,原先的文件里的内容变没了,Java 程序还是继续往这个文件里写。还有一种方式是 create,它会把原文件重命名,新建一个新的叫 nohup.log 的文件,缺点是 Java 程序不会往这个文件里写了。 如果 nohup.log 文件已经过大了,想立即运行一下,可以敲如下命令,它会先去复制一份,然后压缩。 logrotate /etc/logrotate.d/abc 参考资料: Linux日志切割神器logrotate原理介绍和配置详解 Centos/Linux setting logrotate to maximum file size for all logs Read more →

Use SSH to Cteate a Socks Proxy

环境: Windows 11 在本地创建一个 socks 5 代理,主要是用于在浏览器里访问 ChatGPT ssh -D 5000 -CqTnN username@server-ip 在本地局域网创建一个 socks 5 代理 ssh -D 0.0.0.0:5000 -CqTnN username@server-ip 其中 -C 为压缩数据,-q 安静模式,-T 禁止远程分配终端,-n 关闭标准输入,-N 不执行远程命令。此外视需要还可以增加 -f 参数,把 ssh 放到后台运行。 判断是否生效 curl -x socks5://127.0.0.1:5000 https://tool.gl-inet.com/ip Chrome, Edge 浏览器用 SwitchyOmega 插件,第一次配置要重启一下浏览器。 参考资料: Linux使用SSH命令创建SOCKS5代理,并设置浏览器代理连接测试 SSH 端口转发与 SOCKS 代理 How to Set up SSH SOCKS Tunnel for Private Browsing https://github.com/st286/SSH-port-forwarding Read more →

Config Jenkins With Vue Project

yarn -v, 1.22.19 node -v, v16.20.1 使用jenkins自动化打包部署Vue项目,详细教程。 How To Install and Use the Yarn Package Manager for Node.js How To Install Node.js on Ubuntu 18.04 How To Install Node.js on Ubuntu 20.04 Install Node.js v16.x in Ubuntu 18 Node.js heap out of memory How do I allocate memory to work as swap space in an Amazon EC2 instance by using a swap file? Read more →

小米手机不断重启

Poco X3 Pro,突然就不断重启了,显示 poco 的 logo 后,又重启,一直重复。 长按电源键也没用。 感觉是系统一直识别到电源键在按着的状态。搜了下,解决办法是同时按住音量加 和 音量减,这样系统就会忽略电源键,就可以进到系统了。 Read more →

Use Netcat to Test Port Forwarding

背景:有三级的网络,第一级是个路由器A (192.168.1.1) ,第二级是个第三方设备B(192.168.1.2, 192.168.2.0/24),修改设置得找人远程弄,第三级是路由器C(192.168.2.3, 192.168.3.0/24),A 和 C 都是 GL.iNet OpenWRT 路由器。当对方说已经在 B 上对 192.168.2.3:5000 设置了端口转发,怎样验证对方设置是对的。 方法一:在 C 上跑个 wireguard server,将端口设置成 5000,然后在 A 中对 192.168.1.2:5000 也设置端口转发,因为 A 有公网,所以就可以在手机上测试 B 的端口转发是否是设对了。 方法二:找个安卓手机 (192.168.3.4),安装 netpal, 在 netpal 中的 SERVER 中监听 5000 端口。在 C 中对 192.168.3.4:5000 设置端口转发。在 A 的 web admin panel 的 APPLICATION -> Plug-in 中安装 netcat,然后 ssh 到 A 中敲 netcat 192.168.1.2 5000 ,如果连接成功的话,是不会有任何提示的,直接再随便敲一些字符,netpal 中就会收到字符。 参考链接: How to Download and Install Netcat on Windows PCs Read more →

用 Ping 命令来判断最适合的 MTU 值

有时候需要在本地网络判断最适合的 MTU 。 如何為網路找到適合的 MTU 大小 Ping Test to determine Optimal MTU Size on Router ping git.openwrt.org -f -l 1472 ping 8.8.8.8 -f -l 1428 Packet needs to be fragmented but DF set. 是指你设的 MTU 值太大了,需要改小一些。 記住!您必須為 Ping 測試結果加上 28 ! Read more →