shell解析my.cnf配置文件

my.cnf配置格式如下

vi my.cnf
[client]
port=3306
socket=/tmp/mysql.socket

[mysqld]
port=3306
server-id=1
datadir=/usr/local/mysql/data

[mysqld_safe]
port=3306

more parseMy.sh

#!/bin/bash
cnf=$(cd `dirname $0`;pwd)"/my.cnf"

#得到区块数组
g_sec=(`sed -n ‘/\[*\]/p‘ $cnf |grep -v ‘^#‘|tr -d []`)
#sed -n ‘/\[*\]/p‘ 得到包含[*]的行
#grep -v ‘^#‘ 去掉#打头的行
#tr -d [] 去掉[]
#g_sec=(client mysqld mysqld_safe)

for ((i=0;i<${#g_sec[@]};i++))
do
echo "解析No."$i
sec_name=${g_sec[i]}
g_names=(`sed -n ‘/\[‘$sec_name‘\]/,/\[/p‘ $cnf|grep -Ev ‘\[|\]|^$|^#‘|awk -F ‘=‘ ‘{print $1}‘`)
#sed -n ‘/\[‘$sec_name‘\]/,/\[/p‘ 得到从[$sec_name]到临近[的所有行
#grep -Ev ‘\[|\]|^$|^#‘ 去掉包含[或]的行 去掉空行 去掉#打头的行
#awk -F ‘=‘ ‘{print $1}‘`得到=号前面字符

g_values=(`sed -n ‘/\[‘$sec_name‘\]/,/\[/p‘ $cnf|grep -Ev ‘\[|\]|^$|^#‘|awk -F ‘=‘ ‘{print $2}‘`)
#awk -F ‘=‘ ‘{print $1}‘`得到=号后面字符

for ((j=0;j<${#g_names[@]};j++))
do
echo ${g_names[$j]}" "${g_values[$j]}
done

done

时间: 2024-11-05 16:51:29

shell解析my.cnf配置文件的相关文章

mysql.cnf配置文件详解

Mysql参数优化对于运维来讲,是比较重要的东西,其实这个参数优化,是个很复杂的东西,对于不同的业务系统.网络情况.以及机器硬件配置都有关系,优化不可能一次性完成,需要不断的观察以及调试,才有可能得到最佳效果. mysql.cnf配置文件内容如下: [client]port = 3306socket = /mysql/data/3306/mysql.sock [mysqld]port = 3306socket = /mysql/data/3306/mysql.sock basedir = /my

my.cnf 配置文件参数解释

my.cnf 配置文件参数解释: #*** client options 相关选项 ***# #以下选项会被MySQL客户端应用读取.注意只有MySQL附带的客户端应用程序保证可以读取这段内容.如果你想你自己的MySQL应用程序获取这些值.需要在MySQL客户端库初始化的时候指定这些选项. [client] port = 3309 socket = /usr/local/mysql/tmp/mysql.sock [mysqld] !include /usr/local/mysql/etc/mys

MySql5.6Linux安装后my.cnf配置文件位置

MySql5.6在Linux安装后my.cnf配置文件并不在/etc/下面,而需要从/usr/share/mysql/目录项拷贝一个my-small.cnf文件到/etc/下然后重命名为my.cnf

shell脚本执行及配置文件

linux之shell脚本执行及配置文件 bash脚本执行方法:     1 解释器直接运行         /usr/bin/bash bash FOO.sh     2 使用路径运行脚本(需要有x权限)         chmod +x FOO.sh         /PATH/TO/FOO.sh     3 使用.或source命令执行脚本         . /PATH/TO/FOO.sh         source /PATH/TO/FOO.sh     1,2执行方法和3执行方法的

shell解析命令行的过程以及eval命令

本文说明的是一条linux命令在执行时大致要经过哪些过程?以及这些过程的大致顺序. 1.1 shell解析命令行 shell读取和执行命令时的大致操作过程如下图: 以执行以下命令为例: echo -e "some files:" ~/i* "\nThe date:$(date +%F)\n$name's age is $((a+4))" >/tmp/a.log 假设在执行该命令前,已赋值变量"name=longshuai"和"a=

【mysql案例】mysql5.6.14配置my.cnf多实例,mysql_install_db初始化不读取my.cnf配置文件

1.1.1. mysql5.6.14多实例my.cnf时,初始化不读取my.cnf配置文件 [环境描述] 在多实例配置的/etc/my.cnf环境中,执行mysql_install_db后,启动Mysql报错. [操作步骤] /etc/my.cnf配置文件: [mysqld3307] innodb_data_file_path =ibdata1:1G:autoextend 初始化数据库: [[email protected] home]# mysql_install_db--datadir=/h

17、MySQL生产环境my.cnf配置文件解析

[client] port = 3306    #端口号 socket = /ryzc/mysql/data/mysql.sock         #sock文件路径 [mysqld] port = 3306 socket = /ryzc/mysql/data/mysql.sock                   # 服务端sock文件路径 pid-file        = /ryzc/mysql/data/localhost.pid       # pid文件存放路径 datadir  

Shell基础-环境变量配置文件

source 配置文件 或者 . 配置文件: 把环境变量写入配置文件后,需要用户重新登陆才能生效,而是用source命令,则能直接生效 主要的配置文件: /etc/profile /etc/profile.d/*.sh ~/.bash_profile ~/.bashrc /etc/bashrc 其中/etc/profile /etc/profile.d/*.sh /etc/bashrc 对所有用户都生效 ~/.bash_profile  ~/.bashrc只对当前用户生效 环境变量配置文件调用顺

MySQL读取各个my.cnf配置文件的先后顺序是:

/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf 其他自定义路径下的my.cnf,例如:/data/mysql/yejr_3306/my.cnf 不管是mysqld服务器端程序,还是mysql客户端程序,都可以采用下面两个参数来自行指定要读取的配置文件路径: -defaults-file=#, 只读取指定的文件(不再读取其他配置文件) -defaults-extra-file=#, 从其他优先级更高的配置文件中