在 Debian 上设置 MariaDB 权限的完整步骤
一 基础安全与初始化
sudo apt update && sudo apt install mariadb-server -ysudo systemctl status mariadb(应显示 active/running)sudo mysql_secure_installation二 创建用户与授予权限
sudo mysql -u root -pCREATE 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!';CREATE USER 'appuser'@'%' IDENTIFIED BY 'StrongPass!';GRANT ALL PRIVILEGES ON appdb.* TO 'appuser'@'%';FLUSH PRIVILEGES;'root'@'localhost' 与 'root'@'%' 是不同账户;生产环境不建议开放 root 远程访问三 远程访问与防火墙
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf[mysqld] 段设置:bind-address = 0.0.0.0sudo systemctl restart mariadbsudo ufw allow 3306/tcpmysql -h <服务器IP> -u appuser -p四 常用维护与排错
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!';sudo systemctl stop mariadbsudo mysqld_safe --skip-grant-tables --skip-networking &mysql → ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewRootPass!'; → FLUSH PRIVILEGES;sudo mysqladmin shutdown → sudo systemctl start mariadbsudo systemctl restart mariadb 与 FLUSH PRIVILEGES;