以下是我自己没事写的一个mysql安装脚本,主要是针对单机mysql5.7自动安装的,自己测试没啥问题。
哪位有需要可以拿去用,如果应用中有什么问题,可以留言给我。或者哪位觉得我的脚本有需要修改的地方,也请不吝赐教。
运行环境 centos7.1
#!/bin/bash install_pre='/usr/local/mysql' data_dir='/data' log_dir='/log' enable_systemd=1 src_dir=/home mysql_ver='mysql-5.7.23' mysql_down_url='https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.23.tar.gz' mysql_tar_name=`echo $mysql_down_url|awk -F/ '{print $NF}'` install_rep="$src_dir/install_mysql.rep" password=111111 # install mysql commpile tools yum install -y cmake gcc-c++ ncurses-devel perl-Data-Dumper boost boost-doc boost-devel if [ $? -eq 0 ];then echo "install mysql commpile tools success!" else echo "maybe some tools install error!" fi #create mysql user and mysql group id mysql if [ $? -ne 0 ];then groupadd -r mysql && useradd -r -g mysql -s /bin/nologin if [ $? -eq 0 ];then echo "user mysql created!">>"$install_rep" fi else echo "user mysql have existed">>"$install_rep" fi [ ! -d $install_pre ] && mkdir "$install_pre" [ ! -d $data_dir ] && mkdir "$data_dir" chown -R mysql:mysql "$install_pre" chown -R mysql:mysql "$data_dir" #wget mysql source file cd /home/ wget $mysql_down_url tar -zxf "$mysql_tar_name" cd "$mysql_ver" [ ! -d project ] && mkdir project if [ -d project ];then cd project else echo "project directory is not create!">>"$install_rep" fi cmake .. -DSMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data -DSYSCONFDIR=/etc -DDFEAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=al l -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DWITH_MYISAM_STORAGE_ENGING=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAG E_ENGINE=1 -DWITH_SYSTEMD=1 -DWITH_BOOST="$src_dir/$mysql_ver/boost" if [ $? -eq 0 ];then echo "cmake action have success!" make&&make install else exit 1 fi [ ! -d /var/run/mysqld/ ] && mkdir /var/run/mysqld && chown -R mysql:mysql /var/run/mysqld [ ! -d /usr/local/mysql/run/ ] && mkdir /usr/local/mysql/run && chown -R mysql:mysql /usr/local/mysql/run cd "$install_pre" [ ! -d log ] && mkdir log && chown -R mysql:mysql log bin/mysqld --initialize --user=mysql --basedir="$install_pre" --datadir="$data_dir" >>"$install_rep" if [ $? -eq 0 ];then echo "mysql have initialed!" else echo "mysql initialization have error!" fi cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system systemctl enable mysqld.service systemctl restart mysqld.service port=`netstat -an |grep 3306|awk '{print $4}'|awk -F: '{print $NF}' ` if [ $port -eq 3306 ];then echo "mysql service is start!" >>"$install_rep" fi tmp_passwd=`grep 'A temporary password' "$install_pre/log/alert.log" |awk -F: '{print $NF}'` echo "$tmp_passwd" >>"$install_rep" "$install_pre/bin/mysql" -uroot -p"$tmp_passwd" --connect-expired-password -D mysql -e "alter user root@'localhost' identified by '"$password"'" "$install_pre/bin/mysql" -uroot -p"$password" -D mysql -e "show tables" if [ $? -eq 0 ];then echo "root password have changed!">>"$install_rep" else echo "root password change error!">>"$install_rep" fi
转载于:https://blog.51cto.com/13598601/2299621