jumbo安装mysql,监控mysql是否存活

一. jumbo 安装mysql

1. 安装jumbo

bash -c "$( curl http://jumbo.baidu.com/install_jumbo.sh )"; source ~/.bashrc

具体可查看jumbo官方文档,http://jumbo.baidu.com/

2. 清除旧版 mysql (针对之前使用 jumbo 安装过 mysql 的同学)

jumbo remove mysql

务必摆好安装姿势:

清除掉、清除掉、清除掉 jumbo 目录下所有 mysql 残留目录( etc/mysql、share/mysql、var/lib/mysql 、var/run/mysqld ),以及jumbo根路径下的my.cnf。

3. 安装mysql

jumbo install mysql

安装失败,一般情况都是旧版本文件影响,进行步骤 2 即可

4. 配置 mysql

vim ${JUMBO_ROOT}/etc/mysql/my.cnf

自定义配置修改(记得去掉相应配置项的#注符哦!)

1)端口号:

      修改port配置项,默认为3306

2)设置字符集

    [mysqld]下添加

    character_set_server=utf8

    其他参数设置,请同学自行百度.

5. 启动 mysql

sh ${JUMBO_ROOT}/share/mysql/mysql.server start

6.停止 mysql

sh ${JUMBO_ROOT}/share/mysql/mysql.server stop

7. 重启mysql

sh ${JUMBO_ROOT}/share/mysql/mysql.server restart 

8. 设置用户

cd  ${JUMBO_ROOT}/bin/ && mysqladmin -u root password bid123

9. 用户登录

mysql -uroot -pbid123 -P3307

10. 密码重置

    1).在配置文件中 [mysqld] 下添加 skip-grant-tables,保存退出

    2).重启 mysql,执行以下命令:

    mysql

    mysql > use mysql;

    mysql >  update user set password=password('root') where user='root';   
    mysql > flush privileges;
    mysql > exit;

    3).参考步骤 6,停止 mysql 服务

    4).在配置文件中 [mysqld] 下删除 skip-grant-tables,保存退出

    5).参考步骤 5 ,启动 mysql 服务,妥了

11. 开启远程访问权限

进入 mysql 命令行模式

mysql > use mysql;

mysql > update user set host='%' where host='localhost' and user='root';

mysql > grant all privileges on *.* to 'root'@'localhost' identified by 'root';

mysql > flush privileges;

mysql > exit

(以上摘自内网同学总结,同学总结的很好,被我改的有点惨,看到请轻拍)

二. 监控mysql 是否存活

1.  通过端口

 #!bin/bash
 #8307 is port of mysql

ret=`netstat -nlt|grep 8307|wc -l`
echo $ret

if [ "$ret" -eq "0" ] 
then
    yes | rm -r /tmp/
    /home/work/.jumbo/share/mysql/mysql.server restart
else
    echo "Metric is alive"

fi

以上为我的监控方案。

-----------------------------------------------------------------------------------------

网上摘录的总结的较好的:(http://blog.51cto.com/mofansheng/1703285)

监控MySQL服务是否正常,通常的思路为:检查3306端口是否启动,ps查看mysqld进程是否启动,命令行登录mysql执行语句返回结果,php或jsp程序检测(需要开发人员开发程序)等等。

方法1:监听3306端口

1

2

3

4

5

6

7

8

9

10

#!/bin/bash

#written by mofansheng@2015-10-15

port=` netstat  -nlt| grep  3306| wc  -l`

if  [ $port - ne  1 ]

then

  /etc/init .d /mysqld  start

else

  echo  "MySQL is running"

fi

方法2:查看mysqld进程

注意注意:如果使用进程过滤的话,脚本名称如果里面包含mysql的话,脚本执行有坑,切记!!!因为会把脚本也grep了一次,导致结果不准确;

1

2

3

4

5

6

7

8

9

10

11

[root@localhost baby] # cat check_mysql.sh

#!/bin/bash

#written by mofansheng@2015-10-15

process=` ps  -ef | grep  mysql| grep  - v  grep  | wc  -l`

if  [ $process - ne  2 ]

then

  /etc/init .d /mysqld  start

else

  echo  "MySQL is running"

fi

执行结果如下:

[root@localhost baby]# sh check_mysql.sh

Starting MySQL SUCCESS! 

改名之后执行为正常结果:

[root@localhost baby]# mv check_mysql.sh check_db.sh

[root@localhost baby]# sh check_db.sh

MySQL is running

方法3:双保险,进程和端口都成功才算mysql服务正常

1

2

3

4

5

6

7

8

9

10

11

#!/bin/bash

#written by mofansheng@2015-10-15

port=` netstat  -nlt| grep  3306| wc  -l`

process=` ps  -ef | grep  mysql| grep  - v  grep  | wc  -l`

if  [ $port - eq  1 ] && [ $process - eq  2 ]

then

      echo  "MySQL is running"

else

     /etc/init .d /mysqld  start

fi

4:使用客户端登录mysql执行命令,查看返回结果测试服务是否启动,理论上此方法最可靠。

1

2

3

4

5

6

7

8

9

10

11

[root@localhost baby] # cat check_db_client.sh

#!/bin/bash

#written by mofansheng@2015-10-15

mysql -uroot -p123456 -e  "select version();"  &> /dev/null

if  [ $? - ne  0 ]

then

  /etc/init .d /mysqld  start

else

  echo  "MySQL is running"

fi

执行结果如下:

[root@localhost baby]# sh check_db_client.sh

MySQL is running

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值