# Linux环境安装-MySQL运维 **Published by:** [Yeanuo](https://paragraph.com/@yeanuo/) **Published on:** 2023-10-27 **URL:** https://paragraph.com/@yeanuo/linux-mysql-2 ## Content 本文记录在MySQL安装成功后常用的配置修改存储路径默认数据文件保存在 /var/lib/mysql/ 下创建新存储目录 cd /home mkdir mysql_data停止mysql服务 systemctl stop mysqld.service迁移文件 cp -arp /var/lib/mysql /home/mysql_data/a 用于复制整个目录,包括目录中的子目录等都递归复制,而且还要保持文件的访问模式,所有者,时间戳等属性与原文件一样。-r 递归复制目录及其子目录内的所有内容-p 等于–preserve=模式,所有权,时间戳修改配置文件 vi /etc/my.cnfmysqld 节点将 datadir 及 socket 替换为新路径* *datadir=/home/mysql_data/mysql socket=/home/mysql_data/mysql/mysql.sockclient 节点(新增)socket=/home/mysql_data/mysql/mysql.socknew storage path启动服务 systemctl start mysqld.service systemctl status mysqld.servicestart success创建数据库mysql -p 登录mysql> create database db_demo;创建账号及授权默认的root账户不允许远程登录访问,也不推荐直接将root账号设置为允许远程登录访问创建用户名为 test,密码为 password 的账号 mysql> create user test identified by 'password';账号 test 授权给数据库 db_demo mysql> grant all privileges on db_demo.* to 'test';刷新权限 mysql> flush privileges;查看账号授权 show grants for 'test';修改max_allowed_packet默认为4M,在大批量写入时,不够用修改配置文件,在[mysqld]节点下增加配置*,*max_allowed_packet=100M vi /etc/my.cnfmax_allowed_packet重启mysql服务查看新参数 mysql -p mysql> show variables like '%max_allowed_packet%';new max_allowed_packet定期备份数据库创建shell脚本 cd /home/timing_jobs/ vi mysql_db_backup.sh#!/bin/bash #保存备份个数,备份3天数据 number=3 #备份保存路径 backup_dir=/home/mysqlbackup #日期 dd=`date +%Y%m%d%H%M%S` #备份工具 tool=mysqldump #将要备份的数据库 database_name=db_demo #如果文件夹不存在则创建 if [ ! -d $backup_dir ]; then mkdir -p $backup_dir; fi #备份 $tool --login-path=local $database_name > $backup_dir/$database_name-$dd.sql #压缩文件 cd $backup_dir tar -zcvf $database_name-$dd.sql.tar.gz $database_name-$dd.sql #删除备份文件 rm -rf $database_name-$dd.sql #写创建备份日志 echo "$(date "+%Y-%m-%d %H:%M:%S") create $backup_dir/$database_name-$dd.dupm" >> /home/timing_jobs/logs/db_backup.log #找出需要删除的备份 delfile=`ls -l -crt $backup_dir/db_demo-*.sql.tar.gz | awk '{print $9 }' | head -1` #判断现在的备份数量是否大于$number count=`ls -l -crt $backup_dir/db_demo-*.sql.tar.gz | awk '{print $9 }' | wc -l` if [ $count -gt $number ] then #删除最早生成的备份,只保留number数量的备份 rm $delfile #写删除文件日志 echo "$(date "+%Y-%m-%d %H:%M:%S") delete $delfile" >> /home/timing_jobs/logs/db_backup.log fi 脚本授权 chmod +x mysql_db_backup.sh添加定时任务 crontab -e 输入 30 22 * * * /home/timing_jobs/mysql_db_backup.sh >> /dev/null 2>&1 ## Publication Information - [Yeanuo](https://paragraph.com/@yeanuo/): Publication homepage - [All Posts](https://paragraph.com/@yeanuo/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@yeanuo): Subscribe to updates - [Twitter](https://twitter.com/JiemaoJob): Follow on Twitter