Mysql快速导出命令

命令模板 {mysqldump_bin} --opt --hex-blob --skip-lock-tables --single-transaction --routines --events --skip-triggers --default-character-set='{db_charset}' --force --host='{db_host}' --port={db_port} --user='{db_user}' --password='{db_password}' '{db_name}'参数说明{mysqldump_bin} # mysqldump 可执行文件路径(比如 /usr/bin/mysqldump) --opt # 相当于开启一系列优化选项(--add-drop-table、--add-locks、--create-options、--quick 等) --hex-blob # 将二进制字段(BLOB)以十六进制导出,防止乱码 --skip-lock-tables # 不锁表(避免阻塞其他查询) --single-transaction # 使用单事务导出(对 InnoDB 无锁且一致性好) --routines # 导出存储过程和函数 --events # 导出事件调度器(EVENT) --skip-triggers # 不导出触发器 --default-character-set='{db_charset}' # 指定字符集,例如 utf8mb4 --force # 出错也继续执行 --host='{db_host}' # 数据库地址 --port={db_port} # 数据库端口 --user='{db_user}' # 用户名 --password='{db_password}' # 密码 '{db_name}' # 要导出的数据库名使用示例 导出一个名为 mydb 的数据库,MySQL 在本机 3306 端口,字符集 utf8mb4,用户是 root 密码 123456: mysqldump --opt --hex-blob --skip-lock-tables --single-transaction --routines --events --skip-triggers \ --default-character-set='utf8mb4' --force \ --host='127.0.0.1' --port=3306 --user='root' --password='123456' 'mydb' > mydb.sql

Linux 上用 vsftpd 搭 FTP:本地用户 + 被动模式 + 防火墙

Linux 上搭 FTP 最常用 vsftpd(Very Secure FTP Daemon)——轻量、稳定、配置简单。但先说前提:FTP 是明文协议,2024 年再上生产环境只推荐 SFTP 或 FTPS。搭 FTP 通常是维护老系统 / 内网数据交换用。 安装 Ubuntu / Debian: sudo apt update sudo apt install vsftpdCentOS / Rocky: sudo yum install vsftpd启动: sudo systemctl enable --now vsftpd sudo systemctl status vsftpd关键配置 编辑 /etc/vsftpd.conf: # 禁用匿名(生产必须) anonymous_enable=NO# 允许本地用户登录 local_enable=YES# 允许写入 write_enable=YES# 限制用户只能在自己家目录 chroot_local_user=YES allow_writeable_chroot=YES# 被动模式端口范围(关键) pasv_enable=YES pasv_min_port=30000 pasv_max_port=31000# UTF-8 文件名 utf8_filesystem=YES# 日志 xferlog_enable=YES xferlog_file=/var/log/vsftpd.log# 默认监听 21,可改 listen_port=21改完重启: sudo systemctl restart vsftpd为什么需要被动模式端口范围 FTP 协议有两种模式:主动模式(Active):客户端告诉服务器"你连回我的 xxx 端口"——服务器主动发起数据连接。大多数客户端在 NAT 后面,这条路走不通 被动模式(Passive):服务器打开一个端口告诉客户端"你连过来"——现代默认被动模式服务器需要有一段可用端口范围(例子里是 30000-31000)。防火墙必须放行这段: sudo ufw allow 21/tcp sudo ufw allow 20/tcp # 主动模式(可选) sudo ufw allow 30000:31000/tcp sudo ufw reload云服务器(阿里云、腾讯云、AWS)安全组里也要放行这段。经常有人本地防火墙开了、云安全组没开,一样连不上。 创建 FTP 用户 方式 1:普通本地用户 sudo adduser ftpuser sudo passwd ftpuser# 家目录权限 sudo mkdir -p /home/ftpuser/ftp sudo chown -R ftpuser:ftpuser /home/ftpuser/ftp sudo chmod 755 /home/ftpuser方式 2:不允许 shell 登录(更安全) sudo adduser --shell /usr/sbin/nologin ftpuser然后 /etc/shells 里加: /usr/sbin/nologin不然 vsftpd 会拒绝这类用户。 SELinux(CentOS / RHEL) sudo setsebool -P ftp_home_dir on sudo setsebool -P ftpd_full_access on不开 SELinux 布尔值就是"连上能列表、能创建但一写文件就 550"的经典状态。 测试 本机测: ftp -p localhost # -p 强制被动模式或者用现代客户端 lftp: lftp -u ftpuser,PASSWORD ftp://localhost > ls > put test.txt > bye外部测: lftp -u ftpuser,PASSWORD ftp://<服务器 IP>加 TLS 变 FTPS(推荐) 明文 FTP 密码在网上裸奔。加 TLS: # /etc/vsftpd.conf ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YESssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO require_ssl_reuse=NO ssl_ciphers=HIGHrsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem生成自签证书: sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout /etc/ssl/private/vsftpd.pem \ -out /etc/ssl/private/vsftpd.pem \ -subj "/C=CN/O=Local/CN=ftp.example.com" sudo chmod 600 /etc/ssl/private/vsftpd.pem客户端连 FTPS(FileZilla 里选"要求显式的 FTP over TLS")。 真正推荐:SFTP 其实根本不用装 vsftpd。Linux 只要装了 OpenSSH(99% 服务器都有),就自带 SFTP。 创建 chroot 用户: sudo useradd --shell /usr/sbin/nologin sftpuser sudo passwd sftpuser sudo mkdir -p /home/sftpuser/upload sudo chown root:root /home/sftpuser sudo chown sftpuser:sftpuser /home/sftpuser/upload/etc/ssh/sshd_config 末尾加: Match User sftpuser ChrootDirectory /home/sftpuser ForceCommand internal-sftp AllowTcpForwarding no重启 sshd: sudo systemctl restart sshd客户端用 FileZilla / WinSCP 选 SFTP 就能连——端口 22、加密传输、和 SSH 走一起、防火墙就一个端口。 没有特殊需求,SFTP 优先,FTP 一律不推荐。 一句话总结 vsftpd 搭 FTP 的关键:本地用户 + 被动模式端口范围 + 防火墙放行。生产环境别用明文 FTP,改 SFTP 或者 FTPS。

