linux安装MySQL5.7(安装、开机自启、定时备份)

一、安装步骤

我喜欢安装在/usr/local/mysql目录下

#切换目录
cd /usr/local/
#下载文件
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
#解压文件
tar -zxvf mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz -C /usr/local
#删除压缩包 
rm -rf mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
#文件改名
mv mysql-5.7.38-linux-glibc2.12-x86_64 mysql

-------创建mysql用户组 一定按照如下要求来安装!!!-----------
# 创建MySQL用户组 
groupadd mysql
# 添加MySQL用户并添加到MySQL用户组
useradd -r -g mysql mysql

-------创建数据目录-----------

cd /usr/local/mysql 
mkdir data
#赋予权限
chown mysql:mysql -R /usr/local/mysql/data/

配置mysql的配置文件

#增加配置文件
vim /etc/my.cnf
#内容如下

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4

mysql初始化

./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --initialize


–defaults-file:默认配置文件地址
–datadir:mysql存储数据目录 按照实际地址来!!!!!!!!!
–basedir:mysql安装目录 按照实际地址来!!!!!!!!!!
–user:mysql用户

请牢记返回的默认密码

启动服务

/usr/local/mysql/support-files/mysql.server start

启动成功截图

# 设置密码
SET PASSWORD = PASSWORD('ok');
# 设置用户的访问密码用不过期
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
#刷新权限
FLUSH PRIVILEGES;

#开启可以远程登录
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码';
#刷新权限
FLUSH PRIVILEGES;

开启端口白名单

# 开启端口3306
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 重启防火墙
firewall-cmd --reload
# 查看已经开放的端口
firewall-cmd --list-ports

配置环境变量

如果不配置我们需要去bin目录下执行mysql 主要方便连接使用和操作

#将MySQL设置为命令
export PATH=/opt/lampp/bin:$PATH
source /etc/profile

导入文件出现的问题

the table is full

根据网上的教程,在my.cnf文件夹增加如下配置,重启mysql后并未生效

tmp_table_size = 1024M
max_heap_table_size = 1024M

通过命令尝试查看mysql版本号,想去搜索一下是否是版本问题,发现提示配置文件内容错误

我也只是草率看网上直接复制到最后面[client]就完事了,实际我们在粘贴中需要追加到[mysqld]下方。

2. 设置mysql开机自启动

方案一 将mysql交给systemctl来管理

#创建文件

vi /etc/systemd/system/mysqld.service

#文件内容

