Linux下安装mysql

原文地址 www.jianshu.com

Mysql 数据库的安装对于开发者来说,是我们必然会面对的问题,它的安装过程其实并不复杂,并且网络上的安装教程也非常多,但是对于新手来说,各种不同形式的安装教程,又给新手们带来了要选择哪种方式进行安装的难题,而且很多时候按照教程也没有能够安装成功,安装过程出现各种各样的错误。

下面记录了我在 Linux 环境下安装 Mysql 的完整过程,实操记录,绝非水文,如有错误或遗漏,欢迎指正。

本文档讲解安装版本为 mysql-5.7.24,对于 5.7.24 之后的版本,不适用此说明文档,主要原因在于之后版本的 mysql 配置文件的目录位置和结构有所改变,使用此说明可能会出现找不到配置文件或者配置后不生效的情况。

安装过程中务必保证文件路径的前后统一,否则可能会导致不可预期的结果,推荐直接使用文中的命令进行操作。

一 安装前准备#

1、检查是否已经安装过 mysql,执行命令

Copy
[root@localhost /]# rpm -qa | grep mysql

从执行结果,可以看出我们已经安装了 mysql-libs-5.1.73-5.el6_6.x86_64,执行删除命令

Copy
[root@localhost /]# rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64

再次执行查询命令,查看是否删除

Copy
[root@localhost /]# rpm -qa | grep mysql

2、查询所有 Mysql 对应的文件夹

Copy
[root@localhost /] mysql: /usr/bin/mysql /usr/include/mysql [root@localhost lib] /data/mysql /data/mysql/mysql

删除相关目录或文件

Copy
[root@localhost /]# rm -rf /usr/bin/mysql /usr/include/mysql /data/mysql /data/mysql/mysql

验证是否删除完毕

Copy
[root@localhost /]# whereis mysql mysql: [root@localhost /]# find / -name mysql [root@localhost /]#

3、检查 mysql 用户组和用户是否存在,如果没有,则创建

Copy
[root@localhost /]# cat /etc/group | grep mysql [root@localhost /]# cat /etc/passwd |grep mysql [root@localhost /]# groupadd mysql [root@localhost /]# useradd -r -g mysql mysql [root@localhost /]#

4、从官网下载是用于 Linux 的 Mysql 安装包

下载命令:

Copy
[root@localhost /]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

也可以直接到 mysql 官网选择其他版本进行下载。

二 安装 Mysql#

1、在执行 wget 命令的目录下或你的上传目录下找到 Mysql 安装包:mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
执行解压命令:

Copy
[root@localhost /]# tar xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz [root@localhost /]# ls mysql-5.7.24-linux-glibc2.12-x86_64 mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

解压完成后,可以看到当前目录下多了一个解压文件,移动该文件到 /usr/local/ 下,并将文件夹名称修改为 mysql

如果 /usr/local/ 下已经存在 mysql,请将已存在 mysql 文件修改为其他名称,否则后续步骤可能无法正确进行。

执行命令如下:

Copy
[root@localhost /]# mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/ [root@localhost /]# cd /usr/local/ [root@localhost /]# mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql

如果 /usr/local/ 下不存在 mysql 文件夹,直接执行如下命令,也可达到上述效果。

Copy
[root@localhost /]# mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql

2、在 /usr/local/mysql 目录下创建 data 目录

Copy
[root@localhost /]# mkdir /usr/local/mysql/data

3、更改 mysql 目录下所有的目录及文件夹所属的用户组和用户,以及权限

Copy
[root@localhost /]# chown -R mysql:mysql /usr/local/mysql [root@localhost /]# chmod -R 755 /usr/local/mysql

4、编译安装并初始化 mysql, 务必记住初始化输出日志末尾的密码(数据库管理员临时密码)

Copy
[root@localhost /]# cd /usr/local/mysql/bin [root@localhost bin]# ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
补充说明:

第 4 步时,可能会出现错误:

出现该问题首先检查该链接库文件有没有安装使用 命令进行核查

Copy
[root@localhost bin]# rpm -qa|grep libaio [root@localhost bin]#

运行命令后发现系统中无该链接库文件

Copy
[root@localhost bin]# yum install libaio-devel.x86_64

安装成功后,继续运行数据库的初始化命令,此时可能会出现如下错误:

执行如下命令后:

Copy
[root@localhost bin]# yum -y install numactl

执行无误之后,再重新执行第 4 步初始化命令,无误之后再进行第 5 步操作!

5、运行初始化命令成功后,输出日志如下:

记录日志最末尾位置 root@localhost: 后的字符串,此字符串为 mysql 管理员临时登录密码。

6、编辑配置文件 my.cnf,添加配置如下

Copy
[root@localhost bin] [mysqld] datadir=/usr/local/mysql/data port = 3306 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES symbolic-links=0 max_connections=400 innodb_file_per_table=1 lower_case_table_names=1

7、启动 mysql 服务器

Copy
[root@localhost /]# /usr/local/mysql/support-files/mysql.server start

显示如下结果,说明数据库安装成功

如果出现如下提示信息

Copy
Starting MySQL... ERROR! The server quit without updating PID file

查看是否存在 mysql 和 mysqld 的服务,如果存在,则结束进程,再重新执行启动命令

Copy
#查询服务 ps -ef|grep mysql ps -ef|grep mysqld #结束进程 kill -9 PID #启动服务 /usr/local/mysql/support-files/mysql.server start

8、添加软连接,并重启 mysql 服务

Copy
[root@localhost /]# ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql [root@localhost /]# ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql [root@localhost /]# service mysql restart

9、登录 mysql,修改密码 (密码为步骤 5 生成的临时密码)

Copy
[root@localhost /]# mysql -u root -p Enter password: mysql>set password for root@localhost = password('yourpass');

10、开放远程连接

Copy
mysql>use mysql; msyql>update user set user.Host='%' where user.User='root'; mysql>flush privileges;

11、设置开机自动启动

Copy
1、将服务文件拷贝到init.d下,并重命名为mysql [root@localhost /]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld 2、赋予可执行权限 [root@localhost /]# chmod +x /etc/init.d/mysqld 3、添加服务 [root@localhost /]# chkconfig --add mysqld 4、显示服务列表 [root@localhost /]# chkconfig --list
posted @   "无问西东"  阅读(84)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
网络创业项目 123how出海导航
点击右上角即可分享
微信分享提示
CONTENTS