Centos7升级Gcc

前言 之前讲过一次关于Centos7的GCC版本的升级,这里,主要使用源码对GCC进行升级,即在安装完成后不用再切换GCC环境。 1. 切换到root属性 su yum -y install wget2. 下载GCC源码 以下命令会放在 usr/local/ 下面 wget http://ftp.gnu.org/gnu/gcc/gcc-4.9.2/gcc-4.9.2.tar.gz3. 解压压缩包 cd /usr/local/ tar -zxvf gcc-4.9.2.tar.gz4. 下载编译安装的依赖包 4.1 假设有网的时候 cd gcc-4.9.2 ./contrib/download_prerequisites4.2 假设没网的情况下 如果Linux没有网络连接,则用Windows上网下载这几个包:ftp://ftp.gnu.org/gnu/gmp/gmp-4.3.2.tar.bz2 http://www.mpfr.org/mpfr-2.4.2/mpfr-2.4.2.tar.bz2 http://www.multiprecision.org/mpc/download/mpc-0.8.1.tar.gz然后解压并移动到gcc-4.9.2下面: tar -xjf gmp-4.3.2.tar.bz2 tar -xjf mpfr-2.4.2.tar.bz2 tar -xzf mpc-0.8.1.tar.gz mv gmp-4.3.2 gcc-4.9.2/gmp mv mpfr-2.4.2 gcc-4.9.2/mpfr mv mpc-0.8.1 gcc-4.9.2/mpc5. 编译安装GCC yum install -y gcc-c++ glibc-static gcc ./configure --prefix=/usr/local/gcc --enable-bootstrap --enable-checking=release --enable-languages=c,c++ --disable-multilib make make install编译参数说明--prefix=/usr/local/ 指定安装路径 --enable-bootstrap 用第一次编译生成的程序进行第二次编译 --enable-checking=release 以软件发布版的标准来对编译时生成的代码进行一致性检查 --enable-languages=c,c++ 支持的高级语言类型和运行时库 --disable-multilib 如果你的操作系统是64位,要禁止生成32位代码配置环境变量 1. 查看当前gcc版本 gcc -v # gcc (GCC) 4.8.5 20120313 (Red Hat 4.8.5-16)2. 编写环境变量的路径 vim /etc/profile.d/gcc.sh # 输入:export PATH=/usr/local/gcc/bin:$PATH3. 激活环境变量 source /etc/profile.d/gcc.sh gcc -v # gcc (GCC) 4.9.2导出头文件 ln -sv /usr/local/gcc/include/ /usr/include/gcc导出库文件 vim /etc/ld.so.conf.d/gcc.conf # 添加:/usr/local/gcc/lib64 ldconfig -v ldconfig -p |grep gcc注意事项 如果您的程序之前跑的是一个gcc >= 4.9.2的环境,可以通过以下命令切换: source /opt/rh/devtoolset-7/enable # 或 source scl_source enable devtoolset-7

Uniapp+tailwindcss+uview start

Uniapp+tailwindcss+uview start

官方资源 官网:https://weapp-tw.icebreaker.top/模板项目 Vue2模板 https://github.com/sonofmagic/uni-app-vue2-tailwind-vscode-template Vue3模板 https://github.com/sonofmagic/uni-app-vite-vue3-tailwind-vscode-template

AES加密CBC模式没有iv也可以解密

AES加密CBC模式没有iv也可以解密

问题分析首先看请求,发现密码被加密了跟一下代码,发现是AES加密CBC模式,向服务器发送了密文,key存在session里头,发现iv没有只要有key的话iv随机只会影响前面64位的结果,可以发现生成了64位随机数结论 在AES加密CBC模式中,如果没有IV(初始化向量),只要拥有密钥(key),仍然可以解密数据。IV的作用是确保相同的明文在不同加密过程中产生不同的密文,但在没有IV的情况下,解密时使用全零的IV即可。