记录一些验证过的小操作
Mysql
- 给mysql创建一个只读账号指令
1. GRANT SElECT ON *.* TO 'username'@'%' IDENTIFIED BY "password";
2. flush privileges;
- 批量导出可执行的多库语句
1,指定库名
mysqldump -u root -p --databases db1 db2 > multi_databases.sql
2,所有库
mysqldump -u root -p --all-databases > all_databases.sql
Jenkins
- 配置免密登录ssh
# 1. jenkins服务器上生成密钥(步骤省略)
# 2. 查看文件
ls /root/.ssh/.
# 3. 将公钥复制到目标服务器
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.50.222
# 4. 验证(通过ssh不需要密码就能登录则算成功)
ssh root@192.168.50.222
ubuntu服务器
IDEA
- 某一天,想上插件商店下载插件,发现商店加载不出来:
intellij idea2022 Marketplace plugins are not loaded.Check the internet connection and refresh,可以试试下面的方法
修改host,C:\Windows\System32\drivers\etc,在host内添加如下内容
99.86.199.23 plugins.jetbrains.com
99.86.199.23 jetbrains.com
Docker
一、应用A通过Docker方式部署在服务器m上,应用B通过Docker方式部署在服务器n上,A和B都注册到同一个nacos中,A调用B时,报错找不到服务。如何处理?以下两种方式都可以
1,在nacos注册配置中,加上宿主机ip,以及宿主机映射端口
spring.cloud.nacos.discovery.ip = 当前宿主机ip
spring.cloud.nacos.discovery.port = 宿主机当前应用暴露的端口
2,docker的网络,由桥接改成主机模式,可直接复用宿主机的ip地址
--network=host
二,日常常用命令
2-1,清理docker容器空间
1) 清理闲置卷: docker volume prune
2) 清理无效:docker system prune -a
3) 直接查看挂载目录的磁盘使用情况,例如mysql数据盘: df -h ./data/mysql
4) 清理tag为<none>的镜像:docker image prune -f
2-2,进入docker镜像里面,查看目录文件
1)docker run --rm -it --entrypoint sh 镜像名称:镜像版本
2-3,宿主机上关闭防火墙,docker部署程序后,外网无法访问
# 优先排查内核转发是否开启
cat /proc/sys/net/ipv4/ip_forward 返回0:未开启;1:已开启
# 开启配置
1、 echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
2、 systemctl restart docker
问题补充:修改 vim /etc/docker/daemon.json 后,重启docker,出现外网无法访问问题排查及解决方案
1、排查访问不通,使用的是docker哪个网络
2、确认docker默认网络是否通,直接安装一个简洁应用,判断是否可以访问
docker run -d --name test-nginx -p 8080:80 192.168.50.112/library/nginx:latest
curl 127.0.0.1:8080 / curl 外网ip:8080
3、若默认网络能通,排查自定义网络路由情况
ip route | grep 172.207.1.0
#我错误返回信息
172.207.1.0/24 dev br-ce55f5539ae3 proto kernel scope link src 172.207.1.1 linkdown
172.207.1.0/24 dev br-e39c81abc27b proto kernel scope link src 172.207.1.1
# 我的报错,是Docker 重启未完整清理旧网桥,产生同网段重复网桥 + 重复路由,且旧网桥处于linkdown失效状态,内核路由冲突,导致流量被丢弃 / 重置。
2-4, 修改docker国内镜像配置
1) vim /etc/docker/daemon.json
2) systemctl daemon-reload && systemctl restart docker
三、排查Docker网络冲突
1,查看网络冲突
docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -q) | grep 172.207
2,移除依赖该网络的容器
3,找到该网络的网络id,移除网络
ip route get 172.207.1.100
docker network rm 31980ca6c2ec
三、卷挂载的注意事项
1)挂载目录与挂载具体文件一定要注意辨别,挂载文件夹,目录下的所有文件都会被覆盖,若挂载目录缺少对应文件,会导致程序启动异常。
Git
我要看某段时间某个项目的代码行数变更
git log --since="2025-01-01" --until="2025-06-30" --pretty=tformat: --numstat | \
awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "Added lines: %s\nRemoved lines: %s\nTotal lines: %s\n", add, subs, loc }'
Kafka
查看kafka版本
./bin/kafka-topics.sh --version
其他
- 小A写了一段代码,访问第三方Http请求,发现请求不通,小A觉得他写的代码没问题,就想看他发出去的请求,到底是怎么样的?可以通过代理工具,例如Charles 抓包
例如,通过 org.apache.hc.client5.http.impl.classic.CloseableHttpClient 客户端发的 http请求,如何代理呢?只需要在代码中加上 如下部分即可
HttpHost proxy = new HttpHost("127.0.0.1",8888);
DefaultProxyRoutePlanner routePlanner = new DefaultProxyRoutePlanner(proxy);
client.setRoutePlanner(routePlanner)