MySQL 是一个流行的关系型数据库管理系统(RDBMS),广泛用于各种应用程序中存储和管理数据。通常情况下,MySQL 需要以 root 权限安装和管理,以确保数据库的安全性和稳定性。然而,在某些情况下,出于安全考虑或权限管理的需求,可能需要在非 root 用户下安装 MySQL。
原因:非 root 用户没有足够的权限创建或修改系统文件。
解决方法:
sudo
命令:在需要创建或修改系统文件时,使用 sudo
命令提升权限。sudo
命令:在需要创建或修改系统文件时,使用 sudo
命令提升权限。原因:MySQL 需要以 root 用户启动某些系统服务,如监听端口等。
解决方法:
setcap
命令:为 MySQL 可执行文件添加 CAP_NET_BIND_SERVICE 权限,使其能够以非 root 用户绑定到特权端口(如 3306)。setcap
命令:为 MySQL 可执行文件添加 CAP_NET_BIND_SERVICE 权限,使其能够以非 root 用户绑定到特权端口(如 3306)。以下是一个使用普通用户安装 MySQL 的示例:
# 创建一个新用户
sudo useradd -m mysql
# 切换到新用户
sudo su - mysql
# 下载 MySQL 安装包
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
# 解压安装包
tar -xvf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz -C /opt/
# 创建 MySQL 目录
mkdir /opt/mysql
# 移动解压后的文件到 MySQL 目录
mv /opt/mysql-8.0.26-linux-glibc2.12-x86_64/* /opt/mysql/
# 更改目录权限
chown -R mysql:mysql /opt/mysql
# 初始化 MySQL
cd /opt/mysql
./bin/mysqld --initialize --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data
# 启动 MySQL
./bin/mysqld_safe --user=mysql &
通过以上方法,你可以在非 root 用户下成功安装和运行 MySQL,并解决常见的权限问题。
领取专属 10元无门槛券
手把手带您无忧上云