CentOS系统下使用tar.gz包手动安装MySQL数据库的详细步骤

在Linux系统中,MySQL数据库是许多开发者和管理员的首选数据库管理系统。尽管许多Linux发行版提供了MySQL的包管理器安装方式,但有时我们可能需要手动安装以获得更多控制权或安装特定版本。本文将详细介绍在CentOS系统下使用tar.gz包手动安装MySQL数据库的详细步骤。

前提条件

  1. 操作系统:CentOS 7或更高版本
  2. 用户权限:具有root权限或sudo权限的用户
  3. 依赖包:确保系统已安装必要的依赖包,如gccmakecmake

步骤一:下载MySQL tar.gz包

首先,访问MySQL官方网站或使用wget命令下载MySQL的tar.gz包。例如,下载MySQL 8.0.26版本:

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.26.tar.gz

步骤二:解压下载的包

将下载的tar.gz包解压到指定目录:

tar -xzf mysql-8.0.26.tar.gz
cd mysql-8.0.26

步骤三:安装依赖包

在编译MySQL之前,需要安装一些依赖包。使用以下命令安装:

sudo yum install -y gcc gcc-c++ cmake make bison ncurses-devel

步骤四:创建MySQL用户和组

为了安全和管理方便,建议创建一个专门的MySQL用户和组:

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

步骤五:编译和安装MySQL

  1. 创建编译目录
   mkdir build
   cd build
  1. 运行cmake进行配置
   cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_INNODB_MEMCACHED=ON -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=NO

这里 -DCMAKE_INSTALL_PREFIX 指定了MySQL的安装路径,-DMYSQL_DATADIR 指定了数据存储路径。

  1. 编译MySQL
   make -j$(nproc)

-j$(nproc) 参数会使用所有可用的CPU核心进行并行编译,加快编译速度。

  1. 安装MySQL
   sudo make install

步骤六:配置MySQL

  1. 设置权限
   sudo chown -R mysql:mysql /usr/local/mysql
   sudo chmod -R 750 /usr/local/mysql
  1. 初始化数据库
   sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql

此命令会生成一个初始的root密码,请记住输出的密码。

  1. 配置my.cnf文件

创建或编辑 /etc/my.cnf 文件,添加以下内容:

   [mysqld]
   basedir=/usr/local/mysql
   datadir=/usr/local/mysql/data
   socket=/tmp/mysql.sock
   user=mysql

   [client]
   socket=/tmp/mysql.sock

   [mysqladmin]
   socket=/tmp/mysql.sock

   [mysqldump]
   socket=/tmp/mysql.sock

步骤七:启动MySQL服务

  1. 创建系统服务

创建一个systemd服务文件 /etc/systemd/system/mysqld.service,添加以下内容:

   [Unit]
   Description=MySQL Server
   After=network.target

   [Service]
   User=mysql
   Group=mysql
   ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
   ExecReload=/bin/kill -s HUP $MAINPID
   ExecStop=/bin/kill -s QUIT $MAINPID
   Restart=on-failure

   [Install]
   WantedBy=multi-user.target
  1. 启动MySQL服务
   sudo systemctl start mysqld
   sudo systemctl enable mysqld

步骤八:安全配置MySQL

  1. 登录MySQL

使用初始密码登录MySQL:

   /usr/local/mysql/bin/mysql -u root -p
  1. 修改root密码
   ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
  1. 删除匿名用户和测试数据库
   DELETE FROM mysql.user WHERE User='';
   DROP DATABASE IF EXISTS test;
   DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';
  1. 刷新权限
   FLUSH PRIVILEGES;

步骤九:验证安装

最后,验证MySQL是否安装成功:

mysql -u root -p

如果能够成功登录,说明MySQL安装成功。

总结