无root权限情况下 普通用户一键安装mysql8.0.27

电力行业,linux服务器基本不给root权限,安全加固或者整改都会要求禁用root,所以一般应用的安装应该尽量使用非root用户来部署mysql数据库

我的大致步骤就是下载官方mysql对应generic的安装包解压,然后进入解压目录,基于当前目录创建初始化脚本,配置my.cnf文件,执行初始化建库,登录root改密。脚本如下:

wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
xz  -c -d mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz  |tar xf -
cd mysql-8.0.27-linux-glibc2.12-x86_64
# 清理重建数据 日志 临时目录
rm -rf ./data/* ./logs/* ./tmp/*
mkdir data logs tmp

# 创建配置文件my.cnf
cat <<EOF>my.cnf
[mysqld]
port=3306
basedir=$(pwd)
datadir=$(pwd)/data
socket=$(pwd)/mysql.sock

[client]
socket=$(pwd)/mysql.sock
[mysql]
socket=$(pwd)/mysql.sock
[mysqladmin]
socket=$(pwd)/mysql.sock
[mysqldump]
socket=$(pwd)/mysql.sock
EOF
ln -f $(pwd)/my.cnf ~/.my.cnf

# 创建启动脚本
cat <<EOF>start.sh
#!/bin/bash
base=$(pwd)
source ~/.bashrc
cd \${base}
nohup ./bin/mysqld_safe --defaults-file=\${base}/my.cnf --user=eapp --basedir=\${base} --datadir=\${base}/data --log-error=\${base}/logs/err.log --socket=\${base}/mysql.sock 2>&1 &
EOF

# 创建停止脚本
cat <<EOF>stop.sh
#!/bin/bash
base=$(pwd)
source ~/.bashrc
cd \${base}
./bin/mysqladmin -uroot -p shutdown
EOF

# 授权脚本可执行权限
chmod 0777 start.sh  stop.sh

# 初始化建库 -I 参数是创建随机密码,注意观察终端数据。也可以替换成 --initialize-insecure 这样就不会创建随机密码。
./bin/mysqld --defaults-file=$(pwd)/my.cnf  --initialize-insecure --console --tmpdir=$(pwd)/tmp  --pid-file=$(pwd)/mysql.pid  --socket=$(pwd)/mysql.sock

# 启动数据库
./start.sh

# 登录数据库并修改密码为123456,如果用的-I参数初始化,则需要加上-p输入终端打印的随机密码。这里加上sleep 3 是为了防止上面库还没启动就执行登录操作了,会提示登录失败
sleep 3
./bin/mysql -uroot <<EOF
show databases;
alter user user() identified by '123456';
EOF

# 登录测试
./bin/mysql -uroot -p123456 <<EOF
select 1;
EOF

# 停止数据库
./stop.sh

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值