MySQL 服务基础

MySQL 服务的二进制安装

MySQL 是全球最流行、应用最广泛的开源关系型数据库管理系统(RDBMS),凭借轻量、高效、易用、免费的特性,成为互联网、中小企业、嵌入式开发等场景的首选数据库,是 Web 开发与数据存储的核心基石。

核心特性

  1. 开源免费

    社区版完全开源免费,无版权成本,个人、企业均可自由使用、修改、分发。

  2. 轻量高效

    资源占用低、读写速度快,支持高并发访问,适配从小型网站到大型分布式系统的全场景。

  3. 跨平台兼容

    支持 Linux、Windows、macOS 等所有主流操作系统,部署灵活。

  4. 标准 SQL 支持

    遵循通用 SQL 语法,学习成本低,与 Oracle、SQL Server 等数据库语法互通性强。

  5. 多存储引擎

    支持 InnoDB(默认,支持事务、外键)、MyISAM 等多种存储引擎,可按需选择。

  6. 高可用与易扩展

    支持主从复制、读写分离、集群部署,满足海量数据与高并发业务需求。

1.基础环境准备

bash 复制代码
# 关闭防火墙与 SELINUX
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

# 创建 mysql 用户与用户组
groupadd mysql
useradd -r -g mysql -s /sbin/nologin mysql

# 安装依赖
yum -y install libaio-devel

2.二进制安装

bash 复制代码
# 下载并安装 MySQL 二进制包
cd /usr/local
wget https://cdn.mysql.com/Downloads/MySQL-8.0/mysql-8.0.36-linux-glibc2.28-x86_64.tar.xz
tar -xvf mysql-8.0.36-linux-glibc2.28-x86_64.tar.xz
mv mysql-8.0.36-linux-glibc2.28-x86_64 mysql

# 创建数据目录并授权
mkdir -p /data/mysql
chown -R mysql:mysql /data/mysql
chown -R 750 /data/mysql

3.设定配置文件

ini 复制代码
# /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /data/mysql
socket = /tmp/mysql.sock
port = 3306
character-set-server = utf8
default-storage-engine = INNODB
max_connections = 1000
log-error = /data/mysql/mysql-error.log
pid-file = /data/mysql/mysql.pid

[client]
socket = /tmp/mysql.sock
default-character-set = utf8

4.配置 systemctl 启动

  1. 创建服务文件

    bash 复制代码
    vim /usr/lib/systemd/system/mysqld.service
  2. 服务文件代码

    ini 复制代码
    [Unit]
    Description=MySQL Server
    After=network.target
    
    [Service]
    User=mysql
    Group=mysql
    Type=forking
    ExecStart=/usr/local/mysql/bin/mysql_safe --defaults-file=/etc/my.cnf
    ExecStop=/usr/local/mysql/bin/mysqladmin -u root -p shutdown
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
  3. 重载并启动服务

    bash 复制代码
    systemctl daemon-reload
    systemctl start mysqld
    systemctl enable mysqld
    systemctl status mysqld

5.访问数据库

bash 复制代码
# 查看临时密码
grep 'temporary password' /data/mysql/mysql-error.log

# 登录 MySQL
mysql -u root -p

# 修改初始密码
alter user 'root'@'localhost' identified by '新密码';
flush privileges;
相关推荐
Aloudata9 分钟前
LookML 语义模型 vs 企业级独立语义层:BI 建模语言能否承担企业语义底座?
数据库·人工智能·数据分析·数据资产·dataagent
细嗅蔷薇@17 分钟前
排序和分⻚(order by 、limit)
数据库·oracle
wdfk_prog34 分钟前
LWIP教程 09:从 `tcp_slowtmr()` 到 Fast Retransmit——TCP 超时重传与重复 ACK
服务器·网络·数据库·网络协议·tcp/ip
逸模36 分钟前
BIM在连锁餐饮装修中的应用:不只是画三维图
大数据·数据库·人工智能·物联网·建模
梦想平凡40 分钟前
棋牌游戏技术实战(五):从对局事件重新执行规则,核对棋盘和最终状态
数据库·游戏·oracle
白露与泡影1 小时前
Oracle AI Database 26ai RAC 部署步骤、关键命令与一键脚本
数据库·人工智能·oracle
天天喝旺仔2 小时前
MySQL 索引原理与慢查询优化实战:从 B+ 树到执行计划调优
数据库·sql·mysql·性能优化
liulilittle2 小时前
Linux 下 select 测试函数
linux·服务器·网络·数据库·c++·select·c
DongQiShanRen2 小时前
玄龙(上):TICK 主循环——意识心跳怎么跳
linux·jvm·数据库·人工智能·数据挖掘·rust
数据库小学妹2 小时前
存算分离到底分离了什么?四条架构变化与选型判断
数据库·数据库架构·云原生数据库·缓存一致性·存算分离