MySQL 5.7安装教程(Linux通用版)

本文最后更新于:2025年4月28日

MySQL 是一个广泛使用的开源关系型数据库管理系统,它使用结构化查询语言(SQL)进行数据管理,支持事务处理、多用户访问和外键约束等功能,适用于各种规模的应用程序。以其可靠性、性能和易用性著称,MySQL 提供了丰富的功能来确保数据的安全性和完整性,并支持多种存储引擎以适应不同的应用场景需求。无论是小型网站还是大型企业系统,MySQL 都能提供稳健的数据存储和检索解决方案,使其成为最流行的数据库管理系统之一。

MySQL数据库分为社区版和商业版,这里介绍的是Linux 环境下 MySQL 5.7 社区版的安装教程:

一、准备操作

1. 有需要在虚拟机安装Linux系统的小伙伴,请点击下方任意一个链接查看安装配置教程:

CentOS Ubuntu Debian
安装教程 点我查看 点我查看 点我查看

2. 本文使用 Electerm 远程连接 Linux,需要安装的小伙伴,根据自己所在的操作系统查看安装配置教程:

Windows macOS
Electerm 安装教程 点我查看 点我查看

3. 根据自己的操作系统,安装如下依赖:

  • CentOS:
1
2
yum -y install vim cmake gcc gcc-c++ ncurses ncurses-devel bison perl perl-devel libtirpc rpcgen libaio openssl openssl-devel
yum --enablerepo=crb -y install libtirpc-devel
  • Ubuntu/Debian:
1
apt -y install vim cmake gcc g++ bison perl openssl libssl-dev libncurses5-dev pkg-config ufw

4. 创建一个名为mysql用户组:

1
groupadd mysql

5. 创建一个名为mysql的用户,所属用户组也是mysql

1
useradd -r -g mysql mysql

6. 创建 /usr/local/mysql/usr/local/mysql/data 两个目录:

1
2
mkdir /usr/local/mysql
mkdir /usr/local/mysql/data

二、下载 MySQL 安装包

1. 打开 MySQL 官方下载页:点我查看

2. 这里我选择 5.7.44 版本的 MySQL,操作系统类型选择 Source Code(源码)

3. 将下载好的安装包通过 Electerm 远程传送到 Linux 端:

三、编译安装 MySQL

1. 解压 MySQL 安装包,执行如下命令:

1
tar -zxvf mysql-boost-5.7.44.tar.gz

2. 切换到解压后的目录:

1
cd mysql-5.7.44

3. 执行如下命令,配置 MySQL:

1
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_BOOST=boost -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci

4. 编译并安装 MySQL,安装预估需要0.5~2小时左右:

1
make -j$(nproc) && make install

说明:如果安装过程中出现卡死或者系统强制终止,可以按CtrlC终止,然后重新执行上述命令,会接着之前的进度继续安装

5. 给安装好的 MySQL 目录赋予权限:

1
2
3
chown -R root /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
chown -R mysql /usr/local/mysql/data

四、初始化并启动 MySQL

1. 在 /etc 目录下新增一个 my.cnf 的配置文件:

1
vim /etc/my.cnf

2. 复制如下配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
[client]
port=3306
socket=/tmp/mysql.sock

