5154

Good Luck To You!

CentOS下如何安装配置解压版的MySQL数据库?

在CentOS系统中安装MySQL,除了使用yum等包管理器外,还有一种更为灵活和可控的方式——安装解压版(也称为二进制通用版),这种方式允许用户自由选择MySQL版本,自定义安装路径和配置,对于需要进行特定环境配置或版本隔离的开发者与系统管理员来说,具有不可替代的优势,本文将详细介绍在CentOS上安装MySQL解压版的完整流程。

CentOS下如何安装配置解压版的MySQL数据库?

前期准备工作

在开始安装之前,确保系统环境干净,并做好必要的准备工作。

  1. 检查与卸载旧版本:为避免端口冲突和文件覆盖,首先需要检查并卸载系统中原有的MySQL或MariaDB。

    rpm -qa | grep -i mysql
    rpm -qa | grep -i mariadb

    如果查询到相关包,请使用 yum removerpm -e 命令进行卸载。

  2. 创建专用用户:出于安全考虑,不建议使用root用户运行MySQL服务,我们创建一个名为mysql的系统用户和用户组。

    groupadd mysql
    useradd -r -g mysql -s /bin/false mysql

    -r参数表示创建系统用户,-s /bin/false禁止该用户登录shell。

  3. 安装依赖:MySQL解压版依赖于libaio库,请确保已安装。

    yum install -y libaio

安装与配置步骤

下载并解压MySQL

访问MySQL官方网站的下载页面,选择“Linux - Generic (glibc 2.12) (x86, 64-bit)”版本,复制其链接地址,在服务器上使用wget下载。

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.35-linux-glibc2.12-x86_64.tar.xz

下载完成后,将其解压到/usr/local目录下,并重命名为mysql,这是一个约定俗成的标准路径。

tar -xvf mysql-8.0.35-linux-glibc2.12-x86_64.tar.xz -C /usr/local/
cd /usr/local/
mv mysql-8.0.35-linux-glibc2.12-x86_64 mysql

创建数据目录并授权

在MySQL安装目录下创建一个用于存储数据库数据的目录,并将该目录的所有权赋予之前创建的mysql用户。

CentOS下如何安装配置解压版的MySQL数据库?

mkdir /usr/local/mysql/data
chown -R mysql:mysql /usr/local/mysql/

初始化数据库

这是最关键的一步,执行初始化命令,MySQL会创建系统数据库及其相关文件。

/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

执行完毕后,命令行末尾会输出一个临时的root密码,[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: _a1b2c3d!E,请务必记录下这个密码,首次登录时需要使用。

配置my.cnf文件

创建MySQL的配置文件/etc/my.cnf,这是MySQL服务启动时读取的核心配置。

vim /etc/my.cnf

填入以下基本配置:

[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
socket = /tmp/mysql.sock
character-set-server=utf8mb4
default-storage-engine=INNODB
[mysql]
default-character-set=utf8mb4
[client]
default-character-set=utf8mb4
socket = /tmp/mysql.sock

配置系统服务并启动

为了方便管理,我们将MySQL配置为systemd服务,创建服务文件:

vim /etc/systemd/system/mysql.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000

重新加载systemd配置,启动MySQL服务,并设置为开机自启。

systemctl daemon-reload
systemctl start mysql
systemctl enable mysql

登录并修改密码

现在可以使用之前记录的临时密码登录MySQL了。

/usr/local/mysql/bin/mysql -u root -p

输入临时密码登录成功后,立即修改root密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewStrongPassword';

为了方便后续使用,可以将MySQL的bin目录添加到系统环境变量中:

CentOS下如何安装配置解压版的MySQL数据库?

echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile

至此,MySQL解压版已在CentOS上成功安装、配置并运行。


相关问答FAQs

Q1: 如果忘记了初始化时生成的临时root密码,该怎么办?

A1: 不要慌张,可以通过“跳过权限验证”模式来重置密码,停止MySQL服务:systemctl stop mysql,手动启动mysqld,并添加--skip-grant-tables参数:/usr/local/mysql/bin/mysqld --skip-grant-tables --user=mysql &,无需密码即可登录:mysql -u root,登录后,执行以下命令刷新权限并重置密码:

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword';

退出MySQL,正常启动服务即可:systemctl start mysql

Q2: 如何将手动安装的MySQL设置为开机自启?

A2: 我们在第5步“配置系统服务并启动”中已经完成了这个操作,核心是创建了一个mysql.servicesystemd服务单元文件,创建好这个文件后,执行systemctl daemon-reload让systemd识别新服务,然后使用systemctl enable mysql命令即可将MySQL服务添加到开机启动项中,这样,每次系统重启后,MySQL服务都会自动运行。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年11月    »
12
3456789
10111213141516
17181920212223
24252627282930
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.