# Docker `docker exec -it mysql-jeecg /bin/bash`:进入 `mysql-jeecg` 容器内部,打开 bash 终端。 `docker inspect mysql`:查看 `mysql` 容器的详细信息(端口、挂载、环境变量等)。 ## Mysql ```bash sudo mkdir -p /opt/mydata/mysql-jeecg/{data,config,logs} sudo chown -R 999:999 /opt/mydata/mysql-jeecg ``` ```bash docker run \ --name mysql-ibs \ --restart=always \ -v /opt/mydata/mysql-ibs/data:/var/lib/mysql \ -v /opt/mydata/mysql-ibs/config:/etc/mysql/conf.d \ -v /opt/mydata/mysql-ibs/logs:/var/log/mysql \ -p 63306:3306 \ -e MYSQL_ROOT_PASSWORD=xxxx \ -e MYSQL_CHARACTER_SET_SERVER=utf8mb4 \ -e MYSQL_COLLATION_SERVER=utf8mb4_unicode_ci \ -d mysql:8.0 \ --lower_case_table_names=1 ``` 关闭强制分组(ONLY_FULL_GROUP_BY) - `SELECT @@sql_mode;`:查看当前 MySQL 的 sql_mode 设置。 - `SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));`:全局关闭 ONLY_FULL_GROUP_BY(对新连接生效)。 - `SET SESSION sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));`:当前会话关闭 ONLY_FULL_GROUP_BY(只对当前连接生效)。 表名大小写设置 - `SHOW VARIABLES LIKE 'lower_case_table_names';`:查看表名是否区分大小写的配置值。 - `sed -i '/\[mysqld\]/a lower_case_table_names = 1' /etc/my.cnf`:在 MySQL 配置文件 `[mysqld]` 下添加 `lower_case_table_names=1`(通常需重启 MySQL 才生效)。 ## Redis ```bash sudo mkdir -p /opt/mydata/redis/{data,conf,logs} sudo chown -R 999:999 /opt/mydata/redis ``` ```bash cat << EOF | sudo tee /opt/mydata/redis/conf/redis.conf bind 0.0.0.0 port 6379 daemonize no dir /data appendonly yes requirepass oWBTxm6VZWwoAwLnghQG protected-mode yes maxmemory 1gb maxmemory-policy allkeys-lru EOF ``` ```bash docker run \ --name redis-server \ --restart=always \ -p 6379:6379 \ -v /opt/mydata/redis/data:/data \ -v /opt/mydata/redis/conf/redis.conf:/etc/redis/redis.conf \ -v /opt/mydata/redis/logs:/var/log/redis \ --memory=2g \ -d redis:latest redis-server /etc/redis/redis.conf ``` # Git ```sh # 全局设置。 git config --global user.name "excalicode" git config --global user.email "excalicode@excalicode.com" # 本地设置。 git config user.name "excalicode" git config user.email "excalicode@excalicode.com" # 禁用 SSL 证书验证。 git config --global http.sslVerify false ``` 查看提交记录 ```sh git log --since="2025-01-01" --until="2025-07-31" --author="tianzhuo" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %sn", add, subs, loc }'; ``` ## 远程仓库 ```sh # ⚠️ 注意:执行这一步会删除本地所有 Git 历史! rm -rf .git # 初始化一个新的 Git 仓库 git init # 设置 Git 用户名和私密邮箱(全局生效) git config user.name "Docker7530" git config user.email "121306237+Docker7530@users.noreply.github.com" # 将当前项目所有文件加入暂存区并提交 git add . git commit -m "Initial commit" # 设置默认分支名为 main git branch -M main # 绑定新的 GitHub 仓库地址 git remote add origin https://github.com/Docker7530/excalicode-ai.git # 推送到远程 GitHub 仓库 git push -u origin main ``` ## 提交规范 [约定式提交](https://www.conventionalcommits.org/zh-hans/v1.0.0/) ``` [optional scope]: [optional body] [optional footer(s)] ``` 要求: - type 必须是规范内的关键字(英文) - scope 必须是变更位置或模块名(如 prompts、admin、config) - description 需简洁描述此次修改意图(中文),不以句号结尾 - 如修改较多,需在正文用 bullet point 描述细项 - 不允许使用「更新代码」「修改 bug」这种无意义描述 ### type 列表 | type | 用途 | | -------- | ----------------- | | build | 构建系统或依赖变更 | | chore | 构建、依赖、脚本、CI/CD | | ci | CI 相关变更 | | docs | 文档、说明、注释 | | feat | 新功能 | | fix | 修补 Bug | | perf | 性能优化 | | refactor | 重构不影响行为的代码 | | style | 仅代码格式调整(空格/逗号/缩进) | | test | 新增修改测试 | | revert | 回滚代码 | ### 示例 ``` refactor(prompts): 重构提示词管理系统并统一后台样式 - 提示词从文件系统迁移到数据库 - 新增 PromptTemplate / FunctionPromptMapping CRUD - 删除旧 PromptConstants - 新增 Markdown 编辑和预览功能 ``` ## 设置代理 检查 Git 代理配置 ```bash git config --global --list | grep proxy ``` 取消配置 ```bash git config --global --unset http.proxy git config --global --unset https.proxy ``` 设置正确的 SOCKS5 代理 ```bash git config --global http.proxy socks5://127.0.0.1:7890 git config --global https.proxy socks5://127.0.0.1:7890 ``` 用 `curl` 测试你的代理: ```bash curl --proxy socks5h://127.0.0.1:7890 -I https://github.com ``` 如果代理正常,你会看到 HTTP 响应头: ``` HTTP/2 200 ... ``` 如果代理没有开启,你可能会看到类似: ``` curl: (7) Failed to connect to 127.0.0.1 port 7890: Connection refused ``` # 数据库备份 ``` # 备份表 sudo mysqldump -h localhost -u cdn -ppassW0rd# -P3306 cdnpro user > /root/tz/user.sql sudo mysql -h localhost -u cdn -ppassW0rd# -P3306 cdnpro < /root/tz/system_config.sql # 备份库 sudo mysqldump -h localhost -u cdn -ppassW0rd# -P3306 cdn_portal_trail > /home/tianzhuo/cdn_portal_trail_backup.sql sudo mysql -h localhost -u cdn -ppassW0rd# -P3306 cdn_portal_pre < /root/portal-2025-08-05.sql # 数据脱敏 UPDATE user SET mobile = CONCAT(LEFT(mobile, 3), '****', RIGHT(mobile, 4)), email = CONCAT(LEFT(email, 3), '***', SUBSTRING(email, LOCATE('@', email))); ``` # 添加服务器用户权限 ```shell useradd shizheng mkdir /home/shizheng/.ssh -p chmod 700 /home/shizheng/.ssh echo -e "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC8GQ/4TjwOweEh99onTTOP3jJSY5h4hpv2zFWn525a3rkFOfmxZUh02Wysd/88HnqDL4JhQrpA7at0cy8p1sxqboJCLiqOv/c/Mr/8nAZbTA4vOP6Wk3IHmwQfxz7depseohcCZxRFMhNCnmtcioHFBfjFVPFRIHVmqjrAlQ2o2BLWQbH7C2Cj5z5zXgOm37NHe4G+jwwwSWBZOWFR5WoLGbALNsBKcadm7of02PlFZAJZ81OPOkEI9buyUxxFv+UB5Twe1WvJ9IDB+r6VGK/XzvuNaeVfrFMJdRmtyslnlV6t0bU7vx9DqCjwAzaTghUqitlAdIGznYi+aJcULjKb3/UX2Efct5XvoktSpRWbuljgbTB4GNJr4MEaizrSKV3E+9y+5G0KtxYDjGo4pusjn5LaTskUlsFz/SrlplqBaDIyFw09RtP/Mj277ep8n8bH84k3XGbmXzcNU3twdKaPcC9bVMjTlECcVsx74tkobOEtri4ALnl6C2VBDNUuhsM= shizheng@cmhi.chinamobile.com" > /home/shizheng/.ssh/authorized_keys chmod 600 /home/shizheng/.ssh/authorized_keys chown shizheng:shizheng /home/shizheng -R echo "shizheng ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/10_shizheng chmod 440 /etc/sudoers.d/10_shizheng ``` # Redis ## 安装 ```shell # 下载Redis指定版本的源码压缩包到当前目录。 wget http://download.redis.io/releases/redis-3.0.7.tar.gz # 解压缩Redis源码压缩包。 tar xzf redis-3.0.7.tar.gz # 建立一个redis目录的软连接,指向redis-3.0.7。 ln -s redis-3.0.7 redis # 进入redis目录。 cd redis # 编译(编译之前确保操作系统已经安装gcc)。 make #安装。 make install ``` ## 使用 ```shell # 登录 ./redis-cli -h 172.21.16.209 -p 7001 # 密码 AUTH cmccPassw0rd # 节点信息 info replication # 集群信息 CLUSTER NODES # 查询在某个哈希槽 CLUSTER KEYSLOT # 测试环境 +mcKdQWMd/iqiwSmAt05FA== ``` # Windows ## 获取 DNS 服务器地址 ```PowerShell Get-DnsClientServerAddress | Select-Object -ExpandProperty ServerAddresses ``` ## Power Shell 脚本限制 PowerShell 默认不允许执行脚本,而你尝试运行 yarn 命令时,PowerShell 尝试执行 yarn.ps1 脚本但被系统安全策略阻止了。 以管理员身份打开 PowerShell 执行以下命令更改执行策略: ```powershell Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser ``` 这会允许你运行本地创建的脚本和已签名的远程脚本 然后再次尝试运行你的 yarn 命令: ```powershell yarn config set registry https://registry.npmmirror.com ``` 如果你想更加安全,完成操作后可以恢复更严格的执行策略: ```powershell Set-ExecutionPolicy -ExecutionPolicy Restricted -Scope CurrentUser ``` ## 增加 JDK 信任证书 ```sh 增加 .\keytool -import -alias cmcc-repo -file "E:\Environment\Server CA.crt" -keystore "E:\Environment\Jdks\jdk-17.0.13_windows-x64_bin\jdk-17.0.13\lib\security\cacerts" 导出 .\keytool -list -keystore "E:\Environment\Jdks\jdk-17.0.13_windows-x64_bin\jdk-17.0.13\lib\security\cacerts" > "$env:USERPROFILE\Desktop\certificates.txt" 删除 .\keytool -delete -alias "cmcc-repo" -keystore "E:\Environment\Jdks\jdk-17.0.13_windows-x64_bin\jdk-17.0.13\lib\security\cacerts" ``` # Maven 查看 Maven 最终生效的 settings 配置。 ``` mvn help:effective-settings ```