非ROOT用户安装MySQL

本文详细介绍了非ROOT用户在Linux系统上安装MySQL的步骤,包括wget获取安装包、解压缩、使用cmake编译、解决编译错误、安装、配置my.cnf文件、初始化数据库、启动服务以及设置root用户密码等关键操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  LinuxROOT用户安装Mysql

1. 首先wget mysql的安装包mysql-5.1.28-rc.tar.gz5.1版本以前用configure进行编译,5.1之后的版本用cmake进行编译。

   把mysql-5.1.28-rc.tar.gz解压缩

   tar -axvf mysql-5.1.28-rc.tar.gz

2. 进入解压缩后的文件夹 cd mysql-5.1.28-rc

3. 编译 $./configure --prefix=/*要安装的目录/mysql --with-charset=utf8 --with-plugins=innobase

  例:$./configure --prefix=$HOME/mysql  --with-charset=utf8 --with-plugins=innobase

**=================================================**
编译Mysqlconfigure: error: No curses/termcap library found 的错误解决方法
说明 curses/termcap 库没有安装
root安装ncurses(或者编译安装ncurses,然后./configure编译的时候--with指定lib路径)
**=================================================** 

4. $ make

   $ make install

5. 拷贝一份配置文件到mysql的安装目录下并且重命名为my.cnf

   在安装目录下share/mysql/ 下找到my-medium.cnf,,将它拷贝到安装目录并且重命名为my.cnf

6. 修改my.cnf文件

   Socket = /***要安装的目录/mysql/mysql.sock (默认是在 /tmp/mysql.sock 因为我们是普通用户不能够操作/tmp/,mysql.sock这个文件在启动mysql时会自动生成,注意启动时的日志信息,如果报错,查看mysql安装目录下面的var目录里面的报错日志,可发现原因) 

   basedir=/安装的路径/mysql
   datadir=/安装的路径/mysql/var 

7. 初始化数据库表

   安装目录/bin/mysql_install_db --user=mysql --datadir=/安装路径/mysql/var

   例:$./mysql/bin/mysql_install_db --user=mysql --datadir=$HOME/mysql/var

8. 启动mysql服务

   /安装路径/bin/mysqld_safe --defaults-file=/安装路径/my.cnf

   例:$./mysql/bin/mysqld_safe --defaults-file=$HOME/mysql/my.cnf

9. 进入mysql数据库

   /安装路径/bin/mysql -S /安装路径/mysql.sock

   例:$./mysql/bin/mysql -S $HOME/mysql/mysql.sock 或者

        ./mysql/bin/mysql -h '127.0.0.1' -u root -p

10.修改root用户密码

        $./mysql/bin/mysqladmin -h '127.0.0.1' -u root password 123

<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 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值