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

MySQL安装脚本最佳实践的更多相关文章

  1. [转帖]12条用于Linux的MySQL/MariaDB安全最佳实践

    12条用于Linux的MySQL/MariaDB安全最佳实践 2018-01-04 11:05:56作者:凉凉_,soaring稿源:开源中国社区 https://ywnz.com/linuxysjk ...

  2. MySQL安装脚本0104-亲试ok

    #!/bin/bash export host_ip=192.168.7.79 export password=123456   echo '#1.取master主机ip的后三位作为master的se ...

  3. Shell脚本最佳实践

    Shell脚本最佳实践 0. 编码.缩进.文件命名和权限设置等 使用utf-8编码: 统一使用tab缩进或空格缩进,不要混用: 文件名以.sh结尾,并且统一风格: 添加可执行权限: chmod +x ...

  4. (转)Amazon Aurora MySQL 数据库配置最佳实践

    转自:https://zhuanlan.zhihu.com/p/165047153 Amazon Aurora MySQL 数据库配置最佳实践 AWS云计算 ​ 已认证的官方帐号 1 人赞同了该文章 ...

  5. MySQL · 答疑解惑 · MySQL 锁问题最佳实践

    http://mysql.taobao.org/monthly/2016/03/10/ 前言 最近一段时间处理了较多锁的问题,包括锁等待导致业务连接堆积或超时,死锁导致业务失败等,这类问题对业务可能会 ...

  6. MySQL锁问题最佳实践

    最近一段时间处理了较多锁的问题,包括锁等待导致业务连接堆积或超时,死锁导致业务失败等,这类问题对业务可能会造成严重的影响,没有处理经验的用户往往无从下手.下面将从整个数据库设计,开发,运维阶段介绍如何 ...

  7. Mysql安装脚本

    Mysql PS:要先看懂脚本在复制粘贴运行脚本,每个人的环境不一样 #/bin/bash #--------变量 #num=` + ` now_lujing=`pwd` #------------- ...

  8. Zabbix3.0安装部署最佳实践

    Zabbix介绍 1.1zabbix 简介 Zabbix 是一个高度集成的网络监控解决方案,可以提供企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收 ...

  9. 解开发者之痛:中国移动MySQL数据库优化最佳实践(转)

    开源数据库MySQL比较容易碰到性能瓶颈,为此经常需要对MySQL数据库进行优化,而MySQL数据库优化需要运维DBA与相关开发共同参与,其中MySQL参数及服务器配置优化主要由运维DBA完成,开发则 ...

随机推荐

  1. it做形式主语的句子

    1. it was considerate of you to visit my mother every day and (to) bring me your notes to help me wi ...

  2. Nuget 打包 for .Net Standart project

    Create .NET Standard packages with Visual Studio 2015 Publishing packages nuge.exe 放在项目目录中 nuget spe ...

  3. tcpdump使用方法

    TcpDump可以将网络中传送的数据包完全截获下来提供分析.它支持针对网络层.协议.主机.网络或端口的过滤,并提供and.or.not等逻辑语句来帮助你去掉无用的信息. 工作中使用tcpdump命令抓 ...

  4. 页面中,禁止html内容被选择

    1.通过css的方式 *{ moz-user-select: -moz-none; -moz-user-select: none; -o-user-select:none; -khtml-user-s ...

  5. BioConda--转载

    1. Conda安装 如BioConda官网[1]所说,BioConda需要Conda安装环境,如果你使用过Anaconda python安装环境,那么你已经有了Conda安装环境,否则,最好的办法是 ...

  6. 用Github做一个静态网页(GithubPages)

    一.新建一个仓库(new). 二.命名Repository name为:(名字).github.io(一定要有.github.io). 三.勾选Initialize this repository w ...

  7. 【log4net】配置文件解释

    ASP.NET MVC 1.web.config: <configSections> <section name="log4net" type="log ...

  8. 设计模式(三)Singleton Pattern单例设计模式

    1.饿汉式 public class SingletonDemo { private static SingletonDemo s=new SingletonDemo(); private Singl ...

  9. java扫描文件夹下面的所有文件(递归与非递归实现)

    java中扫描指定文件夹下面的所有文件扫描一个文件夹下面的所有文件,因为文件夹的层数没有限制可能多达几十层几百层,通常会采用两种方式来遍历指定文件夹下面的所有文件.递归方式非递归方式(采用队列或者栈实 ...

  10. 力扣 (LeetCode)657. 机器人能否返回原点

    在二维平面上,有一个机器人从原点 (0, 0) 开始.给出它的移动顺序,判断这个机器人在完成移动后是否在 (0, 0) 处结束. 移动顺序由字符串表示.字符 move[i] 表示其第 i 次移动.机器 ...