macOS Dock栏设置

接扩展显示器的时候,Dock栏会在不同显示器之间切换展现,忍受这个问题很久了,今天花了一点时间找解决方案,最终还是无解,但是找到了另一种方式。

[阅读全文]
macOS  Dock 

CentOS7安装MySQL8的大坑

按官方文档,安装好MySQL后,配置好/etc/my.conf文件,但是启动失败,查日志发现报错:

1
/usr/sbin/restorecon:  lstat(/data/mysql) failed:  No such file or directory

是因为datadir文件夹没有写权限

[阅读全文]

k8s使用NFS存储卷

缘由:

go-zero gateway主要内容开发接近完成了,有一个问题一直没有解决,马上要部署了,是时候解决了。

因为主要是RESTful <–> gRPC,go-zero通过解析pb文件访问后端gRPC服务,pb文件则是通过proto文件生成,proto文件是定义接口的,接口变化会导致pb文件的变化和更新,但是通常gateway模块的功能开发相对稳定和单一,完成后很少会有修改。不希望因为pb文件的变化而导致gateway重新构建、版本发布,pb文件则是更像配置文件存在。

[阅读全文]
golang  go-zero  gateway  k8s  nfs  pv  pvc 

Golang私有仓库依赖解决方案

缘由:

以往Java日常开发中,模块依赖问题有成熟解决方案:

  1. 开发阶段,被依赖模块做为单独项目开发完成,导出jar包就可以被其他项目依赖;或者上传到Sonatype Nexus Repository共享,其他人/项目通过Maven解决依赖问题。
  2. 运行阶段,因为Java编译成中间代码,被依赖的包放在classpath中在需要时被加载运行。

与Golang开发的主要区别是Golang直接编译成二进制文件,而且是一个独立完整的可运行文件,其中包含了完整的依赖。 在开发阶段,Golang的依赖通常都是通过类似github之类仓库解决,这种方式有一个问题:企业开发过程中,可能会有一些被依赖的模块并不一定希望仓库是公开的,更适合的做法是保存在企业内部的Git服务器上;但是在开发阶段的依赖关系,在importgo mod中写企业内部仓库地址显然行不通。

[阅读全文]
golang  go mod  git 

MySQL8创建用户和授权

按之前版本MySQL创建用户和授权

1
2
3
4
5
6
7
8
# 创建用户
CREATE USER '<user>'@'%' IDENTIFIED BY '<password>';

# 授权
GRANT ALL PRIVILEGES ON <database>.* TO '<user>'@'%';

# 刷新权限
FLUSH PRIVILEGES;

在正常登录后报1142错误,经查解决方案如下:

[阅读全文]

MySQL8配置

2017年有篇文章写过关于MySQL中文排序的问题,最早这个问题在2007年MySQL 5.5的时候就有发现,今天研究了一下MySQL 8,找到一个熟悉的字眼collationutf8mb4_zh_*,翻了一下官方文档,终于这个问题得以完美解决了。修改配置文件,重启MySQL后,数据库、表默认字符集和排序都正常。整理配置如下:

[阅读全文]

GitLab CICD自动更新k8s中容器版本

前提

之前使用Gitlab和Runner的版本是12.*,现在已经到了16.*,安装和配置跟之前相比几乎没有变化,所以按之前的文档操作下来,一路比较顺利。在更新k8s集群容器版本的时候出现问题了,原来Auto Deploy方式在14.*版本被弃用,较新的方案是安装k8s代理,方案有2种:

[阅读全文]

go-zero

安装

参考官方文档

安装golang

配置GO111MODULE和GOPROXY

1
2
3
4
5
6
7
# 设置
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct

# 验证
go env GO111MODULE
go env GOPROXY

安装go-ctl

goctl是go-zero的内置脚手架,提升开发效率的利器,可以一键生成代码、文档、部署k8s yaml、dockerfile等。

[阅读全文]