在ubuntu无root权限下安装mysql,解决缺少libaio问题

前言

在有root权限的情况下,安装mysql是很简单的:

# centos
	yum -y install mysql-community-server
# ubuntu
	sudo apt install mysql-server

但实验室的服务器(ubuntu)通常没有root权限,需要通过源码安装mysql。现有的教程基本上都卡在了缺少libaio这一步。以下是亲测有效的解决方案。

在ubuntu无root权限下安装mysql

1. 下载并解压 mysql 安装包

目录:/home/project/tools
网址:https://downloads.mysql.com/archives/community/
在这里插入图片描述
选择所需的mysql版本,这里选择的是 mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz,在Download 按钮处右键复制链接即可。
然后在终端运行:

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz

解压:

tar -zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz

把解压后的文件夹重命名为 mysql:

mv mysql-5.7.21-linux-glibc2.12-x86_64 mysql

2. 编写 my.cnf 配置文件

进入 mysql 目录,创建并编写 my.cnf 文件:

cd mysql
vim my.cnf

插入以下内容:

[client]
port=3306
socket=/home/project/tools/mysql/mysql.sock

[mysqld]
port=3306
basedir=/home/project/tools/mysql
datadir=/home/project/tools/mysql/data
pid-file=/home/project/tools/mysql/mysql.pid
socket=/home/project/tools/mysql/mysql.sock
log_error=/home/project/tools/mysql/error.log
server-id=100
# 设置大小写不敏感
lower_case_table_names=1

3. 安装 mysql

进入 bin 目录:

cd bin

运行并修改 mysqld 文件:

./mysqld \ --defaults-file=/home/oper/mysql/my.cnf \ --initialize \ --user=mysql \

此时可能会报错:./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
在这里插入图片描述
也就是缺少 libaio,这在有 root 权限时很好解决,只需执行 sudo apt-get install libaio1。在没有 root 权限时就需要手动安装并配置。
(1)下载 libaio 安装包
在 mysql 目录下运行以下指令,下载 libaio-0.3.109-13.el7.x86_64.rpm

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/libaio-0.3.109-13.el7.x86_64.rpm

在这里插入图片描述

(2)解压 libaio 安装包
非 root 用户只能用rpm2cpio解压:

rpm2cpio libaio-0.3.109-13.el7.x86_64.rpm |cpio -idvm

在这里插入图片描述
(3)修改软连接
进入 lib64 目录查看连接情况:

cd lib64
ll

在这里插入图片描述
可见,ibaio.so.1的软链接默认指向 /lib64/libaio.so.1.0.1,需要修改为指向 /home/project/tools/mysql/lib64/libaio.so.1.0.1:

ln -snf /home/project/tools/mysql/lib64/libaio.so.1.0.1 libaio.so.1

再次 ll 查看软连接:
在这里插入图片描述
(4)修改环境配置
进入用户主目录,新建配置文件 .bash_profile

cd ~
vim .bash_profile

在配置文件中插入以下内容(添加 LD_LIBRARY_PATH、新增一条指向 mysql/bin 的路径):

# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
     . ~/.bashrc
fi
# User specific environment and startup programs

PATH=$PATH:$HOME/project/tools/mysql/bin
export LD_LIBRARY_PATH=$HOME/project/tools/mysql/lib64
export PATH=$PATH

执行配置文件:

source .bash_profile

终端输入 env 查看当前的环境变量,发现 LD_LIBRARY_PATH 和 PATH 已修改(PATH 新增了最后一个冒号后面的路径):
在这里插入图片描述
在这里插入图片描述
(5)再次尝试安装 mysql

cd project/tools/mysql/bin
./mysqld \ --defaults-file=/home/oper/mysql/my.cnf \ --initialize \ --user=mysql \

无返回任何结果且无报错,此时 mysql 以安装成功。

4. 启动 mysql

依次执行以下命令,没有报错:

./mysqld_safe --defaults-file=/home/project/tools/mysql/my.cnf --user=mysql &

另起一终端,能监听 3306 端口,表示启动成功:

cd /home/project/tools/mysql
netstat -tln | grep 3306

5. 登录 mysql 并修改密码

查看初始密码,初始密码在 mysql 目录下的 error.log 文件。此处密码为lwen8bwZ8j,c:
在这里插入图片描述

cat error.log | grep root@localhost

登录,输入初始密码:

mysql -u root -p -S /home/project/tools/mysql/mysql.sock

登录成功后,输入以下命令修改密码:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');	--设置登录密码为123456
flush privileges;

6. 开启远程访问

使用第三方工具连接 mysql 数据库时,需要提前开启 mysql 的远程访问限制。
在 mysql 界面中切换至 mysql 数据库,查看用户认证信息:

use mysql
select User,authentication_string,Host from user;

在这里插入图片描述
可见,这里 localhost 的访问权限。
要允许其他地址的主机访问 mysql,就要修改权限。此处密码是123456,实际根据自己的来,% 代表所有主机,也可以具体到 ip 地址:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';	--允许其他主机访问
flush privileges;

再次查表可以发现多了个用户,表示成功开启远程访问,可以使用工具远程连接:

select User,authentication_string,Host from user

在这里插入图片描述
至此,mysql 已安装完成!

参考

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值