学习Ubuntu MariaDB权限设置,能快速提升数据库管理技能吗?这样的方法高效吗?

更新于
2026-08-12 14:29:16
9阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

在使用 Ubuntu 上的 MariaDB 时许多管理员都会遇到安装不完整、权限不对齐还有远程访问被拒绝等痛点。下面按步骤拆解常见难题,并给出一套高效的方法,方便你提高数据库管理技能。按理说,

一、基础准备与安装

如果你刚接触 MariaDB。要确认程序已更新而且安装了服务器和客户端:

学习Ubuntu MariaDB权限设置,能快速提升数据库管理技能吗?这样的方法高效吗?
sudo apt update
sudo apt install mariadb-server mariadb-client

说到常见痛点,“apt 安装后提示缺少依赖”。这通常是因为软件源没有同步。怎么说呢,执行 sudo apt update 再重试即可。

二、开启服务并设置开机自启

安装完成后启动 MariaDB 并让其随程序自动启动:

sudo systemctl start mariadb
sudo systemctl enable mariadb

如果看到 Unit mariadb.service not found. 错误,请检查 /etc/systemd/system/mariadb.service.d/override.conf 是否存在。

1. 登录 MariaDB 控制台

Mysql 客户端默认以 root 使用者登录,但在 Ubuntu 上 root 默认使用插件 unix_socket,需要先切换密码或使用 sudo 登录:

# 用程序使用者身份直接登录
sudo mysql -u root
# 或者改为传统密码验证
sudo mysql_secure_installation

2. 防火墙允许 MySQL 访问

If you are using UFW:

# 开放默认端口3306
sudo ufw allow mysql/tcp
# 或者指定 IP 范围。例如仅允许内部网 IP
sudo ufw allow from 192.168.0.0/24 to any port 3306 proto tcp

三、文件程序与权限配置

Mysql 数据目录默认位于 /var/lib/mysql。确保目录归属正确,以防止因权限导致的数据读写失败:

学习Ubuntu MariaDB权限设置,能快速提升数据库管理技能吗?这样的方法高效吗?
# 修正所有权
sudo chown -R mysql:mysql /var/lib/mysql
# 确认权限至少是750
find /var/lib/mysql -type d -exec chmod 750 {} \;其实,find /var/lib/mysql -type f -exec chmod 640 {} \;

四、使用者管理与权限授予

Mysql 权限最关键的是"谁能做什么"

A. 创建新使用者并授予特定数据库权限

# 创建使用者,仅限本机连接,并设置密码
CREATE USER 'alice'@'localhost' IDENTIFIED BY 'StrongPass!23',# 授予 SELECT 与 INSERT 权限到指定数据库
GRANT SELECT,INSERT ON mydb.* TO 'alice'@'localhost';FLUSH PRIVILEGES;

B. 授予全局管理员权限

# 给某使用者全局 ALL 权限,并可授予他人其他使用者权限
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;按理说,FLUSH PRIVILEGES;不过,

C. 撤销或删除使用者的权限/账号

  • 撤销单条权限:
  • # 撤销所有对 mydb 的 SELECT 与 INSERT 权限
    REVOKE SELECT。INSERT ON mydb.* FROM 'alice'@'localhost';FLUSH PRIVILEGES;
    
  • 彻底删除账号:
  • DROP USER 'alice'@'localhost';FLUSH PRIVILEGES;

再看注意。直接 DROP USER 会把该账号所有的授权全部消失,请确认无误后再执行。

五、远程访问配置与安全强化

至于痛点。默认只监听本地回环地址,导致外部无法连接。

A. 修改监听地址为全网通用


cat  /dev/null
bind-address = 0.0.0.0
EOF
# 重新启动使改动生效
sudo systemctl restart mariadb
EOF 

B. 强化 root 使用者登录方式

  • 禁用 MySQL root 密码登录,只允许 UNIX socket 验证。
  • 示例命令: ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;
  • 如果需要网络访问。可创建一个专门的 admin 使用者,并赋予必要的特权。

C.FW 调整以支持远程连接


sudo ufw allow from 10.x.x.x/24 to any port 3306 proto tcp
EOF 

六、性能监控与日志排查技巧

  • 查看慢查询日志:

监控实时查询状态:

User Name & Hostname | Process ID | State | Query Time | Info

请根据实际环境替换 php 部分或直接手工执行上述命令。

