hj_2025_0812
centos9 stream 阿里服务器安装 MySQL8.0.43
#!/bin/bash set -e MYSQL_PORT=3309 MYSQL_ROOT_PASS='Hj4726e5b224486d2d93e019ea9f34c9Jens?!' MYSQL_DATA_DIR="/var/lib/mysql" echo "1. 卸载老旧MySQL和MariaDB" yum remove -y mysql* mariadb* || true echo "2. 清理数据目录和日志(谨慎,确保备份)" rm -rf ${MYSQL_DATA_DIR}/* rm -f /var/log/mysqld.log || true echo "3. 导入GPG Key" rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023 echo "4. 安装MySQL官方repo" yum install -y https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm echo "5. 清理yum缓存" yum clean all echo "6. 安装MySQL-server" yum install -y mysql-community-server echo "7. 修改MySQL配置文件" cat >/etc/my.cnf <<EOF [mysqld] port=${MYSQL_PORT} basedir=/usr datadir=${MYSQL_DATA_DIR} socket=/var/lib/mysql/mysql.sock user=mysql symbolic-links=0 skip-name-resolve bind-address=0.0.0.0 character-set-server=utf8mb4 collation-server=utf8mb4_general_ci init_connect='SET NAMES utf8mb4' default-storage-engine=INNODB innodb_file_per_table=1 innodb_default_row_format=DYNAMIC max_connections=64 EOF echo "8. 初始化MySQL数据目录" mysqld --initialize-insecure --user=mysql --datadir=${MYSQL_DATA_DIR} echo "9. 启动MySQL服务" systemctl enable mysqld systemctl start mysqld echo "10. 等待MySQL启动" sleep 10 echo "11. 设置root密码和远程访问权限" mysql -uroot <<EOF ALTER USER 'root'@'localhost' IDENTIFIED BY '${MYSQL_ROOT_PASS}'; CREATE USER IF NOT EXISTS 'root'@'%' IDENTIFIED BY '${MYSQL_ROOT_PASS}'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; EOF echo "12. 开放防火墙端口${MYSQL_PORT}" if systemctl is-active firewalld &>/dev/null; then firewall-cmd --permanent --add-port=${MYSQL_PORT}/tcp firewall-cmd --reload else echo "防火墙未运行,跳过开放端口" fi echo "13. 重启MySQL服务应用配置" systemctl restart mysqld echo "=== MySQL安装完成 ===" echo "端口:${MYSQL_PORT}" echo "root密码:${MYSQL_ROOT_PASS}" echo "字符集:utf8mb4" echo "排序规则:utf8mb4_general_ci" echo "最大连接数:64"
#!/bin/bash set -e MYSQL_PORT=3309 MYSQL_DATA_DIR="/var/lib/mysql" MYSQL_LOG_FILE="/var/log/mysqld.log" echo "1. 停止MySQL服务" systemctl stop mysqld || true systemctl disable mysqld || true echo "2. 卸载MySQL相关软件包" yum remove -y mysql-community-server mysql-community-client mysql-community-common mysql-community-libs mysql-community-client-plugins || true echo "3. 删除MySQL数据目录" rm -rf ${MYSQL_DATA_DIR} || true echo "4. 删除MySQL日志文件" rm -f ${MYSQL_LOG_FILE} || true echo "5. 删除MySQL配置文件" rm -f /etc/my.cnf rm -rf /etc/my.cnf.d || true echo "6. 删除MySQL官方仓库" yum remove -y mysql80-community-release || true echo "7. 清理yum缓存" yum clean all echo "8. 移除防火墙开放的3309端口" if systemctl is-active firewalld &>/dev/null; then firewall-cmd --permanent --remove-port=${MYSQL_PORT}/tcp || true firewall-cmd --reload else echo "防火墙未运行,跳过端口关闭" fi echo "=== MySQL彻底卸载完成 ==="
-- 授权执行,或者777 chmod +x mysql_install.sh sudo ./mysql_install.sh chmod +x mysql_uninstall.sh sudo ./mysql_uninstall.sh -- 查看版本 mysql --version -- 运行状态 systemctl status mysqld -- 启动服务 systemctl start mysqld -- 停止服务 systemctl stop mysqld -- 重启服务 systemctl restart mysqld
#!/bin/bash # 备份配置 BACKUP_DIR="/etc/lsy_mysql" DB_NAME="alitemp" MYSQL_USER="root" MYSQL_PASS="Hj4726e5b224486d2d93e019ea9f34c9Jens?!" DATE=$(date +'%Y%m%d_%H%M%S') BACKUP_FILE="${BACKUP_DIR}/${DB_NAME}_backup_${DATE}.sql.gz" # 创建备份目录(如果不存在) mkdir -p "$BACKUP_DIR" # 导出数据库并压缩 mysqldump -u${MYSQL_USER} -p${MYSQL_PASS} ${DB_NAME} | gzip > "${BACKUP_FILE}" # 可选:删除7天前的备份文件(保持最近7天备份) find "$BACKUP_DIR" -name "${DB_NAME}_backup_*.sql.gz" -type f -mtime +7 -exec rm -f {} \;
-- 授权执行 chmod +x /etc/lsy_mysql/backup_alitemp.sh -- 查看定时任务 crontab -l -- 修改定时任务 crontab -e -- 添加一行 30 3 * * * /etc/lsy_mysql/backup_alitemp.sh -- 每天凌晨3点30分执行一次这个脚本 over -- 手动跑脚本验证 /etc/lsy_mysql/backup_alitemp.sh alitemp_backup_20250812_030000.sql.gz
[ec2-user@ip-10-0-13-1 ~]$ sudo passwd root 更改用户 root 的密码 。 新的 密码: 重新输入新的 密码: passwd:所有的身份验证令牌已经成功更新。 [ec2-user@ip-10-0-13-1 ~]$ vi /etc/ssh/sshd_config [ec2-user@ip-10-0-13-1 ~]$ # 这个会没有权限修改,所以要切root用户再修改su rootvi /etc/ssh/sshd_config修改如下:PermitRootLogin yes #原来是注释掉的PasswordAuthentication yes # 原来默认是 no [root@ip-10-0-13-1 ec2-user]# vi /etc/ssh/sshd_config [root@ip-10-0-13-1 ec2-user]# sudo service sshd restartRedirecting to /bin/systemctl restart sshd.service[root@ip-10-0-13-1 ec2-user]# 然后就可以密码登录了 然后安装个docker吧~ [root@ip-10-0-13-1 ~]# yum install docker y [root@ip-10-0-13-1 ~]# systemctl restart docker[root@ip-10-0-13-1 ~]# systemctl status docker.service● docker.service - Docker Application Container Engine ...
// 第一种. docker运行 用.sh脚本 创建 jens_01mysql.sh #!/bin/bash # 一键安装 MySQL 9.4 (Docker 版),默认字符集 utf8mb4 MYSQL_VERSION=9.4 MYSQL_PORT=3311 MYSQL_ROOT_PASSWORD="Jens20250826001hjIsOk" MYSQL_DATA_DIR="/home/jens/mysql" # 创建数据目录 mkdir -p ${MYSQL_DATA_DIR} chmod -R 777 ${MYSQL_DATA_DIR} # 停掉并删除可能已有的容器 docker stop mysql9.4 >/dev/null 2>&1 docker rm mysql9.4 >/dev/null 2>&1 # 拉取镜像 echo "正在拉取 MySQL ${MYSQL_VERSION} 镜像..." docker pull mysql:${MYSQL_VERSION} # 启动容器 echo "正在启动 MySQL 容器..." docker run -d \ --name mysql9.4 \ -p ${MYSQL_PORT}:3306 \ -e MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} \ -v ${MYSQL_DATA_DIR}:/var/lib/mysql \ mysql:${MYSQL_VERSION} \ --character-set-server=utf8mb4 \ --collation-server=utf8mb4_general_ci # 检查运行状态 sleep 3 docker ps | grep mysql9.4 && echo "✅ MySQL ${MYSQL_VERSION} 已经启动成功,端口 ${MYSQL_PORT}" || echo "❌ MySQL 启动失败" 运行脚本即可; 第二种, 用 docker compose 来启动 创建 jens_02mysql.yml 文件 version: "3.8" services: mysql9.4: image: mysql:9.4 container_name: mysql9.4 restart: always ports: - "3311:3306" environment: MYSQL_ROOT_PASSWORD: "Jens20250826001hjIsOk" command: --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci volumes: - /home/jens/mysql:/var/lib/mysql 运行 docker-compose -f jens_02mysql.yml up -d 因为文件名不是默认的docker-compose.yml 所以要 -f指令文件名

浙公网安备 33010602011771号