MySQL二进制一键安装脚本

[root@sc-mysql ~]# cat one_key_binary_install_mysql.sh 
#!/bin/bash

#解压mysql二进制安装包
tar xf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz 

#移动mysql解压后的文件夹到/usr/loacl下改名叫mysql
mv mysql-5.7.34-linux-glibc2.12-x86_64 /usr/local/mysql

#新建组mysql
groupadd mysql

#新建用户mysql 指定shell是/bin/false -r是系统用户 属于mysql组
useradd -r -g mysql -s /bin/false mysql
  
#关闭防火墙并设置开机不启动
service firewalld stop
systemctl disable firewalld

#临时关闭selinux
setenforce 0
#永久关闭selinux
sed -i '/^SELINUX=/ s/enforcing/disabled/' /etc/selinux/config

#新建存放数据的目录
mkdir /data/mysql -p
#修改/data/mysql目录的权限,归mysql用户和mysql组所有,这样mysql用户可以对这个文件夹进行读写了
chown mysql:mysql /data/mysql
#只允许mysql这个用户和mysql组可以访问,其他人都不能访问
chmod 750 /data/mysql

#进入/usr/local/mysql/bin目录
cd /usr/local/mysql/bin

#初始化mysql
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql &>passwd.txt

#让mysql支持ssl方式登录
./mysql_ssl_rsa_setup  --datadir=/data/mysql

#获取临时密码
tem_passwd=$(cat passwd.txt |grep "temporary"|awk '{print $NF}')
#$NF表示最后一个字段
#abc=$(命令) 优先执行命令,然后将结果复制给abc

#修改PATH变量,加入mysql bin目录的路径
export PATH=/usr/local/mysql/bin:$PATH
echo 'PATH=/usr/local/mysql/bin:$PATH' >> /root/.bashrc

#复制support-files里的mysql.server文件到/etc/init.d/目录下叫mysqld
cp ../support-files/mysql.server /etc/init.d/mysqld

#修改/etc/init.d/mysqld脚本文件里的datadir目录的值
sed -i '70c datadir=/data/mysql' /etc/init.d/mysqld

#生成/etc/my.cnf配置文件
cat  >/etc/my.cnf  <<EOF
[mysqld_safe]

[client]
socket=/data/mysql/mysql.sock

[mysqld]
socket=/data/mysql/mysql.sock
port = 3306
open_files_limit = 8192
innodb_buffer_pool_size = 512M
character-set-server=utf8

[mysql]
auto-rehash
prompt=\\u@\\d \\R:\\m  mysql>
EOF

#启动mysqld进程(前面把mysql.server改名为mysqld了)
service mysqld start

#将mysqld添加到linux系统里服务管理名单里
/sbin/chkconfig --add mysqld
#设置mysqld开机启动
/sbin/chkconfig mysqld on

#登录重新设置初始密码为Sanchuang123#
#初次修改密码需要使用--connect-expired-password 选项
#-e 后面接的表示是在mysql里需要执行命令  execute 执行
#set password='Sanchuang123#';  修改root用户的密码为Sanchuang123#
mysql -uroot -p$tem_passwd --connect-expired-password   -e  "set password='Sanchuang123#';"

#检验上一步修改密码是都成功,如果有输出能看到mysql里的数据库,说明成功
mysql -uroot -p'Sanchuang123#' -e "show databases;"



[root@sc-mysql ~]# 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值