赞
踩
电力行业,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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。