作者: kukey-admin

  • win系统安装MSYS2

    下载MSYS2

    官网https://www.msys2.org/

    安装MSYS2

    MSYS2命令行执行以下命令:

    更新 MSYS2 的包数据库并升级已安装的包

    pacman -Syu

    y

    安装基础的编译工具,包括 GCC 编译器

    pacman -S base-devel

    y

    pacman -S autoconf automake

    y

    pacman -Su autoconf

    y

    pacman -Su m4

    y

    pacman -Su automake

    y

    检查 make 是否已正确安装

    make –version

    安装 GCC 编译器

    pacman -S mingw-w64-x86_64-gcc

    检查 GCC 是否已安装

    ls /mingw64/bin/gcc

    如果这个命令返回了 GCC 的路径,那么 GCC 已经安装。

    查看 GCC 版本

    /mingw64/bin/gcc –version

    找到 GCC 安装的路径(通常是 /mingw64/bin),并将其添加到 PATH 环境变量

    export PATH=/mingw64/bin:$PATH

    • 在 MSYS2 中,关闭并重新打开终端窗口。
    • 或者,使用以下命令重新加载配置文件

    source ~/.bashrc

    再次检查 GCC

    which gcc或gcc –version

     

    编译 MinGW-w64

    进入MinGW-w64源码目录

    cd D:\mingw-w64-v11.0.0

    运行 ./configure 脚本来配置编译环境。你可以传递不同的参数来自定义配置,例如指定安装路径。默认情况下,它将配置为安装到 /mingw64

    ./configure或./configure –prefix=/mingw64

    使用 make 命令开始编译过程

    make

    需要一些时间,取决于你的系统性能

    编译完成后,使用 make install 命令来安装编译好的工具链到你之前指定的前缀路径

    make install

     

    现在你使用MSYS2终端编译了mingw-w64-v11.0.0,你可以去MSYS2的安装目录,找到mingw-w64-v11.0.0文件夹,把bin目录添加到win系统的环境变量里,就可以在任何地方使用mingw-w64了。

    以我的机器为例子:

    我的机器是win10系统,

    MSYS2安装路径一般是C盘根目录,

    使用./configure、make、make install编译mingw-w64-v11.0.0出来的路径就是C:\msys64\mingw64\bin,

    把这个路径加入到win10的环境变量即可。

    如何添加环境变量?

    Win+R组合键,输入SystemPropertiesAdvanced.exe,

    环境变量-系统变量-双击 Path-新建,

    粘贴C:\msys64\mingw64\bin,

    点击 确定。

     

     

    为了能够从任何命令行窗口调用 gccg++ld 等工具,你需要将 MinGW-w64 的 bin 目录添加到系统的 PATH 环境变量中。在 MSYS2 中,你可以编辑 /etc/fstab 文件来添加路径

    一旦 MinGW-w64 安装完成,你可以使用 gcc 编译任何 C 程序。例如,如果你有一个 hello.c 文件

    gcc -o hello.exe hello.c

    编译完成后,你可以直接运行生成的 .exe 文件

    ./hello.exe

    请注意,这个过程是在 MSYS2 环境中进行的,它提供了一个类 Unix 的命令行界面,让你能够在 Windows 上使用类似于 Unix/Linux 的命令和工具。如果你更喜欢图形界面的编译过程,或者不想使用 MSYS2,你可能需要考虑安装其他预编译的 MinGW-w64 版本或使用其他工具。

  • win自带的copy命令伪装文件

    copy/b file1.txt + file2.txt mergedfile.txt

  • py脚本打包py文件

    # 假设我们有一个非常小的Python脚本,我们想要将其转换为可执行文件
    # 首先,确保你的脚本是Python 2.7或Python 3.x兼容的
    
    # Python脚本内容(example_script.py):
    print("Hello, World!")
    
    # 使用PyInstaller将Python脚本转换为可执行文件
    # 安装PyInstaller:
    # pip install pyinstaller
    
    # 运行PyInstaller,创建一个单文件的可执行程序
    # 注意:--onefile选项会创建一个单文件的可执行程序
    pyinstaller_command = "pyinstaller --onefile 1.py"
    
    # 执行命令
    import subprocess
    subprocess.run(pyinstaller_command, shell=True)

     

  • 压缩exe python

    import subprocess
    # 使用UPX压缩生成的可执行文件
    upx_command = "upx -9 --force 1.exe"  # -9 是最高压缩率
    subprocess.run(upx_command, shell=True)
    
    print("可执行文件已生成并压缩。")

    需要安装upx

    https://github.com/upx/upx/releases/

  • 代码发出声音 python

    import time
    import winsound
    
    # 设置频率和持续时间
    frequency = 37  # 频率,单位是Hz
    duration = 1000   # 持续时间,单位是毫秒
    
    # 发出声音
    winsound.Beep(frequency, duration)
    
    # 如果您想连续发出声音,可以使用循环
    try:
        while True:
            winsound.Beep(frequency, duration)
            time.sleep(1)  # 暂停一秒
    except KeyboardInterrupt:
        # 允许使用Ctrl+C中断循环
        print("声音停止")

    修改频率可得到不同的声音,

    频率的最大值是:37Hz

    最小值是32767Hz

    import winsound
    import time
    
    # 定义每个音符的频率(以Hz为单位)和持续时间(毫秒)
    notes = {
        'C4': 261.63,
        'D4': 293.66,
        'E4': 329.63,
        'F4': 349.23,
        'G4': 392.00,
        'A4': 440.00,
        'B4': 493.88,
        'C5': 523.25
    }
    
    # 音符持续时间(毫秒)
    duration = 500
    
    # 四分音符的频率值,转换为整数
    note_frequencies = {note: int(frequency) for note, frequency in notes.items()}
    
    # 一个简化的主旋律,用音符名称表示
    melody = [
        'C4', 'E4', 'G4', 'C5',
        'B4', 'A4', 'G4', 'F4',
        'E4', 'D4', 'C4',
        'A4', 'G4', 'F4', 'E4'
    ]
    
    # 演奏旋律
    for note in melody:
        frequency = note_frequencies[note]
        winsound.Beep(frequency, duration)  # 发出音符
        time.sleep(duration / 1000.0)  # 等待音符结束
    
    # 等待旋律结束后再退出
    time.sleep(2)

    import winsound
    import time
    
    # 定义每个音符的频率(以Hz为单位)和持续时间(毫秒)
    notes = [
        {"frequency": 262, "duration": 500},  # C5
        {"frequency": 294, "duration": 500},  # D5
        {"frequency": 330, "duration": 500},  # E5
        {"frequency": 349, "duration": 1500}, # F5 (held longer)
        {"frequency": 392, "duration": 500},  # G5
        {"frequency": 440, "duration": 500},  # A5
        {"frequency": 494, "duration": 500}   # B5
    ]
    
    # 定义休止符(无声)
    rest = {"frequency": 0, "duration": 500}
    
    # 旋律序列,每个元素是一个索引到notes列表
    melody = [0, 1, 2, 3, 2, 1, 0, 2, 3, 2, 1, 0, 0, 2, 2, 1, 0]
    
    # 演奏旋律
    for note_index in melody:
        if note_index != -1:
            note = notes[note_index]
            winsound.Beep(note["frequency"], note["duration"])
        else:
            time.sleep(rest["duration"] / 1000.0)  # 休息片刻
    
        # 等待每个音符结束后再继续
        time.sleep(0.5)  # 等待半秒钟

     

  • win系统的任务计划程序使用

    若启动python脚本

    不管用户是否登录都要运行,

    不存储密码

    触发器

    在系统启动时,高级设置-延迟任务时间-1分钟

    操作-程序或脚本填写

    python

    添加参数:主程序.py

    起始于:

    E:\code\flask\视频网站\

    条件:

    因为本程序不需要联网,也无其他要求,因此都不勾选

    设置:

    允许按需运行任务

    如果请求后任务还在运行,强行将其停止(F)

     

     

     

  • mysql数据库主从配置

    我的主库ip:192.168.10.7
    我的主库ip:192.168.10.11

    主从的server_id不一致即可,只要你知道哪个是主库,哪个是从库就行
    主库my.ini配置mysqld里面增加:

    [mysqld]
    server_id=1
    log_bin=mysql-bin

    从库my.ini配置mysqld里面增加:

     

    [mysqld]
    server_id=2
    log_bin=mysql-bin

    主库创建用户:

    GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
    

    给这个用户分配能够复制的权限:

    GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';

     

    主库查询2个字段File和Position:

     

    SHOW MASTER STATUS;

     

     File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +------------------+----------+--------------+------------------+-------------------+
    | mysql-bin.000002 |     1042 |              |                  |                   |

    从库进入mysql设置主库的信息,执行以下命令:

    change master to
    master_host='192.168.10.7',
    master_user='repl',
    master_password='123456',
    master_port=3306,
    master_log_file='mysql-bin.000002', 
    master_log_pos=1042;

    从库开启同步:

    slave start;

    验证:

    现在去主库里创建一个数据库,就会发现从库也创建了一个数据库了.

  • ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061)

    如果这个报错,没别的办法,只有先把mysql弄成一个服务启动了就行了.

  • phpstudy里面的mysql复制到另一个机器上运行报错

    停止mysql服务,

    压缩整个mysql,

    复制到另一台机器上,

    如果想要保存数据的话,把data文件夹里除了文件夹其他的东西能删掉的都删掉.

    然后到bin目录下进cmd,还能用以前的数据库账号和密码登录.

    若不想保留数据的话,重新初始化mysql.如何初始化百度一下

  • 取消提示:mysql: [Warning] Using a password on the command line interface can be insecure.

    目前使用的方法

    mysql路径 mysql用户账号密码配置文件的路径
    示例:
    E:\application\phpstudy_pro\Extensions\MySQL5.7.26\bin\mysql.exe --defaults-file="E:\application\phpstudy_pro\Extensions\MySQL5.7.26\my.cnf"

    my.cnf里面这样写

    [client]
    user=root
    password=123456

     

     

    在cmd里直接设置一个mysql密码的环境变量 MYSQL_PWD后面是你的数据库的密码

    set MYSQL_PWD=123456

    然后直接在cmd里输入用户名即可,例如

    mysql -u root

    若是想要弄一个bat脚本的话,你需要这样写:

    @echo off
    set MYSQL_PWD=123456
    start cmd /k "E:\application\phpstudy_pro\Extensions\MySQL5.7.26\bin\mysql.exe -u root -h 127.0.0.1"