安装MySQL二进制包可快速灵活部署,适合定制化需求。首先从官网下载对应系统的tar包,如mysql-8.0.xx-linux-glibc2.12-x86_64.tar.xz,使用wget获取并解压至/usr/local/mysql。创建mysql用户组及目录权限后,执行mysqld --initialize初始化数据库,记录生成的临时密码。可选配置SSL证书,并将mysql.server脚本复制到/etc/init.d/mysql以管理服务。通过编辑/etc/my.cnf设置基础参数,启用chkconfig自启并启动服务。最后将MySQL路径加入环境变量,使用临时密码登录并用ALTER USER修改root密码完成配置。

安装 MySQL 二进制包是一种快速、灵活的方式,特别适合不想通过系统包管理器(如 yum 或 apt)安装的用户。二进制包是官方预编译好的程序,可直接解压使用,适用于大多数 Linux 系统。下面介绍详细步骤。
下载合适的 MySQL 二进制包
访问 MySQL 官方下载页面(https://dev.mysql.com/downloads/mysql/),选择对应操作系统和架构的二进制压缩包(通常为 tar.gz 格式)。推荐选择带有“Linux - Generic”标签的版本。
例如,64位系统可下载:
mysql-8.0.xx-linux-glibc2.12-x86_64.tar.xz
使用 wget 命令下载到服务器:
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.xx-linux-glibc2.12-x86_64.tar.xz
解压并安装到指定目录
将下载的包解压,并移动到标准安装路径(如 /usr/local/mysql):
- tar -xvf mysql-8.0.xx-linux-glibc2.12-x86_64.tar.xz
- sudo mv mysql-8.0.xx-linux-glibc2.12-x86_64 /usr/local/mysql
创建 mysql 用户和组,用于运行 MySQL 服务:
- sudo groupadd mysql
- sudo useradd -r -g mysql mysql
设置目录权限:
- sudo chown -R mysql:mysql /usr/local/mysql
初始化数据库
进入安装目录,执行初始化命令生成数据文件和临时密码:
- cd /usr/local/mysql
- bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
初始化完成后,会输出 root 用户的临时密码,形如:
A temporary password is generated for root@localhost: abc123xyz
请务必记录该密码,后续登录需要使用。
创建 SSL 证书(可选但推荐):
- bin/mysql_ssl_rsa_setup --basedir=/usr/local/mysql
配置 MySQL 服务
复制启动脚本到系统服务目录:
- sudo cp support-files/mysql.server /etc/init.d/mysql
编辑配置文件(如果没有 my.cnf):
- sudo vi /etc/my.cnf
写入基本配置:
[mysqld] basedir=/usr/local/mysql datadir=/usr/local/mysql/data socket=/tmp/mysql.sock port=3306
启用开机自启:
- sudo chkconfig --add mysql
- sudo chkconfig mysql on
启动服务:
- sudo service mysql start
设置环境变量并修改密码
将 MySQL 添加到系统 PATH,方便使用 mysql 命令:
- export PATH=/usr/local/mysql/bin:$PATH
添加到 ~/.bashrc 或 /etc/profile 永久生效:
- echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bashrc
- source ~/.bashrc
使用临时密码登录并修改密码:
- mysql -u root -p
进入后执行:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; exit;
基本上就这些。二进制安装虽然步骤稍多,但控制更灵活,适合定制化部署。只要注意权限、路径和初始化流程,一般不会出错。










