Linux如何配置MySQL数据库服务器?

在Linux系统中配置MySQL数据库服务器是搭建动态应用服务的关键步骤,本文将详细从安装、初始化、安全配置到用户管理、参数优化等环节展开说明,帮助用户完成稳定可用的MySQL服务部署。

linux如何配置mysql数据库服务器

安装MySQL服务器

不同Linux发行版的安装命令存在差异,需根据系统选择合适的方式,以下以主流的Ubuntu/Debian和CentOS/RHEL为例:

发行版 安装命令 说明
Ubuntu/Debian sudo apt update && sudo apt install mysql-server 自动安装MySQL服务及依赖,默认配置文件位于/etc/mysql/mysql.conf.d/
CentOS/RHEL sudo yum install mysql-server(CentOS 7+)或sudo dnf install mysql-server(CentOS 8+) 需先启用EPEL源,配置文件路径为/etc/my.cnf/etc/my.cnf.d/

安装完成后,通过systemctl status mysql检查服务状态,若未启动则执行sudo systemctl start mysql并设置开机自启sudo systemctl enable mysql

初始化安全配置

MySQL首次启动后会生成匿名用户和测试数据库,需通过安全脚本加固:

sudo mysql_secure_installation

该交互式脚本将引导完成以下操作:

  1. 设置root密码:输入强密码并确认,避免使用简单组合;
  2. 移除匿名用户:禁止匿名登录,提升安全性;
  3. 禁止root远程登录:限制root仅允许本地连接(如需远程需单独配置);
  4. 移除测试数据库:删除test等默认数据库,避免未授权访问;
  5. 重新加载权限表:使配置立即生效。

用户与权限管理

MySQL通过用户和权限表控制访问,常用操作如下:

  1. 创建用户

    CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'StrongPassword123!';

    其中'app_user'为用户名,'localhost'限制仅本地连接,若需远程可替换为。

    linux如何配置mysql数据库服务器

  2. 授权

    GRANT SELECT, INSERT, UPDATE ON mydb.* TO 'app_user'@'localhost';

    授予app_usermydb数据库所有表的查询、插入、更新权限,表示所有数据库所有表(需谨慎使用)。

  3. 刷新权限

    FLUSH PRIVILEGES;
  4. 查看用户与权限

    SELECT User, Host FROM mysql.user;  -- 查看所有用户
    SHOW GRANTS FOR 'app_user'@'localhost';  -- 查看指定用户权限

配置文件优化

MySQL核心配置文件为my.cnf(Ubuntu)或my.cnf(CentOS),可通过调整参数提升性能,常见优化项如下:

[mysqld]
# 数据存储路径
datadir=/var/lib/mysql
# socket文件路径
socket=/var/run/mysqld/mysqld.sock
# 字符集(推荐utf8mb4)
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
# 缓冲区大小(根据服务器内存调整,建议为内存的50%-70%)
innodb_buffer_pool_size=1G
# 最大连接数
max_connections=200
# 慢查询日志(用于性能排查)
slow_query_log=1
slow_query_log_file=/var/log/mysql/slow-query.log
long_query_time=2

修改后需重启MySQL服务:sudo systemctl restart mysql

防火墙配置

若需远程访问MySQL(默认端口3306),需开放防火墙端口:

linux如何配置mysql数据库服务器

  • CentOS(firewalld)
    sudo firewall-cmd --permanent --add-port=3306/tcp
    sudo firewall-cmd --reload
  • Ubuntu(ufw)
    sudo ufw allow 3306/tcp

测试连接

  1. 本地连接

    mysql -u root -p

    输入root密码后进入MySQL命令行,执行SELECT VERSION();验证安装。

  2. 远程连接
    在客户端工具(如Navicat、DBeaver)中输入服务器IP、端口(3306)、用户名及密码,确保用户已授权远程访问且防火墙放行。

相关问答FAQs

Q1:忘记MySQL root密码怎么办?
A1:可通过跳过权限表重置密码,步骤如下:

  1. 停止MySQL服务:sudo systemctl stop mysql
  2. 跳过权限表启动:sudo mysqld_safe --skip-grant-tables &
  3. 无密码登录:mysql -u root
  4. 执行重置密码SQL(MySQL 5.7+):
    UPDATE mysql.user SET authentication_string=PASSWORD('NewPassword123!') WHERE User='root';
    FLUSH PRIVILEGES;
  5. 正常启动MySQL:sudo systemctl start mysql,使用新密码登录。

Q2:如何允许特定IP远程连接MySQL?
A2:需同时修改用户权限和防火墙配置:

  1. 创建允许远程的用户(或修改现有用户):
    CREATE USER 'remote_user'@'192.168.1.100' IDENTIFIED BY 'RemotePassword123!';
    GRANT ALL PRIVILEGES ON mydb.* TO 'remote_user'@'192.168.1.100';
    FLUSH PRIVILEGES;

    其中168.1.100为允许访问的客户端IP;

  2. 确保MySQL配置文件bind-address设置为0.0.0(允许所有IP连接)或指定IP;
  3. 开放服务器防火墙的3306端口(参考第五部分)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/23004.html

(0)
酷番叔酷番叔
上一篇 2025年9月10日 14:15
下一篇 2025年9月10日 14:29

相关推荐

  • linux下nmon如何分析系统瓶颈

    在Linux系统运维中,快速定位性能瓶颈是保障稳定运行的关键,nmon(Nigel’s Monitor)作为IBM开源的系统性能监控工具,以其轻量级、实时性和全面性成为运维人员的常用选择,它能够同时监控CPU、内存、磁盘、网络等多维度资源,并通过数据记录和可视化报告帮助分析系统瓶颈,本文将详细介绍Linux环境……

    2025年8月27日
    12600
  • Linux触摸屏失灵?一键安装驱动解决

    安装前的准备确认硬件识别终端执行:lsusb # 查看USB触摸设备cat /proc/bus/input/devices | grep -i touch # 检查内核是否识别触摸设备若设备未列出,需检查硬件连接或驱动兼容性(如部分旧设备需内核模块usbtouchscreen),更新系统避免依赖冲突:sudo……

    2025年6月13日
    14100
  • 如何查看Linux操作系统的版本与内核信息?

    在Linux系统中,掌握如何查看系统信息是日常运维、故障排查和性能优化的基础,无论是确认操作系统版本、硬件配置,还是监控资源使用情况,都需要通过特定的命令和工具来实现,本文将详细介绍查看Linux操作系统的各类方法,涵盖基本信息、硬件资源、系统状态等多个维度,帮助用户全面掌握系统查看技能,查看操作系统基本信息操……

    2025年9月30日
    12000
  • 如何在官网下载jdk linux版本

    Oracle官网,导航至JDK下载页面,选择Linux版本并按照提示完成下载和安装

    2025年8月17日
    11500
  • 忘记RHEL密码如何恢复?

    适用场景:RHEL 7/8/9 物理服务器、虚拟机及云实例(需控制台访问权限)物理服务器/本地虚拟机操作流程原理:通过引导加载器进入单用户模式(无需密码的root shell)重启系统在启动界面出现时快速按下 Esc 键(虚拟机)或方向键(物理机)中断引导流程,编辑内核参数在GRUB菜单选中当前内核行按 e 键……

    2025年7月17日
    11600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信