蛙扑下载站:安全、绿色、放心的专业下载站! 首页|最近更新|专题集合|站内导航

Linux系统安装MySQL 5.7.13完整教程

时间:2026-10-06 16:03:24 来源:www.vaopo.com 人气:人

很多开发者在部署服务器环境时,都会遇到需要手动安装特定版本数据库的情况。MySQL 5.7.13虽然版本较老,但在一些遗留项目或特定测试环境中依然有稳定表现。本文将直接用大白话带你一步步在Linux环境下完成该版本的安装与基础配置,避开常见的坑,确保你能顺利跑起来。

安装前的准备工作

动手之前,先确认你的Linux系统是CentOS 7或者Ubuntu 16.04这类主流版本。MySQL 5.7系列对操作系统内核要求不高,但需要确保系统里有基础的依赖库。打开终端,执行yum install libaio或者apt install libaio1来安装缺失的依赖包。同时,检查系统是否已经存在旧版MySQL或MariaDB,如果有冲突一定要先卸载干净,避免端口占用或文件路径打架。准备一个普通的非root用户来操作数据库会更安全,不过为了流程简单,本文默认使用root权限执行命令。

下载与解压安装包

去MySQL官网的归档页面找到5.7.13对应的通用二进制包。一般选择linux-glibc2.12-x86_64.tar.gz格式,这种压缩包不需要复杂的编译过程,直接解压就能用。通过wget命令把文件下载到服务器的某个临时目录,比如/usr/local/src。下载完成后,用tar zxvf命令进行解压。解压后会生成一个mysql目录,建议把它移动到/usr/local/mysql下,这样路径统一,方便后续管理。记得给这个文件夹设置合适的读写权限,通常chown -R mysql:mysql /usr/local/mysql即可,让系统自动识别出mysql用户。

创建配置文件与初始化数据

MySQL启动前必须有一个配置文件,一般在/etc/my.cnf或者/etc/mysql/my.cnf位置。你可以从解压目录里的support-files/mysql.server复制一份过来,或者直接新建一个。在配置文件中主要写清楚basedir指向/usr/local/mysql,datadir指定数据存储路径比如/var/lib/mysql,还有port默认是3306。如果服务器内存不大,可以适当调低innodb_buffer_pool_size的值,防止启动时内存溢出。保存好配置文件后,进入bin目录执行mysqld --initialize-insecure --user=mysql命令。这一步非常关键,它会初始化数据目录并生成系统表。带insecure参数表示初始密码为空,方便新手登录调试。如果生产环境怕麻烦,也可以去掉insecure,系统会自动生成随机密码并在日志里打印出来。

配置开机自启与服务启动

初始化完成后,就可以让MySQL作为系统服务运行了。把解压目录下的mysql.server脚本复制到/etc/init.d/目录下,并重命名为mysql。然后给这个脚本加执行权限chmod +x /etc/init.d/mysql。接着用systemctl enable mysql或者chkconfig mysql on来设置开机自启动。一切就绪后,执行service mysql start或者systemctl start mysql,观察有没有报错。如果没有返回错误信息,说明服务已经成功拉起。你可以用ps aux | grep mysql查看进程是否存在,或者用netstat -tlnp | grep 3306看看端口是否处于监听状态。

修改密码与安全加固

因为初始化时用了空密码,第一次登录前必须改掉默认设置。执行mysql -u root -p,提示输入密码时直接回车。进入数据库命令行后,运行ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';把密码改稳。改完密码后,顺手清理掉匿名账户和测试用的数据库,毕竟线上环境安全第一。可以用DROP DATABASE test;删除测试库,再执行DELETE FROM mysql.user WHERE User='';清空匿名用户。最后刷新权限FLUSH PRIVILEGES;让改动立即生效。这时候退出命令行,用新密码重新登录,能成功进去就说明整个安装流程彻底跑通了。

常见问题排查技巧

如果在启动过程中遇到Permission denied,多半是目录权限没给对,回去检查datadir所属用户是不是mysql。要是提示Can't open shared library,说明libaio依赖没装全,补装一下就行。遇到连接超时,检查一下防火墙规则,用firewall-cmd --add-port=3306/tcp开放端口。还有种情况是socket文件找不到,可以在my.cnf里显式指定socket=/tmp/mysql.sock,并在客户端连接时加上--socket参数指向同一个路径。把这些细节理顺,基本就不会卡在半路了。