[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=https://dev.mysql.com/doc/refman/8.0/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql
Type=simple
TimeoutSec=0
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf $MYSQLD_OPTS
# EnvironmentFile=/etc/sysconfig/mysql
LimitNOFILE=65535
Restart=on-failure
RestartPreventExitStatus=1
Environment=MYSQLD_PARENT_PID=1
PrivateTmp=false
 

执行命令

加载 systemctl文件

systemctl daemon-reload
启动 MySQL

systemctl start mysqld
关闭Mysql

systemctl stop mysqld

重启mysql

systemctl restart mysqld

设置开机自启

systemctl enable mysqld
 

方案二 创建启动脚本

#在/etc/rc.d/init.d/编辑一个新文件autostartmysql.sh
cd /etc/rc.d/init.d/


vim ./autostartmysql.sh


#文件内容

#!/bin/sh
# chkconfig: 2345 10 90
# description: myservice...
/usr/local/mysql/support-files/mysql.server start

#为autostartmysql.sh赋予权限
chmod +x ./autostartmysql.sh
#将autostartmysql.sh添加到 chkconfig 中
chkconfig --add ./autostartmysql.sh 
chkconfig autostartmysql.sh on
#查看是否添加成功
chkconfig --list

看到3、4、5状态为开或者为 on 则表示成功。如果是 关或者 off 则执行一下

chkconfig --level 345 autostartmysql.sh on

#删除开启自启任务
chkconfig --del

3.Mysql每晚定时备份

准备备份脚本

vim  /usr/local/mysql/backupdb.sh

#!/bin/bash
#备份路径
BACKUP=/home/mysql-bak/ae
#当前时间
DATETIME=$(date +%Y-%m-%d)
LOG_FILE=/usr/local/mysql/bak-sh/logs/ae/$DATETIME".log"
echo "===备份开始:$(date +"%Y-%m-%d %H:%M:%S")===" | tee -a ${LOG_FILE}
 
#数据库名称
DATABASE=ae
#数据库地址
HOST=127.0.0.1
#数据库用户名
DB_USER=root
#数据库密码
DB_PW=root
#创建备份目录
[ ! -d "${BACKUP}/$DATETIME" ] && mkdir -p "${BACKUP}/$DATETIME"
[ ! -d "${LOG_FILE}" ] && touch "${LOG_FILE}"
echo "备份文件存放于${BACKUP}/$DATABASE-$DATETIME.sql" | tee -a ${LOG_FILE}
#开始备份
echo "===备份文件开始===" | tee -a ${LOG_FILE}
mysqldump --verbose  -h localhost  -u${DB_USER} -p${DB_PW}  ${DATABASE} >${BACKUP}/$DATETIME/$DATABASE-$DATETIME.sql 2>> $LOG_FILE
echo "===备份文件结束===" | tee -a ${LOG_FILE}
#压缩成tar.gz包
cd $BACKUP
tar -zcvf $DATETIME.tar.gz $DATETIME
#备份到服务器B
#scp $DATABASE-$DATETIME.sql root@ip:/home/mysqlBackup
#删除备份目录
rm -rf ${BACKUP}/$DATETIME
#删除10天(不含)前备份的数据,这边可以自行更改
find $BACKUP -mtime +10 -name "*.tar.gz" -exec rm -rf {} \;
echo "===数据库备份到服务器成功==="

创建定时任务

#添加任务
crontab -e
#添加指令 下方是每晚一点执行
00 01 * * * /bin/sh /usr/local/mysql/backupdb.sh

出现的问题

  • mysqldump命令找不到

/usr/local/mysql/bak-sh/ae-bak.sh:行23: mysqldump: 未找到命令。

解决方案1:

在配置文件中将mysqldump命令改为绝对路径。

whereis mysqldump   命令搜索

解决方案2:

#添加指令 下方是每晚一点执行 增加source /etc/profile

00 01 * * * source /etc/profile && /bin/sh /usr/local/mysql/bak-sh/ae-bak.sh

#查看定时任务执行日志

cat   /var/log/cron

#查看定时任务执行中打印的日志
cat /var/spool/mail/root

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/315966.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【电路电子学】7天速通攻略+笔记

7天是 看视频记笔记刷题的总时长,时间紧迫的同学可以看情况进行缩减。个人认为做题,尤其是解析齐全的题最重要! 我校所用教材 《电路与电子学基础》唐胜安 复习总流程 所用材料(都可自行找到免费资源) 视频知识点讲…

机器人持续学习基准LIBERO系列5——获取显示深度图

0.前置 机器人持续学习基准LIBERO系列1——基本介绍与安装测试机器人持续学习基准LIBERO系列2——路径与基准基本信息机器人持续学习基准LIBERO系列3——相机画面可视化及单步移动更新机器人持续学习基准LIBERO系列4——robosuite最基本demo 1.更改环境设置 LIBERO-master/l…

【降龙算法】基于QT插件机制实现一个机器视觉算法小框架

机器视觉行业有各种各样的拖拉拽框架,也叫做低代码平台,例如国内海康的VisionMaster: 一个机器视觉框架需要包含各种算法模块,日志窗口,图像显示窗口等等,【降龙算法】就是做了一个入门级的机器视觉算法框…

Java入门IDEA基础语法

1:Java入门 1.1 Java简介 Java是什么: Java是一门非常优秀的计算机语言 语言:人与人交流沟通的表达方式 计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言 Java之父:詹姆斯高斯林(James Gosli…

如何利用RPA做UI自动化测试对传统自动化的降维打击

写在前面 RPA软件一开始的目的并不是自动化测试,而是要把电脑上面几十个、上百个常用的软件,通过机器人流程自动化来打通,通过一个软件来控制几十个、上百个软件。而这个过程,其实覆盖了软件自动化测试。 所谓降维打击&#xff0c…

伴鱼离线数仓建设案例

伴鱼数仓建设案例 伴鱼离线数仓建立,与伴鱼的业务一起快速发展,从一条业务线,到多条业务线。在演进的过程中,有很多总结和沉淀的内容。本篇文章主要介绍伴鱼离线数据仓库的发展历史,在发展过程中遇到的各种问题&#…

pytorch学习笔记(十)

一、损失函数 举个例子 比如说根据Loss提供的信息知道,解答题太弱了,需要多训练训练这个模块。 Loss作用:1.算实际输出和目标之间的差距 2.为我们更新输出提供一定的依据(反向传播) 看官方文档 每个输入输出相减取…

如何用ChatGPT写教案设计?以“沁园春雪”为例

1. 引言 随着人工智能技术的飞速发展,ChatGPT已成为教育领域的一大创新工具。ChatGPT不仅能够模拟人类对话,还可以帮助设计互动丰富、内容丰富的教案。本文将探索如何利用ChatGPT进行教案教学设计,特别是通过“沁园春雪”这一案例&#xff0…

智能路由器 端口映射 (UPnP) Padavan内网端口映射配置方法

新版本Padavan 4.4内核的端口映射配置和老版本的不太一样,因为新版本默认是启用的 UPnP端口映射, 同时默认使用的是 IGD UPnP自动端口映射, UPnP名词解释: UPnP通用即插即用,是一组协议的统称,是一种基于TCP/IP、UDP和HTTP的分布式、开放体系&#xff…

【C++】- 类和对象

类和对象③ 介绍运算符重载赋值运算符重载运算符重载 在学习C语言时,我们首先接触的就是变量,再深入学习,我们可以利用运算符对变量进行操作,当我们使用C编写程序时,经常会遇到一些需要对特殊的例如自定义数据类型进行…

Linux中PyTorch的安装教程

在安装PyTorch之前,我们需要确保已经安装了Python和pip。可以使用以下命令检查是否已经安装: python --version pip --version如果没有安装,可以使用以下命令安装: sudo apt-get update sudo apt-get install python3 sudo apt-…

NetApp E系列(E-Series)OEM产品介绍以及如何收集日志和保存配置信息

NetApp E系列是NetApp收购LSI存储后建立的一条新的产品线,由于LSI存储的历史悠久,所以这条产品线给NetApp带来了很多的OEM产品,可以说E系列是世界上OEM给最多公司的存储产品线也不为过,因为最早LSI的产品销售测率就是OEM&#xff…

手把手教你学会接口自动化系列九-封装调用之后的代码展示

接上篇: 手把手教你学会接口自动化系列八-将url写在配置文件中,封装调用-CSDN博客 下来把之前写的demo开始改造,将所有的url = http://192.168.0.134:8081的部分,替代了 如下: demo的改造 # !/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2023/05# @Author …

OpenCV-Python的版本介绍及区别

OpenCV-Python版本介绍 OpenCV-Python有多个版本,每个版本都有其特定的功能和改进。以下是一些常见OpenCV-Python版本及其介绍和区别: OpenCV-Python 2.x版本 这是OpenCV-Python的旧版本,支持Python 2.x。它包含了许多传统的计算机视觉功能&…

Springboot + vue 停车管理系统

Springboot vue 停车管理系统 项目描述 系统包含用户和管理员两个角色 用户:登录、注册、个人中心、预定停车位、缴费信息 管理员:登录、用户信息管理、车位信息管理、车位费用管理、停泊车辆管理、车辆进出管理、登录日志查询 运行环境 jdk1.8 idea …

强化学习应用(五):基于Q-learning的无人机物流路径规划研究(提供Python代码)

一、Q-learning简介 Q-learning是一种强化学习算法,用于解决基于马尔可夫决策过程(MDP)的问题。它通过学习一个价值函数来指导智能体在环境中做出决策,以最大化累积奖励。 Q-learning算法的核心思想是通过不断更新一个称为Q值的…

C++编码规范:JSF-AV(未完待续)

联合打击战斗机计划(英语:Joint Strike Fighter Program,简称JSF)是一个由美国和其盟国发起的新一代战斗机发展和采购项目。该项目旨在取代大量已老化的战斗机、战斗轰炸机和攻击机。该项目计划在未来取代各种西方主力战机&#x…

Web3的应用发展及其影响

Web3,又被称为去中心化Web,是互联网发展的一个阶段,其核心特点是数据的去中心化和用户自主权。近年来,随着区块链技术的不断成熟,Web3的应用也得到了广泛的关注和发展。在这篇文章中,我们将深入探讨Web3目前…

一文了解2024年AMC8竞赛模拟考试安排的重点和注意事项(附资源)

各位报名参加2024年AMC8竞赛的家长和孩子们注意了!今天到明天就可以参加AMC8竞赛的模拟考试了,本文结合本次模拟考试的常见问题为大家进行了梳理,站在参赛者的角度把2024年AMC8的模拟考试的关键事项和要点说清楚,让您最准确、快速…

JUC02同步和锁

同步&锁 相关笔记:www.zgtsky.top 临界区 临界资源:一次仅允许一个进程使用的资源成为临界资源 临界区:访问临界资源的代码块 竞态条件:多个线程在临界区内执行,由于代码的执行序列不同而导致结果无法预测&am…