自动安装mysql脚本
准备: 1)二进制mysql数据库8.0安装软件
2) my.cnf
3) 如下脚本
#!/usr/bin/sh
Data_dir='/usr/local/mydb'
Mysql_dir='/usr/local/mysql'
Log_file='file.log'
Mysql_dir='/usr/local/mysql'
Log_file='file.log'
CHK_DIR()
{
if [ -d $1 ]
then
echo "[ $1 ] Look owner of filedir:";
ls -ld $1
echo "[ $1 ] Look at things in the direcotry:"
ls -l $1
rm -fr $1/*;chmod -R 775 $1;chown mysql.mysql $1;
return 1
else
echo "[ $1 ] Filedir is not exist."
mkdir $1;chmod -R 775 $1; chown mysql.mysql $1;
return 2
fi
}
{
if [ -d $1 ]
then
echo "[ $1 ] Look owner of filedir:";
ls -ld $1
echo "[ $1 ] Look at things in the direcotry:"
ls -l $1
rm -fr $1/*;chmod -R 775 $1;chown mysql.mysql $1;
return 1
else
echo "[ $1 ] Filedir is not exist."
mkdir $1;chmod -R 775 $1; chown mysql.mysql $1;
return 2
fi
}
CHK_USER()
{
id mysql > /dev/null 2>&1;
if [ $? -eq 0 ]
then
echo "mysql account already exists"
else
useradd -m -s /sbin/nologin mysql
echo "create a [mysql] account."
fi
}
{
id mysql > /dev/null 2>&1;
if [ $? -eq 0 ]
then
echo "mysql account already exists"
else
useradd -m -s /sbin/nologin mysql
echo "create a [mysql] account."
fi
}
CHK_USER
CHK_DIR $Data_dir
CHK_DIR $Data_dir
NO=$(ls -l . |grep mysql.*tar.* |wc -l)
if [ $NO -eq 1 ]
then
Name=$(ls -l . |grep mysql.*tar.* |awk '{print $NF}')
mv -f $Name /usr/local/
if [ $? -eq 0 ]
then
cd /usr/local/
tar xf $Name
cd -
else
echo "move file of compress is not success."
fi
else
echo "mysql software of installtion is not exist."
exit 1
fi
if [ $NO -eq 1 ]
then
Name=$(ls -l . |grep mysql.*tar.* |awk '{print $NF}')
mv -f $Name /usr/local/
if [ $? -eq 0 ]
then
cd /usr/local/
tar xf $Name
cd -
else
echo "move file of compress is not success."
fi
else
echo "mysql software of installtion is not exist."
exit 1
fi
Dirname=$(ls -l /usr/local/ |grep "^d.*mysql-.*[1-9]"|awk '{print $NF}')
chown -R mysql.mysql /usr/local/$Dirname
chown -R mysql.mysql /usr/local/$Dirname
if [ -d /usr/local/mysql ]
then
rm -fr /usr/local/mysql && ln -s /usr/local/$Dirname /usr/local/mysql && chown mysql.mysql /usr/local/mysql
else
ln -s /usr/local/$Dirname /usr/local/mysql && chown mysql.mysql /usr/local/mysql
fi
echo "DATA DIRECTORY and HOME DIRECTORY is ready!!!"
then
rm -fr /usr/local/mysql && ln -s /usr/local/$Dirname /usr/local/mysql && chown mysql.mysql /usr/local/mysql
else
ln -s /usr/local/$Dirname /usr/local/mysql && chown mysql.mysql /usr/local/mysql
fi
echo "DATA DIRECTORY and HOME DIRECTORY is ready!!!"
### Pass my.cnf to The etc directory
ls ./my.cnf >/dev/null 2>&1
if [ $? -eq 0 ]
then
cp -f ./my.cnf /etc/my.cnf
else
echo "my.cnf file does not exist,Need to copy it manually"
exit 2
fi
if [ $? -eq 0 ]
then
cp -f ./my.cnf /etc/my.cnf
else
echo "my.cnf file does not exist,Need to copy it manually"
exit 2
fi
### initialized database
#echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mydb > $Log_file 2>&1
tail -20 $Log_file

浙公网安备 33010602011771号