02、初级DBA必会的基础环环境搭建

手动二进制部署

1.下载安装包并解压
cd /usr/src
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz
解压
xz -d mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz
tar xvf mysql-8.0.25-linux-glibc2.12-x86_64.tar
mv mysql-8.0.25-linux-glibc2.12-x86_64 /usr/local/mysql

2.用户和目录创建,创建MySQL用户
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
创建相关目录
mkdir /data/mysql/ -p
mkdir /data/mysql/{binlog,data,log,tmpdir,conf} -p
修改属主
chown -R mysql:mysql /data/mysql/
chown -R mysql:mysql /usr/local/mysql

3.增加配置文件
vim /data/mysql/conf/my.cnf

4.初始化并获取临时密码
/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/conf/my.cnf --user=mysql --initialize
grep "password" /data/mysql/log/mysql.err

5.启动MySQL
首先配置启动脚本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/
编辑 vim /etc/init.d/mysql.server
datadir=/data/mysql/data
confdir=/data/mysql/conf
找到
$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &
修改成
$bindir/mysqld_safe --defaults-file=$confdir/my.cnf --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &
找到
      --datadir=*)  datadir=`echo "$arg" | sed -e 's/^[^=]*=//'`
修改成
      --datadir=*)  datadir="/data/mysql/data/"
重新加载服务配置
systemctl daemon-reload
启动MySQL
service mysql start

6.增加环境变量
source /etc/profile
加入
MYSQL_HOME=/usr/local/mysql
PATH=$PATH:$MYSQL_HOME/bin
export PATH MYSQL_HOME

7.登录并修改密码
mysql -uroot -p'j#D_tdy.p0tT'
alter user user() identified by 'haohao';

8.关闭mysql
mysqladmin -S /tmp/mysql.sock -p shutdown

使用 Shell 编写自动部署 MySQL 脚本

#!/bin/bash

# 解压
if [  -d "/usr/local/mysql" ];then
  echo "/usr/local/mysql文件夹已经存在,请确定是否安装了MySQL"
  exit
fi
echo "正在解压压缩包"
tar xf mysql-8.0.25-linux-glibc2.12-x86_64.tar
mv mysql-8.0.25-linux-glibc2.12-x86_64 /usr/local/mysql
echo "压缩包解压完毕"

# 创建MySQL相关目录
if [ -d "/data/mysql/" ];then
  echo "/data/mysql/文件夹已经存在,请确定是否安装了MySQL"
  exit
fi
mkdir /data/mysql/{binlog,data,log,tmpdir,conf} -p




# 判断是否有MySQL进程
mysql_pid=`ps -ef |grep mysqld |wc -l`


if [ $mysql_pid -eq 1 ];then
     echo "没有MySQL进程在运行"
else
    echo "有MySQL进程在运行,请检查"
    exit
fi

# 创建MySQL用户
mysql_user=`cat /etc/passwd |grep -w mysql|wc -l`

if [ $mysql_user -eq 1 ];then

    echo "MySQL用户已经存在"

else

    echo -e "MySQL用户不存在,开始添加MySQL用户"
    groupadd mysql
    useradd -g mysql mysql
    echo -e "添加MySQL用户成功"

fi

# 修改权限
chown -R mysql:mysql /data/mysql/
chown -R mysql:mysql /usr/local/mysql

# 增加配置文件
cp ./my.cnf /data/mysql/conf/

# 初始化
echo -e "开始初始化"
/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/conf/my.cnf --user=mysql --initialize

#判断初始化是否成功
mysql_init=`cat /data/mysql/log/mysql.err |grep -i "root@localhost:"|wc -l`
if [ $mysql_init -eq 1 ];then
  echo "mysql 初始化成功"
else
  echo "mysql 初始化失败"
  exit
fi

# 获取临时密码
temp_pwd=$(grep 'temporary password' /data/mysql/log/mysql.err)
pwd=${temp_pwd##* }
echo "临时密码是:${pwd}"

# 配置启动脚本
if [ ! -f "/etc/init.d/mysql.server" ];then
  cp mysql.server /etc/init.d/ -rf
  chmod 700 /etc/init.d/mysql.server
fi


# 启动MySQL
/etc/init.d/mysql.server start


#增加环境变量
mysql_path=`grep 'export PATH=$PATH:/usr/local/mysql/bin' /etc/profile|wc -l`
if [ $mysql_path -eq 0 ];then
    echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
    source /etc/profile
fi

#通过临时密码登录MySQL,并修改密码
mysql -uroot -p${PWD} --conn
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

共勉浩浩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值