91Linux - mysql
type: channel
link: https://91linux.org/tag/mysql/
items: shell脚本监控mysql服务宕机自启
items: centos使用yum安装lamp环境

shell脚本监控mysql服务宕机自启
type: item
date: 2020-04-13T16:07:00+08:00
description: 当服务器内存特别小，往往在网站访问量大的时候就会导致服务器的nginx进程过多，之后导致mysql服务被自动关闭。所以，做了一个脚本，能够自动监控服务器mysql的状态，如果发现进程关闭就自动重启。shell脚本如下：#!/bin/bash checkMysql(){ CMDCHECK=`lsof -i:3306 &>/dev/null` Port="$?" PIDCHECK=`ps aux|grep mysqld|grep -v grep` PID="$?" if [ "$Port" -eq "0" -a "$PID" -eq 0 ];then return 200 else return 500 fi } startMysql(){ /etc/init.d/mysql start } checkMysql if [ $? == 200 ];then echo "Mysql is running..." else startMysql checkMysql if [ $? != 200 ];then while true do killall mysqld [ $? != 0 ] && break sleep 2 done startMysql fi fi 直接复制过去，在服务器上建立一个mysql-listen.sh的文件，然后为这个文件添加可执行权限chmod a+x mysql-listen.sh然后先检查一下这个脚本是否可用，先关闭服务器的mysqlservice mysql stop然后访问你的网址，如果出现数据库连接失败说明数据已经关闭了，然后运行这个脚本bash mysql-listen.sh然后看是否有信息说明服务器已经正在运行mysql且提供一个进程号。我在这个阶段出了错误，首先是没有改权限导致并有没有权限去启动mysql，其次启动mysql的命令在不同服务器上有时候是不一样的，有的是/etc/init.d/mysql start部分的可能是systemctl start mysql接下来需要让这个脚本隔一段时间自动运行。使用crontab -e在最后一行补上*/5 * * * * bash /root/mysql-listen.sh这里/5中的5 是指5分钟一次。 后面是4个代表小时，日，月，星期。最后是你脚本的路径。保存后退出。这样就会每隔5分钟，执行一次检测mysql的脚本。

centos使用yum安装lamp环境
type: item
date: 2020-04-13T11:58:00+08:00
description: yum安装方便，快捷，能够快速解决包依赖的问题，但是没有源码安装的配置过程可以进行自定义参数设定，总而言之yum还是比较适合新手的。本篇文章lamp使用：centos，httpd，mysql5.5，php5一、Linux我们选择centos，目前centos6和centos7还是用的比较多的。二、apache安装：yum install -y httpd httpd-devel三、mysql5.5安装：默认使用安装的mysql不是5.5版本的，我们需要增加两个新的repocentos6： rpm -Uvh http://mirror.steadfast.net/epel/6/i386/epel-release-6-8.noarch.rpm rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpmcentos7： rpm -Uvh http://mirror.steadfast.net/epel/7/x86_64/e/epel-release-7-9.noarch.rpm rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm查看一下是不是有mysql 5.5了yum --enablerepo=remi,remi-test list mysql mysql-server安装mysql5.5yum --enablerepo=remi,remi-test install mysql mysql-server启动mysql5.5centos6: /etc/init.d/mysqld startcentos7: systemctl start mysqld设置开机启动centos6: chkconfig --levels 345 mysqld oncentos7: systemctl enable mysqld修改一下mysql的root用户密码mysqladmin -u root password [your_password_here]为指定数据库，指定用户配置指定客户端（IP）远程访问本示例的配置参数如下DB_NAME = testdb USER_NAME = testdb_user REMOTE_IP = 10.0.15.1 PASSWORD = password001 PERMISSIONS = ALL 创建数据库 webdbmysql> CREATE DATABASE testdb;创建用户webdb_usermysql> CREATE USER 'testdb_user'@'10.0.15.1' IDENTIFIED BY 'password001';授权mysql> GRANT ALL ON testdb.* TO testdb_user@'10.0.15.1';重载权限表mysql> FLUSH PRIVILEGES;centos6配置防火墙开启3306端口：vi /etc/sysconfig/iptables 在COMMIT之前加入以下内容:-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT 重启Iptables:service iptables restartcentos7配置防火墙开启3306端口：firewall-cmd --add-port=3306/tcp --permanent firewall-cmd --reload 在客户机上测试远程访问数据库:mysql -h dbserver_name_or_ip_address -u webdb_user -p webdb 四、php5安装默认安装的版本太低了，所以用以下办法来安装1.检查当前安装的PHP包yum list installed | grep php如果有安装的PHP包，先删除他们yum remove php.x86_64 php-cli.x86_64 php-common.x86_64 php-gd.x86_64 php-ldap.x86_64 php-mbstring.x86_64 php-mcrypt.x86_64 php-mysql.x86_64 php-pdo.x86_64 2.Centos 5.X rpm -Uvh http://mirror.webtatic.com/yum/el5/latest.rpmCentOs 6.x rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpmCentOs 7.X rpm -Uvh https://mirr…