分类 "MySQL" 下的文章

问题:mysql使用docker部署,如果定时备份mysql里的数据库?

解决:使用脚本+crontab定时运行

方法:
vim mysql_backup.sh

#!/bin/bash

ENV_FILE="/opt/www/myproject/.env"

# 2. 加载 .env 文件中的变量
# 使用 set -a 导出所有变量,然后 source .env,最后 set +a 取消自动导出
set -a
source "$ENV_FILE"
set +a

# --- 配置部分 ---
# MySQL 容器的名称
CONTAINER_NAME="airborne-wifi-delivery-${APP_VERSION//./}-mysql-1"
# 宿主机上的备份文件存储目录
BACKUP_DIR="/opt/www/mysql_backups"
# 要备份的数据库名,使用 --all-databases 可备份所有库
DB_NAME="$DB_NAME"
# 备份文件前缀
BACKUP_FILE_PREFIX="backup"
# 保留最近 N 天的备份
RETENTION_DAYS=7

阅读全文

问题:ubuntu2404使用命令安装mysql8,默认root无密码,如何解决?

方法:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_password';
FLUSH PRIVILEGES;

拓展:

php7.2连接不上mysql8,也是这样解决

阅读全文

问题:按名称排序,如果名称是数字时,10比2排在前面

解决:order by 时name+1

方法:

select * from classes order by name+1 asc, id asc limit 0, 10;

注:增加“id asc”是因为防止order by和limit一起使用时出错排序错乱

阅读全文

问题:数据量大,分页查询时卡顿,如何解决?

解决:通过join方式,先查询主键,再查询内容

方法:

offset_num = (page - 1) * pagesize
sub_q = select(
    User.id).filter_by(**obj_get).order_by(
    User.id.asc()).offset(
    offset_num).limit(pagesize).subquery()
q = select(
    User.uid, User.username, User.fullname, User.national_id, User.phone, User.email,
    User.gender, User.last_login, User.status, User.create_time,
    User.expire_time).join(sub_q, User.id == sub_q.c.id)
r = await db.execute(q)
return r.all()

阅读全文