0%

环境

VMware Rocky Linux 9.4 MySQL 8.0

安装mysqlclient报错

1
2
yum install python3-devel
pip3 install mysqlclient

报错:

1
2
3
4
5
6
7
8
9
Downloading http://mirrors.aliyun.com/pypi/packages/37/fb/d9a8f763c84f1e789c027af0ffc7dbf94c9a38db961484f253f0552cbb47/mysqlclient-2.2.1.tar.gz (89 kB)
|████████████████████████████████| 89 kB 80.1 MB/s
Installing build dependencies ... done
Getting requirements to build wheel ... error
ERROR: Command errored out with exit status 1:
command: /usr/bin/python3 /usr/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py get_requires_for_build_wheel /tmp/tmp5fvp1dau
cwd: /tmp/pip-install-1nnewfot/mysqlclient_93347d191d2942c8b2bb37681a22fd09
Exception: Can not find valid pkg-config name.
Specify MYSQLCLIENT_CFLAGS and MYSQLCLIENT_LDFLAGS env vars manually
阅读全文 »

安装并启动MySQL

1
2
dnf install -y mysql-server
systemctl start mysqld.service

设置MySQL的root用户密码

1
mysql_secure_installation

mysql_secure_installation是MySQL的一个安全脚本,执行后根据提示选择密码强度,输入root用户的密码

查看MySQL的版本

通过mysqladmin查到MySQL版本为8.0.36

1
2
3
4
5
mysqladmin -u root -p version
Enter password:

....
Server version 8.0.36

连接MySQL

1
mysql -u root -p

再输入你之前设置的root用户密码即可。

阅读全文 »

Django快速上手

参考: Django快速上手

再写几个页面

编辑demo1/urls.py, 添加URL和视图函数映射

1
2
3
4
5
urlpatterns = [
path('index/', views.index),
path('user/list/', views.user_list),
path('user/add/', views.user_add),
]

编辑app01/views.py,添加几个函数

1
2
3
4
5
6
7
8
9
10
11
from django.shortcuts import render, HttpResponse

# Create your views here.
def index(request):
return HttpResponse("Hello World")

def user_list(request):
return HttpResponse("User List")

def user_add(request):
return HttpResponse("User add")

templates模板的运用

阅读全文 »

问题描述

我想通过iptables允许以下这20个端口通过:

1
iptables -A INPUT -p tcp -i eth0 -m multiport --dports 22,80,443,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46 -j ACCEPT

执行后报错,iptables: too many ports specified

原因

查看iptables官方文档, 发现iptables单条multiports规则最多只支持15个端口。 原文如下:

阅读全文 »

问题描述

客户有一台基于Hyper-V创建的RHEL9虚拟机, 安装了MicroK8s, 启动正常。
虚拟机重启后, kubectl报错: Unable to connect to the server: x509: certificate has expired or is not yet valid

定位过程

这个报错说明MicroK8s apiserver证书的有效时间不对。 首先简单了解下Microk8s证书(以下内容 by ChatGPT)

阅读全文 »

问题描述

RHEL9 VM里安装了Microk8s,且使用了Nginx ingress Controller插件,443端口正常。 VM重启一次后,发现443端口没有LISTEN,不能对外提供服务。

定位过程

查看ingress pod状态,为CrashLoopBackOff

1
2
3
# kubectl -n ingress get pods
NAME READY STATUS RESTARTS AGE
nginx-ingress-microk8s-controller-b6krf 0/1 CrashLoopBackOff 1102 (55s ago) 8d
阅读全文 »

问题描述

RockyLinux9.4 yum包中的Squid版本是5.5, 不是最新的版本,我需要安装最新版本的Squid。

源码编译并安装Squid的步骤

  • 访问Squid官网,查看最新的稳定版本为 6.10
  • 下载6.10版本的源码,各发行版编译安装Squid的方法参考官方文档

下面给出我在RockyLinux9.4 VMware虚拟机上,编译安装Squid 6.10的过程:

阅读全文 »

Flask快速上手

FLask官方文档: https://flask.palletsprojects.com/en/3.0.x/quickstart/#a-minimal-application

第一个Flask App

Linux上安装Flask

1
2
3
pip3 install Flask
flask --version | grep Flask
Flask 3.0.3

写一个最小的Flask App, 添加web.py:

1
2
3
4
5
6
7
8
9
from flask import Flask

app = Flask(__name__)
@app.route('/')
def index():
return 'hello'

if __name__ == '__main__':
app.run()

运行App

1
2
flask --app web run # 只允许本地访问, 端口号默认5000
flask --app web run --host=0.0.0.0 # 允许从外部访问

Flask提供render_template方法, 返回一个HTML页面

1
2
3
4
@app.route('/show/info')
def index():
# 默认从当前项目目录的templates文件夹中寻找index.html文件
return render_template("index.html")
阅读全文 »

更新软件包

1
2
dnf check-update
dnf install dnf-utils

安装Python3和pip

1
dnf install python3 python3-pip

通过pip安装Django

1
pip3 install Django

验证Django安装是否成功

1
2
django-admin --version
4.2.15
阅读全文 »

使用squidclient mgr:ipcache命令查看Squid的DNS缓存记录
如果squid端口不是3128, 需要指定端口号, squidclient -p {port} mgr:ipcache

阅读全文 »