MySQL安装脚本最佳实践
2018年9月19日
17:01
#!/bin/bash
export host_ip=192.168.7.206
echo '#1.取master主机ip的后三位作为master的server_id'
export host_server_id=`echo $host_ip |awk -F . '{print $4}'`
echo '1.屏蔽当前的MySQL环境'
service mysql stop
rm -f /etc/my.cnf
echo '2.检查并卸载系统中低版本的mysql'
#rpm -e mariadb-libs --nodeps
echo '3.添加用户和组'
rm -rf /home/mysql/
userdel mysql
#groupdel mysql
groupadd mysql
useradd -g mysql mysql
echo '4.创建目录及授权'
rm -rf /data
mkdir -p /data/mysql
mkdir -p /data/my3309/data
mkdir -p /data/my3309/log/iblog
mkdir -p /data/my3309/log/binlog
mkdir -p /data/my3309/log/relaylog
mkdir -p /data/my3309/run
mkdir -p /data/my3309/tmp
chown -R mysql:mysql /data/my3309
chmod -R 755 /data/my3309
echo '5.上传解压软件包'
cd /software
tar zxf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
cd mysql-5.7.23-linux-glibc2.12-x86_64
cp -R * /data/mysql/
chown -R mysql:mysql /data/
echo '6.修改配置文件my.cnf参数'
#手动上传写好的my.cnf配置文件
cp /scripts/my.cnf /etc/
##cp /data/mysql/support-files/my-default.cnf /data/mysql/my.cnf
#chown -R mysql:mysql /data/my3309
#cd /data/my3309/data
#rm -rf *
#cd /data/my3309/log
#rm -f binlog/*
#rm -f iblog/*
#rm -rf relaylog/
#rm -rf slow.log
echo '7.执行MySQL安装脚本'
cd /data/mysql/
bin/mysqld --initialize-insecure --user=mysql --datadir=/data/my3309/data/ --basedir=/data/my3309 #必须到脚本的父目录执行哦
#./scripts/mysql_install_db --defaults-file=/data/mysql/my.cnf --user=mysql --datadir=/data/my3309/data
echo '#1.取master主机ip的后三位作为master的server_id'
export host_server_id=`echo $host_ip |awk -F . '{print $4}'`
#echo $host_server_id
eval sed -i 's/server_id=128/server_id=${host_server_id}/g' /etc/my.cnf
cat /etc/my.cnf |grep server_id
echo '8.修改系统环境变量'
echo "PATH=/data/mysql/bin:\$PATH:/sbin" >> /etc/profile
source /etc/profile
echo '9.自启动脚本'
#cp /data/mysql/my.cnf /etc/my.cnf
cp /data/mysql/support-files/mysql.server /etc/init.d/mysql
sed -i 's#^basedir=#basedir=/data/mysql#g' /etc/init.d/mysql
sed -i 's#^datadir=#datadir=/data/mysql/data#g' /etc/init.d/mysql
sed -i 's#^mysqld_pid_file_path=#mysqld_pid_file_path=/data/my3309/run/mysqld.pid#g' /etc/init.d/mysql
chkconfig --add mysql
/etc/init.d/mysql start
/etc/init.d/mysql stop
service mysql start
echo '10.删除默认匿名账户'
#mysql -h127.0.0.1 -uroot -P3309 -e "flush privileges;"
mysql -uroot -P3309 <<EOF
flush privileges;
update mysql.user set authentication_string='password(123456)' where user='root';
delete from mysql.user where user='';
set old_passwords=0;
create user 'replusr'@'%' identified by '123456';
create user 'root'@'192.168.7.206' identified by '123456';
create user 'root'@'192.168.7.207' identified by '123456';
grant replication slave on *.* to 'replusr'@'%';
grant super on *.* to 'replusr'@'%';
grant all privileges on *.* to 'root'@'%' identified by '&password' with grant option;
update mysql.user set authentication_string='password(123456)' where user='root';
flush privileges;
EOF
service mysql restart
exit
- [转帖]12条用于Linux的MySQL/MariaDB安全最佳实践
12条用于Linux的MySQL/MariaDB安全最佳实践 2018-01-04 11:05:56作者:凉凉_,soaring稿源:开源中国社区 https://ywnz.com/linuxysjk ...
- MySQL安装脚本0104-亲试ok
#!/bin/bash export host_ip=192.168.7.79 export password=123456 echo '#1.取master主机ip的后三位作为master的se ...
- Shell脚本最佳实践
Shell脚本最佳实践 0. 编码.缩进.文件命名和权限设置等 使用utf-8编码: 统一使用tab缩进或空格缩进,不要混用: 文件名以.sh结尾,并且统一风格: 添加可执行权限: chmod +x ...
- (转)Amazon Aurora MySQL 数据库配置最佳实践
转自:https://zhuanlan.zhihu.com/p/165047153 Amazon Aurora MySQL 数据库配置最佳实践 AWS云计算 已认证的官方帐号 1 人赞同了该文章 ...
- MySQL · 答疑解惑 · MySQL 锁问题最佳实践
http://mysql.taobao.org/monthly/2016/03/10/ 前言 最近一段时间处理了较多锁的问题,包括锁等待导致业务连接堆积或超时,死锁导致业务失败等,这类问题对业务可能会 ...
- MySQL锁问题最佳实践
最近一段时间处理了较多锁的问题,包括锁等待导致业务连接堆积或超时,死锁导致业务失败等,这类问题对业务可能会造成严重的影响,没有处理经验的用户往往无从下手.下面将从整个数据库设计,开发,运维阶段介绍如何 ...
- Mysql安装脚本
Mysql PS:要先看懂脚本在复制粘贴运行脚本,每个人的环境不一样 #/bin/bash #--------变量 #num=` + ` now_lujing=`pwd` #------------- ...
- Zabbix3.0安装部署最佳实践
Zabbix介绍 1.1zabbix 简介 Zabbix 是一个高度集成的网络监控解决方案,可以提供企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收 ...
- 解开发者之痛:中国移动MySQL数据库优化最佳实践(转)
开源数据库MySQL比较容易碰到性能瓶颈,为此经常需要对MySQL数据库进行优化,而MySQL数据库优化需要运维DBA与相关开发共同参与,其中MySQL参数及服务器配置优化主要由运维DBA完成,开发则 ...
随机推荐
- ToString()格式和用法大全,C#实现保留两位小数的方法
C,货币,2.5.ToString("C"),¥2.50.D,十进制数,25.ToString("D5"),00025.E,科学型,25000.ToString ...
- Shiro学习笔记四(Shiro集成WEB)
这两天由于家里出了点事情,没有准时的进行学习.今天补上之前的笔记 -----没有学不会的技术,只有不停找借口的人 学习到的知识点: 1.Shiro 集成WEB 2.基于角色的权限控制 3.基于权限的控 ...
- Derek解读Bytom源码-创世区块
作者:Derek 简介 Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom ...
- 4、Python文件对象及os、os.path和pickle模块(0530)
文件系统和文件 1.文件系统是OS用于明确磁盘或分区上的文件的方法和数据结构---即在磁盘上组织文件的方法: 文件系统模块:os 2.计算机文件(称文件.电脑档案.档案),是存储在某种长期储存设备或临 ...
- 如何判断一个js对象是否是Array
经常遇到一个问题,判断某个对象是否为数组类型,在Js中检测对象类型的常见方式有以下: typeof操作符 对于Function.String.Number.Undefined等几种类型的对象来说,几乎 ...
- React Native的键盘遮挡问题(input/webview里)
2017-06-15 1:使用keyVoaidView来解决 注意要设置behavio=“absolute”,哎.记性差 好像拼错了 2:使用下面的代码,监听键盘,然后将webView拉高就可以了 i ...
- 三: 爬虫之selenium模块
一 selenium模块 什么是selenium?selenium是Python的一个第三方库,对外提供的接口可以操作浏览器,然后让浏览器完成自动化的操作. selenium最初是一个自动化测试工具, ...
- SQLServer 中的存储过程中判断临时表是否存在,存在则删除临时表
IF OBJECT_ID('TEMPDB..#BCROSSREFERENCE ') IS NOT NULL DROP TABLE #BCROSSREFERENCE IF OBJECT_ID('TEMP ...
- 3.git、TortoiseGit的安装、仓库的配置教程
参考:https://blog.csdn.net/hc_ttxs/article/details/79375788 引言: Git: 就是最原始的分布式版本控制系统,是开源的. GitHub:与Git ...
- aar的使用(module或者library)
引入: 1. android studio正常的module引用aar文件需要配置如下: ① 在module的build.gradle的android节点下 repositories { flatDi ...