Linux系统之MySQL数据库服务练习

  • 1. 完成rocky下部署mysql和ubuntu下部署mariadb,总结过程

  • Rocky10 系列光盘镜像自带 mysql-server 8.0 和 mariadb-server 10.3

  • 挂载镜像

  • mount /dev/cdrom /opt

  • 查看数据库软件

  • ls /opt/AppStream/Packages/m/mysqlser

  • yum list "mysql*"

  • 服务状态

  • systemctl status mysqld.service

  • 启动服务

  • systemctl enable --now mysqld.service

  • 查看监听端口,默认3306,33060 是8.0版本中的特性

  • ss -tnlp | grep mysql

  • Ubuntu24 安装mariadb

  • 查看最新软件

  • apt list mariadb-server -a

  • 安装 mysql-server,会自动安装客户端包【安装客户端不会安装服务端软件】

  • apt install mariadb-server -y

  • 查看服务运行状态

  • systemctl status mariadb

  • 2.完成数据表的创建,修改,移除等基本练习

  • 查看数据表

  • show tables

  • 创建表

  • CREATE TABLE student

  • 表结构

  • CREATE TABLE student (

  • id int UNSIGNED AUTO_INCREMENT PRIMARY KEY,

  • name VARCHAR(20) NOT NULL,

  • age tinyint UNSIGNED,

  • height DECIMAL(5,2),

  • gender ENUM('M','F') default 'M'

  • )ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4;

  • 添加主键

  • ALTER TABLE student ADD COLUMN id INT UNSIGNED FIRST;

  • 修改表明

  • ALTER TABLE student RENAME stu

  • 删除字段

  • ALTER TABLE stu DROP COLUMN gender;

  • 删除表

  • drop table stu

  • 3.完成数据库数据增删改查基本练习和数据查询分组,去重等练习

  • 增删改查练习

  • insert stu (name,age) values('xiaoming',20);

  • drop table xxx

  • update stu set teacher_id=1 where id in (1,3,8,9);

  • select name age from stu where id=2;

  • 数据查询分组,去重

  • SELECT age, COUNT(*) FROM stu GROUP BY age;

  • 4.完成mysql用户管理增删改查,赋权,密码增删改查等练习

  • create user test2@'10.0.0.%' identified by '123456';

  • select Host,User from mysql.user where User='test';

  • RENAME USER test@'10.0.0.%' TO test3@'10.0.0.%';

  • DROP USER test3@'10.0.0.%';

  • 5.完成二进制日志的练习,事务操作,内容查看,模式修改

  • 环境查看二进制日志

  • show variables like "%log_bin%";

  • 修改配置文件

  • vim /etc/mysql/mariadb.conf.d/50-server.cnf

  • log_bin=on

  • systemctl restart mariadb

  • 定制二进制存储

  • mkdir /data/mysql/logs/ -p

  • chown mysql:mysql -R /data/mysql/logs

  • vim /etc/mysql/mariadb.conf.d/50-server.cnf

  • log_bin=data/mysql/logs/binlog

  • 重启终端测试数据库

  • 查看二进制文件

  • ll /data/mysql/logs/binlog.*

  • mysqlbinlog查看二进制日志具体内容

  • mysqlbinlog --start-position=起始位置 --stop-position=结束位置 data/mysql/logs/binlog*

  • 修改为ROW模式

  • vim /etc/mysql/mariadb.conf.d/50-server.cnf

  • [mariadbd]

  • binlog_format=row # 增加属性

  • log_bin=/data/mysql/logs/binlog

  • 重启服务,确认效果

  • select @@binlog_format;

  • 6.使用crontab和mysqldump完成每一个小时完成一次数据库备份,并且完成一次数据恢复

  • !/bin/bash

  • 数据库配置

  • DB_USER="root" # MySQL用户名

  • DB_PASS="你的密码" # MySQL密码

  • DB_NAME="你的库名" # 要备份的数据库名

  • BACKUP_DIR="/data/backup/mysql" # 备份目录

  • 备份文件名(带时间)

  • DATE=$(date +%Y-%m-%d_%H-%M-%S)

  • BACKUP_FILE="$BACKUP_DIR/${DB_NAME}_$DATE.sql.gz"

  • 执行备份(自动压缩)

  • mysqldump -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BACKUP_FILE

  • 删除7天前的旧备份(防止占满磁盘)

  • find $BACKUP_DIR -name "*.sql.gz" -mtime +7 -delete

  • crontab -e

  • 0 * * * * /data/backup/mysql_backup.sh

  • 看日志tail -f /var/log/cron

posted @ 2026-05-31 22:35  kevin-579  阅读(15)  评论(0)    收藏  举报