Linux系统下MySQL数据库安装全攻略

linux安装mysql详解

时间:2025-06-16 02:28


Linux安装MySQL详解 MySQL是一种广泛使用的关系型数据库管理系统,它使用SQL(结构化查询语言)进行数据管理

    在Linux操作系统上安装MySQL是许多开发者和系统管理员的常见任务

    本文将详细介绍在Linux系统上安装MySQL的步骤,并提供一些安装过程中可能遇到的问题及其解决方案

     一、准备工作 在开始安装MySQL之前,你需要准备以下工作: 1.Linux系统:本文将以CentOS操作系统为例,但大多数步骤同样适用于其他Linux发行版,如RedHat、Oracle Linux等

     2.root权限:安装MySQL需要root权限,因此你需要确保有权限执行安装操作

     3.下载MySQL安装包:可以从MySQL官方网站(【https://www.mysql.com/】(https://www.mysql.com/))下载最新版本的MySQL安装包

    MySQL提供多种安装方式,包括二进制安装、源码编译安装、以及通过包管理器(如yum、rpm)安装

     4.确认系统架构:MySQL有32位和64位两个版本,你需要确认系统的架构,以便下载相应版本的安装包

     二、安装步骤 1.卸载已安装的MySQL或MariaDB 在安装新的MySQL之前,你需要检查系统是否已经安装了MySQL或MariaDB(MariaDB是MySQL的一个分支,与MySQL兼容)

    如果已安装,需要将其卸载,以避免冲突

     bash 检查是否已安装MySQL或MariaDB rpm -qa | grep mysql rpm -qa | grep mariadb 卸载MySQL或MariaDB rpm -e --nodeps 2. 下载MySQL安装包 从MySQL官方网站下载适合你Linux发行版和架构的MySQL安装包

    通常,你会下载一个tar.gz格式的二进制安装包

     3. 解压安装包 将下载的tar.gz安装包解压到指定的目录

    例如,解压到/usr/local/mysql目录: bash 解压安装包 tar -zxvf mysql-5.7.xx-linux-glibc2.12-x86_64.tar.gz -C /usr/local/ 重命名解压后的目录(可选) mv /usr/local/mysql-5.7.xx-linux-glibc2.12-x86_64 /usr/local/mysql 4. 创建用户和目录 创建一个专门用于运行MySQL服务的虚拟用户,并创建MySQL的数据目录和日志目录

     bash 创建MySQL虚拟用户 useradd -s /sbin/nologin -M mysql 创建数据目录和日志目录 mkdir -p /data/mysql/mysql3306/{data,logs} 更改目录的所有者 chown -R mysql:mysql /data/mysql/mysql3306/ 5. 配置MySQL 创建MySQL的配置文件,并设置相应的参数

    配置文件通常位于/etc/my.cnf或/data/mysql/mysql+port/my+port.cnf

     bash 创建配置文件 vim /data/mysql/mysql3306/my3306.cnf 在配置文件中添加以下内容 【mysqld】 user=mysql basedir=/usr/local/mysql datadir=/data/mysql/mysql3306/data socket=/data/mysql/mysql3306/mysql.sock server_id=1 port=3306 log_error=/data/mysql/mysql3306/logs/error.log log_bin=/data/mysql/mysql3306/logs/mysql-bin binlog_format=row gtid_mode=on enforce_gtid_consistency=true log_slave_updates=1 max_connections=1024 wait_timeout=60 sort_buffer_size=2M max_allowed_packet=32M join_buffer_size=2M innodb_buffer_pool_size=128M innodb_flush_log_at_trx_commit=1 innodb_log_buffer_size=32M innodb_log_file_size=128M innodb_log_files_in_group=2 binlog_cache_size=2M max_binlog_cache_size=8M max_binlog_size=512M expire_logs_days=7 slow_query_log=on slow_query_log_file=/data/mysql/mysql3306/logs/slow.log long_query_time=0.5 log_queries_not_using_indexes=1 注意:以上配置参数仅用于测试环境,不可在生产环境中直接使用

    生产环境的配置需要根据实际需求和硬件资源进行调整

     6.初始化数据库 使用mysqld命令初始化数据库,生成系统表和数据字典

     bash 初始化数据库 /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3306/my3306.cnf --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/mysql3306/data `--initialize-insecure`选项表示不创建root用户的密码,允许空密码登录

    在生产环境中,应使用`--initialize`选项来生成一个临时密码,并在首次登录时更改密码

     7. 安装依赖包 MySQL运行需要一些依赖包,如libaio

    使用yum命令安装这些依赖包

     bash 安装libaio依赖包 yum install libaio-devel -y 8. 启动MySQL服务 将MySQL的bin目录添加到PATH环境变量中,以便在命令行中直接运行mysql命令

    然后启动MySQL服务

     bash 添加MySQL的bin目录到PATH环境变量 vim /etc/profile export PATH=/usr/local/mysql/bin:$PATH source /etc/profile 启动MySQL服务 /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql/mysql3306/my3306.cnf & 你也可以使用systemctl命令来管理MySQL服务(如果MySQL已注册为systemd服务)

     bash 启动MySQL服务 systemctl start mysqld 设置MySQL服务开机自启 systemctl enable mysqld 9. 登录MySQL并修改密码 初始化时没有给root用户指定密码,所以可以空密码连接

    首次登录后,应立即修改root用户的密码

     bash 登录MySQL mysql -uroot -S /data/mysql/mysql3306/mysql.sock 修改root用户密码 mysql> ALTER USER root@localhost IDENTIFIED BY new_password; mysql> FLUSH PRIVILEGES; 三、常见问题及解决方案 1.libaio缺少:在安装MySQL时,可能会遇到缺少libaio库的错误

    可以通过yu