常见错误排查:

  • * “Access denied for user ‘username’@‘ip’” – 检查 GRANT 是否包含相应 IP; 若使用 '%' 则需确保防火墙已放行; 若使用具体 IP,则必须对应主机地址。老实说,

  • * “Cannot connect to local MySQL server through socket” – 检查服务是否正在运行 并确认 socket 文件位置。
  • * “Error code :2005 database not found” – 确认数据库已创建 且大小写匹配。
  • * “Permission denied reading file” – 检查目录及文件归属是否为 mysql:mysql,且拥有合适读取写入权利。
  • * “MySQL shutdown unexpectedly” – 查看 /var/log/mysql/error.log最常见原因是硬盘空间不足或内存不足导致崩溃。
  • 小结的观点是,快速提高 MariaDB 管理技能

    1️⃣ 先把环境搞定更新 → 安装 → 启动 → 自启 2️⃣ 合理划分账户root 用于维护;业务账户只授必要权限 3️⃣ 文件程序 + SELinux/AppArmor 必须匹配 4️⃣ 防火墙 + bind-address 明确允许哪些 IP 5️⃣ 日志 & 性能监控 成功运维少不了

    掌握以上步骤。你就能从“新手卡壳”迈向“熟练掌控”,在实际项目中迅速定位和处理问题,从而明显提高工作效率。老实说,祝你玩转 MariaDB 🚀

    标签:Ubuntu

    在使用 Ubuntu 上的 MariaDB 时许多管理员都会遇到安装不完整、权限不对齐还有远程访问被拒绝等痛点。下面按步骤拆解常见难题,并给出一套高效的方法,方便你提高数据库管理技能。按理说,

    一、基础准备与安装

    如果你刚接触 MariaDB。要确认程序已更新而且安装了服务器和客户端:

    学习Ubuntu MariaDB权限设置,能快速提升数据库管理技能吗?这样的方法高效吗?
    sudo apt update
    sudo apt install mariadb-server mariadb-client
    

    说到常见痛点,“apt 安装后提示缺少依赖”。这通常是因为软件源没有同步。怎么说呢,执行 sudo apt update 再重试即可。

    二、开启服务并设置开机自启

    安装完成后启动 MariaDB 并让其随程序自动启动:

    sudo systemctl start mariadb
    sudo systemctl enable mariadb
    

    如果看到 Unit mariadb.service not found. 错误,请检查 /etc/systemd/system/mariadb.service.d/override.conf 是否存在。

    1. 登录 MariaDB 控制台

    Mysql 客户端默认以 root 使用者登录,但在 Ubuntu 上 root 默认使用插件 unix_socket,需要先切换密码或使用 sudo 登录:

    # 用程序使用者身份直接登录
    sudo mysql -u root
    # 或者改为传统密码验证
    sudo mysql_secure_installation
    

    2. 防火墙允许 MySQL 访问

    If you are using UFW:

    # 开放默认端口3306
    sudo ufw allow mysql/tcp
    # 或者指定 IP 范围。例如仅允许内部网 IP
    sudo ufw allow from 192.168.0.0/24 to any port 3306 proto tcp
    

    三、文件程序与权限配置

    Mysql 数据目录默认位于 /var/lib/mysql。确保目录归属正确,以防止因权限导致的数据读写失败:

    学习Ubuntu MariaDB权限设置,能快速提升数据库管理技能吗?这样的方法高效吗?
    # 修正所有权
    sudo chown -R mysql:mysql /var/lib/mysql
    # 确认权限至少是750
    find /var/lib/mysql -type d -exec chmod 750 {} \;其实,find /var/lib/mysql -type f -exec chmod 640 {} \;

    四、使用者管理与权限授予

    Mysql 权限最关键的是"谁能做什么"

    A. 创建新使用者并授予特定数据库权限

    # 创建使用者,仅限本机连接,并设置密码
    CREATE USER 'alice'@'localhost' IDENTIFIED BY 'StrongPass!23',# 授予 SELECT 与 INSERT 权限到指定数据库
    GRANT SELECT,INSERT ON mydb.* TO 'alice'@'localhost';FLUSH PRIVILEGES;

    B. 授予全局管理员权限

    # 给某使用者全局 ALL 权限,并可授予他人其他使用者权限
    GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;按理说,FLUSH PRIVILEGES;不过,

    C. 撤销或删除使用者的权限/账号

    • 撤销单条权限:
    • # 撤销所有对 mydb 的 SELECT 与 INSERT 权限
      REVOKE SELECT。INSERT ON mydb.* FROM 'alice'@'localhost';FLUSH PRIVILEGES;
      
    • 彻底删除账号:
    • DROP USER 'alice'@'localhost';FLUSH PRIVILEGES;

    再看注意。直接 DROP USER 会把该账号所有的授权全部消失,请确认无误后再执行。

    五、远程访问配置与安全强化

    至于痛点。默认只监听本地回环地址,导致外部无法连接。

    A. 修改监听地址为全网通用

    
    cat  /dev/null
    bind-address = 0.0.0.0
    EOF
    # 重新启动使改动生效
    sudo systemctl restart mariadb
    EOF 

    B. 强化 root 使用者登录方式

    • 禁用 MySQL root 密码登录,只允许 UNIX socket 验证。
    • 示例命令: ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;
    • 如果需要网络访问。可创建一个专门的 admin 使用者,并赋予必要的特权。

    C.FW 调整以支持远程连接

    
    sudo ufw allow from 10.x.x.x/24 to any port 3306 proto tcp
    EOF 

    六、性能监控与日志排查技巧

    • 查看慢查询日志:

    监控实时查询状态:

    User Name & Hostname | Process ID | State | Query Time | Info

    请根据实际环境替换 php 部分或直接手工执行上述命令。

    常见错误排查:

    • * “Access denied for user ‘username’@‘ip’” – 检查 GRANT 是否包含相应 IP; 若使用 '%' 则需确保防火墙已放行; 若使用具体 IP,则必须对应主机地址。老实说,

  • * “Cannot connect to local MySQL server through socket” – 检查服务是否正在运行 并确认 socket 文件位置。
  • * “Error code :2005 database not found” – 确认数据库已创建 且大小写匹配。
  • * “Permission denied reading file” – 检查目录及文件归属是否为 mysql:mysql,且拥有合适读取写入权利。
  • * “MySQL shutdown unexpectedly” – 查看 /var/log/mysql/error.log最常见原因是硬盘空间不足或内存不足导致崩溃。
  • 小结的观点是,快速提高 MariaDB 管理技能

    1️⃣ 先把环境搞定更新 → 安装 → 启动 → 自启 2️⃣ 合理划分账户root 用于维护;业务账户只授必要权限 3️⃣ 文件程序 + SELinux/AppArmor 必须匹配 4️⃣ 防火墙 + bind-address 明确允许哪些 IP 5️⃣ 日志 & 性能监控 成功运维少不了

    掌握以上步骤。你就能从“新手卡壳”迈向“熟练掌控”,在实际项目中迅速定位和处理问题,从而明显提高工作效率。老实说,祝你玩转 MariaDB 🚀

    标签:Ubuntu