1. Linux环境下MySQL 5.7安装部署全指南
在Linux服务器上部署MySQL数据库是后端开发者和运维工程师的必备技能。不同于Windows环境下的图形化安装,Linux环境下需要完全通过命令行完成,这对新手来说可能有些挑战。本文将手把手带你完成MySQL 5.7.38在64位Linux系统上的完整安装和配置过程,包含大量实际运维中的经验技巧。
2. 准备工作与环境检查
2.1 系统环境确认
在开始安装前,首先要确认系统环境是否符合要求。执行以下命令检查系统位数:
getconf LONG_BIT如果返回64,则表示系统是64位架构。MySQL 5.7.38需要64位系统支持,32位系统需要选择其他版本。
注意:虽然MySQL 5.7也提供32位版本,但在生产环境中强烈建议使用64位系统,以获得更好的性能和内存支持。
2.2 清理旧版本MySQL
如果系统上已经安装过MySQL,建议先彻底卸载旧版本,避免冲突:
# 检查是否已安装MySQL rpm -qa | grep mysql # 如果存在旧版本,使用以下命令卸载 sudo yum remove mysql-server mysql-client mysql-common sudo rm -rf /var/lib/mysql sudo rm -rf /etc/my.cnf3. MySQL安装包获取与解压
3.1 下载MySQL社区版
访问MySQL官方归档下载页面:
https://downloads.mysql.com/archives/community/选择版本5.7.38,操作系统为Linux - Generic,下载对应的压缩包:
mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz提示:生产环境建议下载带
-glibc2.12的版本,因为它兼容大多数现代Linux发行版。
3.2 上传并解压安装包
将下载的压缩包上传到服务器的/usr/local目录,这是Linux下安装本地软件的常规位置。
使用以下命令解压:
tar -xvf mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz解压完成后,重命名目录为mysql,便于后续操作:
mv mysql-5.7.38-linux-glibc2.12-x86_64 mysql4. 创建MySQL系统用户和组
4.1 创建专用用户和组
为MySQL创建专用系统用户是个好习惯,可以提高安全性:
# 创建mysql用户组 groupadd mysql # 创建mysql用户并加入mysql组 useradd -r -g mysql mysql-r参数表示创建系统用户,这类用户通常没有登录shell。
4.2 设置目录权限
创建数据存储目录并设置正确的权限:
# 在MySQL安装目录下创建data目录 mkdir /usr/local/mysql/data # 将整个MySQL目录的所有权赋予mysql用户 chown -R mysql:mysql /usr/local/mysql/重要:确保data目录为空,这是初始化MySQL的关键前提。
5. 配置MySQL参数文件
5.1 编辑my.cnf配置文件
MySQL的主要配置文件是/etc/my.cnf,使用vi编辑器创建或修改它:
vi /etc/my.cnf5.2 推荐的基础配置
以下是适用于大多数开发环境的配置模板:
[mysqld] port=3306 basedir=/usr/local/mysql datadir=/usr/local/mysql/data max_connections=200 max_connect_errors=10 character-set-server=utf8mb4 default-storage-engine=INNODB default_authentication_plugin=mysql_native_password [mysql] default-character-set=utf8mb4 [client] port=3306 default-character-set=utf8mb4配置说明:
utf8mb4字符集支持完整的Unicode,包括emoji表情max_connections设置最大连接数,根据服务器内存调整mysql_native_password是5.7默认的认证插件
6. 初始化MySQL系统数据库
6.1 执行初始化命令
进入MySQL的bin目录,执行初始化:
cd /usr/local/mysql/bin ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --initialize6.2 记录初始密码
初始化完成后,会在data目录下生成系统数据库,并在日志中显示root用户的临时密码:
[Note] A temporary password is generated for root@localhost: JqwkR2j&g8a?务必记下这个密码,首次登录MySQL时需要它。如果丢失,需要删除data目录重新初始化。
7. 启动MySQL并完成初始设置
7.1 启动MySQL服务
使用提供的启动脚本启动MySQL:
/usr/local/mysql/support-files/mysql.server start验证服务是否正常运行:
ps -aux | grep mysql应该能看到mysqld进程正在运行。
7.2 修改root密码
使用临时密码登录并修改root密码:
/usr/local/mysql/bin/mysql -u root -p输入临时密码后,执行:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; FLUSH PRIVILEGES;安全建议:生产环境密码应包含大小写字母、数字和特殊字符,长度至少12位。
7.3 配置远程访问
如果需要从其他机器访问,需要授权远程连接:
USE mysql; UPDATE user SET host='%' WHERE user='root'; FLUSH PRIVILEGES;安全警告:生产环境不建议直接开放root远程访问,应该创建专用用户并限制IP。
8. 设置系统服务与开机启动
8.1 创建服务软链接
将MySQL添加到系统服务:
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql8.2 配置开机启动
chmod +x /etc/init.d/mysql chkconfig --add mysql chkconfig --level 2345 mysql on验证配置:
chkconfig --list mysql应该看到2-5级别都是on。
9. 防火墙配置与连接测试
9.1 开放MySQL端口
如果系统防火墙开启,需要允许3306端口:
firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload9.2 测试远程连接
从客户端机器测试连接:
mysql -h 服务器IP -u root -p10. 常见问题与解决方案
10.1 初始化失败问题
如果初始化时出现错误,检查:
- data目录是否为空且权限正确
- 是否有足够的磁盘空间
- 系统内存是否足够(至少1GB)
10.2 启动时报错
常见启动错误及解决方法:
Can't connect to local MySQL server: 检查是否已有mysqld进程运行Table 'mysql.plugin' doesn't exist: 可能是初始化不完整,删除data目录重新初始化
10.3 性能调优建议
生产环境应考虑调整以下参数:
innodb_buffer_pool_size: 设置为可用内存的50-70%innodb_log_file_size: 建议256M或更大max_connections: 根据应用需求调整
11. 后续维护建议
安装完成后,建议:
- 定期备份数据库
- 设置监控检查MySQL运行状态
- 考虑配置主从复制提高可用性
- 定期检查错误日志
/usr/local/mysql/data/hostname.err
MySQL 5.7是个非常稳定的版本,适合大多数生产环境。通过本文的详细步骤,你应该已经成功在Linux上部署了MySQL服务。如果在实际操作中遇到任何问题,可以检查MySQL的错误日志获取更详细的诊断信息。