[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
socket = /tmp/mysql.sock
pid-file=/usr/local/mysql/data/mysqld.pid
log-error=/usr/local/mysql/data/error.log

character-set-server=utf8mb4
collation-server=utf8mb4_general_ci

wait_timeout=28800
interactive_timeout=28800

innodb_buffer_pool_size=1G # 根据您的服务器内存大小调整此值
innodb_log_file_size=256M
innodb_flush_method=O_DIRECT

server-id=1
log-bin=/usr/local/mysql/data/mysql-bin.log
expire_logs_days=10
max_binlog_size=100M

skip-name-resolve
max_connections=200
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

slow_query_log=1
slow_query_log_file=/usr/local/mysql/data/slow-query.log
long_query_time=2

# 默认存储引擎
default-storage-engine=INNODB

[mysqldump]
quick
quote-names
max_allowed_packet=16M

[mysql]
default-character-set = utf8mb4

3. 按 I 键进入编辑模式,使用ShiftInsert粘贴上一步代码,效果图如下:

Esc 键退出编辑模式,在左下角输入 :wq 保存并退出。

4. 切换到 /usr/local/mysql 目录下:

1
cd /usr/local/mysql/bin

5. 执行如下命令,初始化 MySQL

1
./mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ --initialize

6. 切换到 /usr/local/mysql/data 目录下,使用 cat 命令查看 error.log 文件,里面可以看到初始化的 MySQL root 用户初始化信息:

1
cat /usr/local/mysql/data/error.log

记录一下这个密码,后续会用到:

7. 将 MySQL 配置为系统服务。在 /usr/lib/systemd 目录下新建一个 mysqld.service 服务文件:

1
vim /etc/systemd/system/mysqld.service

8. 复制如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[Unit]
Description=MySQL Server
After=network.target

[Service]
ExecStart=/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf
ExecStop=/usr/local/mysql/bin/mysqladmin --defaults-file=/etc/my.cnf shutdown
Restart=on-failure
User=mysql
Group=mysql
Environment="LD_LIBRARY_PATH=/usr/local/mysql/lib"

[Install]
WantedBy=multi-user.target

9. 按 I 键进入编辑模式,使用ShiftInsert粘贴上一步代码,效果图如下:

Esc 键退出编辑模式,在左下角输入 :wq 保存并退出。

10. 重新加载 systemd 配置以识别新的服务单元文件:

1
systemctl daemon-reload

11. 启动 MySQL 服务:

1
systemctl start mysqld

12. 查看 MySQL 服务运行状态:

1
systemctl status mysqld

MySQL 服务正常运行,按Q键退出:

13. 切换到 /usr/local/mysql/bin 目录下:

1
cd /usr/local/mysql/bin

14. 使用 root 用户登录 MySQL,密码用前面初始化生成的密码:

1
./mysql -uroot -p密码

效果图如下,root 用户登录成功:

15. 此时我们还不能正常使用 MySQL ,因为我们需要将 root 用户重置一下密码,这里为了方便记忆,我将 root 密码设置为123456(出于安全考虑,实际生产环境中请将 root 用户密码设置越复杂越好):

1
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

16. 刷新一下权限:

1
FLUSH PRIVILEGES;

17. 执行如下命令,重新登录 root 用户:

1
exit
1
./mysql -uroot -p

此时输入前面设置过的新密码(密码不在命令行显示),如果登录成功,说明 root 用户密码已经成功修改:

五、配置 MySQL 环境变量(可选)

将 MySQL 的可执行文件路径添加到 PATH 环境变量,可以直接运行如mysql、mysqldump等命令,无需输入完整路径,从而简化命令行操作和脚本编写。

1. 编辑 /etc/profile 文件:

1
vim /etc/profile

2. 复制如下内容:

1
export PATH=$PATH:/usr/local/mysql/bin

3. 按 I 键进入编辑模式,使用ShiftInsert在当前文件末尾粘贴上一步代码,效果图如下:

Esc 键退出编辑模式,在左下角输入 :wq 保存并退出。

4. 让上述环境变量生效,执行如下命令:

1
source /etc/profile

5. 后续我们就可以在任意目录下使用 mysql -uroot -p 命令登录到 root 用户了。

六、远程访问 MySQL

远程登录 MySQL 允许你通过网络从任何地方访问和管理数据库,这不仅提升了工作的灵活性,比如随时随地进行数据操作和管理,对于学习和实际开发而言,这是非常实用的功能。默认情况下,MySQL 的 root 用户只能在本地访问,接下来我们将 root 设置成可以远程登录。

1. Linux 开放3306端口:

  • CentOS
1
2
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
  • Ubuntu/Debian
1
2
ufw enable
ufw allow 3306/tcp

2. 在命令行登录 root 用户:

1
mysql -uroot -p

3. 执行如下 SQL 语句,发现 root 默认情况下只能在本地访问:

1
2
USE mysql;
SELECT User, Host FROM user;

4. 这里我们只需要将 host 改为 % 即可实现远程访问(仅供学习阶段使用)

1
UPDATE user SET host = '%' WHERE user ='root';

5. 刷新一下权限:

1
FLUSH PRIVILEGES;

6. 使用外部工具远程连接 MySQL,这里我使用的是 DBeaver,需要安装的小伙伴,根据自己的操作系统查看安装教程:

Windows macOS
点我查看 点我查看

7. 进入连接页面,按照下图所示操作:

8. 如果出现如下提示弹窗,就说明成功通过 root 用户远程登录到 MySQL 数据库,点击确定:

9. 点击完成,保存数据库链接:

10. 接下来就可以在 DBeaver 中操作数据库了:

七、参考

  1. MySQL 官网说明
  2. CentOS7(Linux)源码安装MySQL5.7.30

MySQL 5.7安装教程(Linux通用版)
https://www.icode504.com/posts/115.html
作者
iCode504
发布于
2025年4月23日
许可协议