当前位置: 首页 > news >正文

MySQL 运维实战系列(一)二进制安装 Mysql 8.0

01 数据库服务概述

什么是数据库服务?

数据库是规范存储数据的服务程序,用于存储网站或App界面看不到的数据,支持快速、高效的数据调取

数据库服务分类

类型特点代表产品
关系型数据库数据存储类似Excel表格(库=文件,表=表格,字段/记录=行列)MySQL, MariaDB, Oracle, PostgreSQL
非关系型数据库无表格结构限制Redis(缓存型), MongoDB(文档型)
新型数据库结合关系型与非关系型特点,支持分布式存储OB, TiDB(兼容MySQL), 达梦, openGauss(兼容Oracle)

02 数据库服务安装部署(以MySQL为例)

安装方式对比

方式优点缺点
yum简单无法定制版本
rpm可控需要解决依赖
源码编译灵活慢、耗资源
二进制(推荐)解压即用需手动配置

二进制安装步骤(MySQL 8.0.36)

1. 操作系统环境准备
# 我用的centos7.9# 关闭防火墙和SELinuxsystemctl stop firewalld&&systemctl disable firewalld setenforce0# 关闭selinux setenforce: SELinux is disabled# 创建管理用户和目录useraddmysql-M-s/sbin/nologinmkdir-p/data/3306/datamkdir-p/data/3306/logschown-Rmysql.mysql /data/3306/data /data/3306/logscd/usr/local/# 安装数据库需要的依赖yuminstall-ylibaio-devel

1.1下载数据库安装包
MySQL 官方下载页面

2. 安装程序
# 下载好的安装包上传到 /usr/localcd/usr/localtarxf mysql-8.0.36-linux-glibc2.12-x86_64.tar.xzln-smysql-8.0.36-linux-glibc2.12-x86_64 mysql# 配置环境变量echo'export PATH="$PATH:/usr/local/mysql/bin"'>>/etc/profilesource/etc/profile# 验证版本mysql-V

若系统中已有MariaDB/MySQL,需先卸载:

rpm-qa|grep-E"mariadb|mysql"|xargsrpm-e--nodeps# --nodeps忽略依赖检查

mysql/bin 目录下的工具

分类命令作用使用场景
服务器启动与管理mysqldMySQL 服务器主程序直接启动数据库服务
mysqld_safe安全的启动脚本,进程异常自动重启生产环境推荐使用
mysqladmin管理工具(查看状态、关闭服务等)快速管理操作
客户端连接工具mysqlMySQL 命令行客户端连接数据库执行 SQL 命令
mysqlshow显示数据库、表、列信息查看数据库结构
备份与恢复mysqldump逻辑备份工具(导出 SQL 文件)最常用的备份工具
mysqlbinlog解析二进制日志增量备份、数据恢复
数据库检查与修复mysqlcheck检查、修复、优化表维护数据库表
myisamchkMyISAM 表检查和修复修复 MyISAM 引擎表
innochecksum检查 InnoDB 表空间完整性检测 InnoDB 文件损坏
安全与配置mysql_secure_installation安全配置向导首次安装后加固安全
mysql_config_editor加密保存登录凭据避免密码明文
性能测试mysqlslap数据库压力测试工具测试并发性能
错误诊断perror查看错误码含义查看错误说明
升级工具mysql_upgrade升级数据库系统表MySQL 版本升级后运行
3. 初始化设置
# 配置文件 /etc/my.cnfcat>/etc/my.cnf<<'EOF' [mysqld] # 基础路径配置 basedir = /usr/local/mysql datadir = /data/3306/data socket = /tmp/mysql.sock pid-file = /data/3306/data/mysqld.pid port = 3306 user = mysql # 错误日志(必须) log-error = /data/3306/logs/mysqld.log # 字符集 character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci [client] socket = /tmp/mysql.sock port = 3306 default-character-set = utf8mb4 [mysql] socket = /tmp/mysql.sock port = 3306 default-character-set = utf8mb4 prompt = '\\u@\\h [\\d]> ' EOF
# 初始化(免密方式,推荐)mysqld --defaults-file=/etc/my.cnf --initialize-insecure
4. 启动数据库(三种方法,推荐3)
# 1.命令方式mysqld_safe --defaults-file=/etc/my.cnf&# 2.脚本方式,mysql自带的脚本cp/usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld /etc/init.d/mysqld startservicemysqld start# 3.设置系统服务(推荐)cp/usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld systemctlenablemysqld# 先执行这个初始化systemctl start mysqld

