MySQL,作为一款开源的关系型数据库管理系统,因其高性能、易用性和灵活性,成为了众多应用的首选数据库
本文将详细介绍如何在CentOS系统上安装MySQL,无论是初学者还是有一定经验的用户,都能从中获得实用的指导
一、环境准备与注意事项 在开始安装MySQL之前,我们需要做一些准备工作,并了解一些注意事项,以确保安装过程顺利进行
1. 系统版本确认 首先,确认你的CentOS版本
你可以通过运行以下命令来查看系统版本: bash cat /etc/centos-release 确保你的系统版本与MySQL的兼容性
本文将基于CentOS7.x版本进行演示
2. 检查现有数据库 CentOS系统可能预装了MariaDB,这是MySQL的一个分支
为了避免冲突,我们需要检查并卸载MariaDB
运行以下命令来检查MariaDB的安装情况: bash rpm -qa | grep mariadb 如果系统中有MariaDB,使用以下命令卸载: bash rpm -e --nodeps mariadb-libs-<版本号> rpm -e --nodeps mariadb-<版本号> 确保卸载干净后,再次运行检查命令,确认MariaDB已被完全移除
3.权限与依赖 由于安装过程中可能涉及系统级操作,建议使用root用户执行所有命令
此外,确保网络连接正常,以便下载MySQL的安装包和依赖项
二、MySQL安装方法 安装MySQL有多种方法,包括手动下载和解压、使用YUM源等
本文将介绍两种常用的方法:手动安装和使用官方YUM源安装
方法一:手动安装MySQL 这种方法适用于需要特定版本或希望完全控制安装过程的用户
1. 下载MySQL安装包 访问MySQL官方网站,找到适合你CentOS版本的MySQL安装包
通常,安装包以tar.gz格式提供
例如,MySQL5.7.37版本的下载链接可能类似于: https://dev.mysql.com/get/archives/mysql-5.7/mysql-5.7.37-el7-x86_64.tar.gz 使用wget命令下载安装包: bash wget <下载链接> 如果没有wget命令,可以先安装: bash yum install -y wget 2. 解压安装包 将下载的安装包解压到指定目录,例如/opt/apps/: bash tar -xvf mysql-5.7.37-el7-x86_64.tar.gz -C /opt/apps/ 解压后,进入解压目录: bash cd /opt/apps/mysql-5.7.37-el7-x86_64/ 3. 创建必要的目录和文件 创建数据目录、日志目录和临时目录: bash mkdir /opt/apps/mysql-5.7.37-el7-x86_64/{data,logs,tmp} 添加MySQL组和用户,并将MySQL目录的拥有者更改为mysql用户: bash groupadd mysql useradd -r -g mysql mysql chown -R mysql . chgrp -R mysql . 4.初始化MySQL 执行初始化命令,生成MySQL的系统表和默认密码: bash bin/mysqld --initialize --user=mysql --basedir=/opt/apps/mysql-5.7.37-el7-x86_64 --datadir=/opt/apps/mysql-5.7.37-el7-x86_64/data 记录初始化完成后生成的默认密码,稍后会用到
5. 配置MySQL 在/etc目录下创建my.cnf配置文件,并添加以下内容: ini 【mysqld】 server-id=1 port=3306 basedir=/opt/apps/mysql-5.7.37-el7-x86_64 datadir=/opt/apps/mysql-5.7.37-el7-x86_64/data log-error=/opt/apps/mysql-5.7.37-el7-x86_64/logs/error.log pid-file=/opt/apps/mysql-5.7.37-el7-x86_64/tmp/mysqld.pid transaction_isolation=READ-COMMITTED character-set-server=utf8mb4 collation-server=utf8mb4_general_ci init_connect=SET NAMES utf8mb4 lower_case_table_names=1 max_connections=1000 sql_mode=STRICT_TRANS_TABLES,IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 根据实际需求调整配置文件中的参数
6. 启动MySQL并设置开机自启动 虽然手动安装没有直接的systemd服务文件,但你可以通过创建脚本来启动MySQL
不过,更推荐的方法是使用systemctl(如果后续将MySQL安装为服务)
这里暂时先通过手动命令启动: bash bin/mysqld_safe --user=mysql & 要使MySQL开机自启动,需要创建一个systemd服务文件,但这里为了简化流程,不详细展开
方法二:使用官方YUM源安装MySQL 这种方法更为简便,适合大多数用户
1. 下载并安装MySQL YUM源 首先,查询你的CentOS版本号,然后访问MySQL官方YUM源页面,找到对应版本的YUM源RPM包
例如,对于CentOS7.9,你可能需要下载mysql57-community-release-el7-9.noarch.rpm
使用wget或curl下载YUM源RPM包: bash curl -O https://repo.mysql.com/mysql57-community-release-el7-9.noarch.rpm 或 bash wget https://repo.mysql.com/mysql57-community-release-el7-9.noarch.rpm 安装YUM源RPM包: bash yum localinstall mysql57-community-release-el7-9.noarch.rpm 2. 更新YUM源并安装MySQL 更新YUM源缓存,确保能够检索到MySQL的安装包: bash yum repolist 检查是否启用了MySQL社区YUM源: bash yum repolist enabled | grep mysql.-community. 安装MySQL服务器: bash yum install -y mysql-community-server 如果遇到密钥问题导致的安装失败,导入MySQL的公钥: bash rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 然后重新尝试安装
3. 启动MySQL并设置开机自启动 启动MySQL服务: bash systemctl start mysqld 检查MySQL服务状态: bash systemctl status mysqld 设置MySQL开机自启动: bash systemctl enable mysqld systemctl daemon-reload 4. 获取默认密码并登录MySQL MySQL安装完成后,会在/var/log/mysqld.log文件中生成一个临时密码
使用grep命令查找: bash grep temporary password /var/log/mysqld.log 记录临时密码,然后使用以下命令登录MySQL: bash mysql -u root -p 输入临时密码后,即可进入MySQL命令行界面
5. 修改root密码并配置远程访问 登录后,首先修改root用户的密码
由于MySQL默认启用了密码安全检查插件,新密码必须包含大小写字母、数字和特殊字符,且长度不少于8位: sql ALTER USER root@localhost IDENTIFIED BY 新密码; 或者 sql SET PASSWORD FOR root@localhost = PASSWORD(新密码); 配置root用户远程访问权限(可选): sql GRANT ALL PRIVILEGES ON- . TO root@% IDENTIFIED BY 新密码 WITH GRANT OP