九月资源网-不以盈利为目的,仅仅为个人学习、研究或者欣赏。若未注明来源,请联系添加。如果侵犯到您的版权,请联系删除相关文章。

shell脚本之mysql一键部署(新手简易版)

技术类 Thor 来源:吾爱破解-周遭阿 4周前 (11-03) 22次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

介绍

一个shell脚本 基于虚拟机环境下,进行mysql数据库的一键安装脚本

环境准备

  • vmware15.0.4
  • centos7.9
  • mysql8.0.31

脚本内容

!/bin/bash/

定义变量

mysql=”ps -ef | grep mysql | grep -v grep | wc -l “


mysqlPID=” ps -ef | grep mysql | grep -v grep | awk ‘{print $2}’ ”

查询检测mysql是否运行,如运行则杀掉进程
if [ “$mysql” = 0 ]; then

echo "设备上未运行mysql数据库"

fi

if [ “$mysql” = 1 ]; then kill -9$mysqlPID
fi

删除旧版mysql包

rpm -qa | grep mariadb|xargs rpm -e --nodeps >/dev/null 2>&1
rm -rf /usr/bin/mysql
rm -rf /usr/local/mysql
rm -rf /usr/lib/systemd/system/mysql*

此区域需要根据实际情况进行修改

Path=/test

指定mysql压缩包解压的目录,与PathNAME1相呼应

PathNAME=/test/mysql-8.0.31-el7-x86_64.tar.gz

此路径为mysql tar包路径

PathNAME1=/test/mysql-8.0.31-el7-x86_64

此路径为解压完成的路径,删除mysql用户和组

userdel -r mysql >/dev/null 2>&1
groupdel mysql >/dev/null 2>&1
groupadd mysql >/dev/null 2>&1

解压mysql安装包

tar -zxf $PathNAME -C$Path

将解压的安装包移动到安装目录

mv $PathNAME1 /usr/local/mysql
mkdir /usr/local/mysql/data

创建mysql用户

useradd -r -g mysql -s /bin/false mysql > /dev/null 2>&1

安装目录设置为mysql用户和组所有

chown -R mysql:mysql /usr/local/mysql > /dev/null 2>&1

写入配置文件

echo '[mysqld]

设置3306端口

port=3306

设置mysql的安装目录

basedir=/usr/local/mysql

设置mysql数据库的数据的存放目录

datadir=/usr/local/mysql/data

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
lower_case_table_names=1

允许最大连接数

max_connections=10000

允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统

max_connect_errors=10

服务端使用的字符集默认为UTF8

character-set-server=UTF8MB4

创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

默认使用“mysql_native_password”插件认证

default_authentication_plugin=mysql_native_password
[mysql]

设置mysql客户端默认字符集

default-character-set=UTF8MB4
[client]

设置mysql客户端连接服务端时默认使用的端口

port=3306
default-character-set=UTF8MB4' > /etc/my.cnf

初始化mysql,需记住初始密码

cd /usr/local/mysql/
./bin/mysqld --initialize --console
chown -R mysql:mysql /usr/local/mysql

图片1


将mysql加入系统服务,及使用systemctl管理

echo ‘[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql

PIDFile=/usr/local/mysql/data/mysqld.pid

Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0 #systemd的service超时时间设定 0为不限制

Execute pre and post scripts as root

PermissionsStartOnly=true #以root权限来启动程序

Needed to create system tables
ExecStartPre=/usr/bin/mysqld_pre_systemd
Start main service
ExecStart=/usr/local/mysql/bin/mysqld --daemonize --pid-file=/usr/local/mysql/data/mysqld.pid

注意这里要加上 –daemonize 使进程后台运行

Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql
Sets open_files_limit
LimitNOFILE = 5000

Restart=on-failure

故障时重启

RestartPreventExitStatus=1

PrivateTmp=false' > /usr/lib/systemd/system/mysqld.service

重定向到系统服务目录内

systemctl daemon-reload

刷新系统服务

systemctl enable mysqld.service --now

设置mysql开机自启
设置软连接,可直接命令行mysql进入服务

ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

停止正在运行的mysql,重新启动。

systemctl stop mysqld.service
systemctl start mysqld.service


手动部分

输入mysql -u用户名 -p密码 进入mysql数据库中

mysql -uroot -p'hlafnHntA9(b'

图片2

修改mysql默认的root密码

alter user 'root'@'localhost' identified by 'Zz123456';

添加远程访问用户

CREATE USER 'root'@'%'IDENTIFIED BY 'Zz123456';
grant all privileges on . to 'root'@'%' with grant option;
flush privileges;

使用修改后的mysql进入数据库

mysql -uroot -p'Zz123456'
图片3

成功使用新密码登录mysql数据库
其实可以使用其他工具直接筛选日志的初始密码,截取字段之后定义变量,之后登录使用,这个脚本没那么详细,但是能让刚接触shell的我通俗易懂,简单来说shell是非交互式的操作,省时省力.

图片4

安装目录是/usr/local/mysql 这个路径没有设置变量


本文标题:shell脚本之mysql一键部署(新手简易版)
本文链接:https://www.sir8.cn/531.html
仅供学习交流,禁止商用!
资源来源于网络!
若要求注明来源,请留言或联系站长!
如若侵权,联系站长删除!
都会在看到的第一时间修改!
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址