您的位置:首页 > 运维架构 > Shell

shell 之 mysql安装脚本

2011-08-03 09:47 471 查看
此文为mysql 服务器安装脚本。

#!/bin/bash

#ver 0.2

#by zm 2011/04/23

#安装 mysql_server;

#注意!!

#参数解释

#

# CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors \

# -fno-exceptions -fno-rtti -fomit-frame-pointer -ffixed-ebp" // 如果是Inter处理器,使用pgcc提高1%性能

#

#

# --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock // 使用unix套接字链接提高7.5%性能,所以在windows下mysql性能肯定不如unix下面

# --with-client-ldflags=-all-static

# --with-mysqld-ldflags=-all-static //-static 13%,静态链接提高13%性能

#

# --with-readline 从“行”上面读取

#

# --with-charset=utf8 指定缺省字符集

#

# --with-collation=utf8_general_ci 指定缺省排序方式

#

# --with-extra-charsets=complex 安装所有字符,有这个就足够了

#

# --with-extra-charsets=all 指定安装扩展字符集

#

# --enable-local-infile 指定允许本地导入文件

#

# --enable-thread-safe-client 指定线程安全模式

#

# --enable-assembler 允许使用汇编模式(优化性能)

#

# --with-big-tables 指定支持超大表

#

# --without-debug 去除诊断模式,如果用--with-debug=full编译,大多数查询慢20%

#

#变量

mysql_cnf_dir=/etc/my.cnf

mysql_dir=/usr/local/mysql

os_type=`uname`

user=`grep 'mysql' /etc/passwd | wc -l`

###mysql_server

#check os

if [ $os_type != "Linux" ];then

echo "the script for linux only!"

exit 1

fi

#check mysql user and group

if [ $user = 0 ];then

useradd -s /sbin/nologin mysql

echo "useradd mysql !"

fi

#

if [ ! -f "$mysql_cnf_dir" ] || [ ! -d "$mysql_dir" ];then

tar zxf mysql*.tar.gz

cd mysql*/

#

CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti -fomit-frame-pointer -ffixed-ebp" \

./configure --prefix=/usr/local/mysql --enable-assembler \

--with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static \

--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock \

--with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=all \

--with-readline --enable-local-infile --enable-thread-safe-client \

--with-big-tables --without-debug

make

make install

#configure file

cp support-files/my-large.cnf /etc/my.cnf

cp support-files/mysql.server /etc/init.d/mysqld

chmod +x /etc/init.d/mysqld

cd ../

rm -rf mysql*/

#install_mysql_db

mysql_var=`ls -l $mysql_dir/var/mysql | grep '^d' | wc -l`

if [ "$mysql_var" = 0 ];then

chow -R mysql.mysql $mysql_dir/var

chow -R mysql.mysql $mysql_dir/tmp

$mysql_dir/bin/mysql_install_db --user=mysql

else

echo "mysql_install_db already installed !"

fi

#check !

ld_so_conf=`cat /etc/ld.so.conf | grep mysql | wc -l`

profile_mysql_bin=`cat /etc/profile | grep mysql | wc -l`

if [ -f "$mysql_cnf_dir" ] || [ -d "$mysql_dir" ];then

echo "ok!"

#

if [ $ld_so_conf = 0 ];then

echo "export PATH=\$PATH:/usr/local/mysql/bin" >> /etc/profile

source /etc/profile

fi

#

if [ $profile_mysql_bin = 0 ];then

echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf

ldconfig

fi

#

else

echo "error! can't install mysql_server please check ! Will now out of the script!"

exit 1

fi

###else

else

echo "mysql_server already installed!"

#

fi

附件:http://down.51cto.com/data/2358659
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息