关于非root用户的glibc配置

背景:我需要引用glibc.2.23这个库,但是系统环境下的glibc是2.17,我想要仅修改我自己的glibc环境而不影响系统环境以及其他人的使用

安装glibc2.23

这里出现过一些问题,有很多人都已经解决了,我记录的信息在这里

添加我们自己的库

将安装后的文件夹中的lib文件夹中的 cp lib/libm-2.23.so /path/to/lib/libm.so.6
在~/.bash_profile中添加,注意/path/to/lib需要在前面。

export LD_LIBRARY_PATH=/lib:/lib64:/usr/local/lib:/usr/local/lib64
export LD_LIBRARY_PATH=/path/to/lib:$LD_LIBRARY_PATH

此时source ~/bash_profile即可完成库的添加

<think>嗯,用户想在Ubuntu 18.04上以root用户身份安装MySQL,但不要用root权限。我得先理清楚步骤。首先,可能用户需要创建一个有sudo权限的root用户。根据引用[1],Ubuntu 18.04初始服务器设置教程里有相关步骤,所以第一步应该是创建这样的用户。然后安装MySQL通常需要sudo,但用户可能不想用root,所以可能需要通过源码或其他方式安装。不过常规方法还是需要sudo来安装软件包,比如用apt。 看引用[3]提到添加外部存储库,可能涉及使用sudo命令。但用户希望不用root权限,这可能有问题。或者,是否有其他方法,比如使用用户空间安装?比如用源代码编译并指定安装目录到用户主目录下?这样可能不需要root权限,但过程会比较复杂。 另外,引用[2]提到在安装了MySQL、Apache、PHP的服务器上安装Zabbix,但用户可能是在同一台机器上操作,所以可能需要先安装MySQL。但常规安装MySQL会需要sudo,所以用户可能需要寻找替代方法。 或者,是否可以使用容器技术,比如Docker,以root用户运行容器,这样在容器内安装MySQL?但Docker通常也需要sudo权限,除用户被添加到docker组,但这可能也需要管理员权限。 另外,可能还有一种方法是使用MySQL的standalone版本,解压到用户目录,然后配置数据目录和启动。例如,从MySQL官网下载二进制包,解压到用户目录,然后初始化数据库,设置配置文件中的端口、数据目录等,使用特权端口(如3307),然后启动。这样用户就可以在自己的目录下运行MySQL,不需要root权限。但需要检查MySQL的二进制包是否允许这样安装,以及是否有依赖库的问题。 比如步骤可能包括: 1. 下载MySQL社区版的tar包。 2. 解压到用户主目录,比如~/mysql。 3. 配置my.cnf文件,指定basedir、datadir、socket、端口等。 4. 初始化数据库,使用mysqld --initialize --user=username。 5. 启动mysqld_safe,指定配置文件。 但具体步骤需要详细检查,确保路径正确,并且用户有权限读写相关目录。可能还需要设置环境变量,如PATH,以及处理可能的依赖库问题,比如libaio等。 另外,可能需要处理端口问题,因为root用户无法绑定低于1024的端口,所以需要设置MySQL使用如3307端口,并在连接时指定。 总结可能的步骤: 1. 创建有sudo权限的root用户(但用户可能不想用sudo,所以可能需要另一种方式)。 2. 下载MySQL二进制包。 3. 解压到用户目录。 4. 安装依赖库(可能需要sudo,但用户可能无法使用)。 5. 初始化数据库,配置。 6. 启动MySQL服务。 但问题在于,如果用户不能使用任何sudo,那么安装依赖库可能会有困难。例如,libaio1可能需要安装,这需要root权限。所以可能需要预先安装这些依赖,或者用户是否有权限安装到本地目录。 或者,用户是否有其他途径,例如使用AppArmor或其它安全策略来允许root用户运行mysqld? 另外,参考引用[3]中提到使用Galera项目的外部存储库,但添加存储库也需要sudo权限,所以这可能不符合用户需求。 综合来看,可能的解决方案是使用MySQL的二进制包在用户目录下安装,并处理依赖问题。但需要详细步骤,确保用户无需root权限。但实际情况下,某些步骤可能仍需要sudo,比如安装依赖库,或者用户需要管理员预先安装这些依赖。 所以,在回答中,可能需要分两种情况:一种是有sudo权限的root用户,另一种是完全无root权限。但用户的问题可能是后者,但根据引用[1]和[2],可能用户允许使用sudo,但希望以root用户运行MySQL服务。比如,安装MySQL时使用sudo,但配置为以普通用户身份运行。 或者,用户可能误解了安装过程,实际上安装MySQL需要sudo,但运行时的服务可以配置为使用普通用户。例如,安装后修改配置文件,设置user=mysql,并调整数据目录权限,这样服务运行时使用mysql用户,但安装过程仍需要root权限。 但用户的问题可能是在安装阶段不使用root权限,所以常规的apt install mysql-server需要sudo,因此不可行。所以必须找到替代安装方法,如源码编译或使用用户空间包管理器。 因此,回答需要指导用户通过源码安装到用户目录,并处理相关配置,同时指出可能的依赖问题。这可能需要较复杂的步骤,但确实可行。</think>### 分步指南:Ubuntu 18.04root用户安装MySQL #### 1. 创建具有sudo权限的root用户 若尚未创建,需先通过以下命令设置新用户(需root权限执行): ```bash adduser newuser usermod -aG sudo newuser # 添加sudo权限[^1] ``` #### 2. 使用源码编译安装MySQL(无需root权限) 通过以下步骤在用户目录中安装: 1. **下载MySQL二进制包** 访问[MySQL社区版下载页面](https://dev.mysql.com/downloads/mysql/),选择`Linux - Generic`版本(如`mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz`)。 2. **解压到用户目录** ```bash mkdir ~/mysql tar -xvf mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz -C ~/mysql --strip-components=1 ``` 3. **安装依赖库** - 若缺少`libaio1`,需管理员预先安装(需sudo权限): ```bash sudo apt-get install libaio1 # 依赖项[^3] ``` 4. **初始化数据库** ```bash cd ~/mysql ./bin/mysqld --initialize --user=newuser --basedir=$HOME/mysql --datadir=$HOME/mysql/data ``` 初始化后会在日志中生成临时密码,需记录备用。 5. **配置my.cnf文件** 在`~/mysql/my.cnf`中添加: ```ini [mysqld] basedir = /home/newuser/mysql datadir = /home/newuser/mysql/data socket = /home/newuser/mysql/mysql.sock port = 3307 # 避免与系统默认3306冲突 ``` 6. **启动MySQL服务** ```bash ./bin/mysqld_safe --defaults-file=$HOME/mysql/my.cnf & ``` #### 3. 验证安装 ```bash ./bin/mysql -u root -p -S ~/mysql/mysql.sock # 使用记录的临时密码登录 ``` #### 4. 配置环境变量(可选) 在`~/.bashrc`中添加: ```bash export PATH=$HOME/mysql/bin:$PATH export MYSQL_UNIX_PORT=$HOME/mysql/mysql.sock ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值