MariaDB在Debian上的权限如何设置
导读:在 Debian 上设置 MariaDB 权限的完整步骤 一 基础安全与初始化 安装并启动服务: 执行:sudo apt update && sudo apt install mariadb-server -y 检查状态...
在 Debian 上设置 MariaDB 权限的完整步骤
一 基础安全与初始化
- 安装并启动服务:
- 执行:
sudo apt update & & sudo apt install mariadb-server -y - 检查状态:
sudo systemctl status mariadb(应显示 active/running)
- 执行:
- 运行安全初始化脚本,按提示完成:
- 执行:
sudo mysql_secure_installation - 建议选择:设置/确认 root 密码、删除匿名用户、禁止 root 远程登录、移除测试库、重载权限表
- 说明:Debian 12 上常见为使用 unix_socket 认证保护本地 root,若选择设置密码,后续可用密码登录
- 执行:
二 创建用户与授予权限
- 登录数据库:
sudo mysql -u root -p - 常用授权范式(按需选择其一或组合):
- 为应用创建最小权限用户(推荐)
- 创建数据库:
CREATE DATABASE appdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - 创建用户:
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'StrongPass!'; - 授予权限:
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON appdb.* TO 'appuser'@'localhost';
- 创建数据库:
- 只读账号:
GRANT SELECT ON appdb.* TO 'reader'@'localhost' IDENTIFIED BY 'R0Pass!';
- 允许远程应用连接(不建议对 root 开放远程):
CREATE USER 'appuser'@'%' IDENTIFIED BY 'StrongPass!';GRANT ALL PRIVILEGES ON appdb.* TO 'appuser'@'%';
- 使权限生效:
FLUSH PRIVILEGES;
- 为应用创建最小权限用户(推荐)
- 说明:MariaDB 的账户由“用户名+主机”共同确定,
'root'@'localhost'与'root'@'%'是不同账户;生产环境不建议开放 root 远程访问
三 远程访问与防火墙
- 修改绑定地址(仅当需要远程访问时):
- 编辑:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf - 在
[mysqld]段设置:bind-address = 0.0.0.0 - 重启服务:
sudo systemctl restart mariadb
- 编辑:
- 防火墙放行 3306 端口(如使用 UFW):
sudo ufw allow 3306/tcp - 远程连接测试:
mysql -h < 服务器IP> -u appuser -p - 安全建议:优先使用 SSH 隧道 或 内网/VPC 访问;若必须公网,限制来源 IP、使用强密码/证书并仅授予必要权限
四 常用维护与排错
- 查看用户与主机:
SELECT user, host FROM mysql.user; - 查看某用户权限:
SHOW GRANTS FOR 'appuser'@'localhost'; - 撤销权限:
REVOKE ALL PRIVILEGES ON appdb.* FROM 'appuser'@'localhost';(随后FLUSH PRIVILEGES;) - 修改密码(示例):
ALTER USER 'appuser'@'localhost' IDENTIFIED BY 'NewStrongPass!'; - 忘记 root 密码的恢复思路(维护窗口内操作):
- 停止服务:
sudo systemctl stop mariadb - 以跳过权限检查方式启动:
sudo mysqld_safe --skip-grant-tables --skip-networking & - 登录并修改密码:
mysql→ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewRootPass!';→FLUSH PRIVILEGES; - 关闭安全模式并重启:
sudo mysqladmin shutdown→sudo systemctl start mariadb
- 停止服务:
- 配置修改后未生效多为未重启或缓存未刷新,执行
sudo systemctl restart mariadb与FLUSH PRIVILEGES;
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: MariaDB在Debian上的权限如何设置
本文地址: https://pptw.com/jishu/773827.html