安装补充说明

  • 依赖问题
    • Kylin系统:无需额外安装
    • CentOS 7.9:需安装libaio-devel
  • 初始化密码
    • --initialize生成临时密码(记录在错误日志中)
    • --initialize-insecure免密初始化(推荐练习)
  • 启动失败排查
    • 查看错误日志:cat /data/3306/data/*.err
    • 检查/etc/my.cnf配置
    • 必要时重新初始化(注意备份数据)

03 数据库服务基础管理

1. 密码管理

设置密码:
# 命令行mysqladmin-urootpassword"1"# 命令执行成功,两个警告 警告1:命令行输入密码不安全 警告2:密码明文传输[root@db-centos-192 /usr/local]# mysqladmin -uroot password "1"mysqladmin:[Warning]Using a password on thecommandline interface can be insecure. Warning: Since password will be sent to serverinplain text, use ssl connection to ensure password safety.# 命令(数据库内)# 无密码登录mysql alter user root@'localhost'identified by'1';
修改密码:
# 命令行mysqladmin-uroot-p旧密码 password"新密码"# 命令(数据库内)alter user root@'localhost'identified by'1';
重置密码步骤:
# 1. 停止数据库/etc/init.d/mysqld stop# 确认关闭ps-ef|grepmysql# 2. 跳过授权表启动mysqld --defaults-file=/etc/my.cnf --skip-grant-tables&# 3. 连接数据库并重置密码mysql# 重新回复授权flush privileges;alter user root@'localhost'identified by'新密码';# 4. 正常重启pkillmysql /etc/init.d/mysqld start

2. 连接管理

连接方式命令示例说明
本地连接mysql -uroot -p123456默认使用/tmp/mysql.sock
远程连接mysql -uroot -p123456 -h 10.0.0.52 -P 3306需创建远程用户
创建远程用户示例:
createuserroot@'10.0.0.%'identifiedby'123456';createuserlottery@'172.16.1.%'identifiedby'lottery';
  • 10.0.0.%:网段
  • 10.0.0.53:单IP
  • %:任意主机

推荐数据库远程连接工具:DBeaver(免费)、Navicat(付费)


3. 用户管理

-- 创建createuser'xiaoA'@'localhost'identifiedby'123456';-- 查看selectuser,hostfrommysql.user;-- 修改密码alteruser'xiaoA'@'localhost'identifiedby'新密码';-- 修改加密方式alteruser'xiaoA'@'localhost'identifiedwithmysql_native_passwordby'123456';-- 删除dropuser'xiaoA'@'localhost';-- 或deletefrommysql.userwhereuser='xiaoA';

4. 权限管理

常见权限
权限说明
select查询数据
insert插入数据
update修改数据
delete删除数据
create创建库/表
drop删除库/表
alter修改表结构
show databases查看数据库列表
授权与撤销
# *.* ---> blog.book 表示blog库里的book表权限-- 授权grantselect,inserton*.*to'root'@'10.0.0.%';-- 全部权限grantallon*.*to'root'@'10.0.0.%';-- 授权权限grantgrantoptionon*.*to'root'@'10.0.0.%';-- 查看权限showgrantsfor'root'@'10.0.0.%';-- 撤销权限revokeinserton*.*from'root'@'10.0.0.%';

特殊权限说明

  • all:除grant option外的几乎所有权限
  • grant option:允许用户将自己拥有的权限授予他人
  • usage:默认权限,仅允许登录

http://www.jsqmd.com/news/872017/

相关文章:

  • 论文初稿被批太水?,有哪些真正亲测好用的的降AI率软件推荐?
  • taotoken的openai兼容协议让现有应用迁移成本降至最低
  • GHelper:华硕笔记本硬件控制的模块化架构与技术实现深度解析
  • 海事边缘计算实战:基于 Linux 构建船舶多链路高可用网络与隔离防线
  • 7天深度拆解:openpilot自动驾驶系统技术实现与二次开发指南
  • 2026年海口黄金回收平台深度盘点,标杆企业花落谁家? - 黄金上门回收
  • 下载 | Win10正式版最新系统ISO映像 (22H2、19045.7291、多合一版本)-修复系统问题
  • 市面上有哪些是真正性价比高的降AIGC软件(轻松压低AI生成疑似率)
  • 一多操作系统的生命体架构与当前主流开发语言的区别
  • Python之运算符优先级规则
  • TVBoxOSC:打造全能电视媒体中心的终极解决方案
  • [具身智能-855]:什么是AI应用?AI 应用、AI 模型、AI Agent三者区别?
  • 2026年东莞黄金回收避坑指南——福昌夏等六大机构实测对比 - 黄金上门回收
  • GPU 池化5个真实场景告诉你,为什么需要 OrionX 社区版
  • 协议分层传输、TCP报头与TCP三次握手介绍
  • 5大长期记忆系统终极横评!谁是AI Agent的「最强大脑」
  • 什么是AI Agent
  • 如何用嘎嘎降AI处理哲学论文:哲学毕业论文降AI4.8元完整操作教程 - 还在做实验的师兄
  • 心理学论文降AI工具免费推荐:2026年心理学毕业论文知网维普降AI4.8元亲测完整方案
  • Android Studio 打包 React 网页项目
  • Python之anonymous包语法、参数和实际应用案例
  • 利用 TaoToken 多模型聚合能力优化 AIGC 内容生成管线
  • Windows 环境下 NVM 安装与 Node.js 版本管理完全指南
  • 如何用嘎嘎降AI处理自动化论文:自动化毕业论文降AI免费完整操作教程 - 还在做实验的师兄
  • 2026年10款论文降AIGC网站横评:从90%降至10%的靠谱之选
  • Kotlin 跨平台 SqliteNow 全平台数据持久化方案
  • 2026年东莞GEO服务商可信赖排行榜TOP5推荐 - 速递信息
  • 数学论文降AI工具免费推荐:2026年数学毕业论文降AI4.8元知网达标免费完整方案
  • TabNet: Attentive Interpretable Tabular Learning——一种具有可解释性的注意力表格学习模型
  • 航空航天论文降AI工具免费推荐:2026年航空航天毕业论文降AI知网4.8元免费99.26%完整方案 - 还在做实验的师兄