linux一鍵部署mysql

一、概要

安裝的mysql爲5.7.22版本,直接在服務器上創建一個 installmysql.sh,把下面的腳本直接copy進去,直接執行 installmysql.sh即可。注意看一下腳本里面的數據庫密碼,需要修改的話可以直接修改腳本。

二、安裝腳本

#!/bin/bash
function mysql_check() {
echo "開始檢測是否存在Mysql目錄......"
if [ -d /usr/local/mysql ]; then
echo "目錄存在,退出安裝" || exit 126
else
echo "通過檢測,進行下一步"
fi
echo "開始檢測是否存在Mysql進程......"
ps -ef | grep mysql | grep -v "grep" | grep -v "/bin/bash" >> /dev/null
if [ $? -eq 0 ];then
echo "你已經安裝了Mysql並且程序已經啓動了" || exit 126
else
echo "通過檢測,進行下一步"
fi
}
function package_download() {
echo "開始檢測下載目錄....."
if [ -d /root/Downloads ]; then
echo "已存在下載目錄,將直接下載安裝程序" 
cd /root/Downloads
else
echo "開始創建下載目錄"
mkdir /root/Downloads 
cd /root/Downloads
fi
echo "開始下載安裝包......"
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
echo "安裝包下載完畢,開始安裝依賴包......"
yum -y install libaio
echo "安裝包已依賴包都已完成,進行下一步"
} 
function user_add() {
echo "開始檢測Mysql用戶組......"
cat /etc/group | awk -F ":" '{print $1}' | grep ^mysql$ >> /dev/null
if [ $? -eq 0 ]; then
echo "mysql用戶組已存在,即將跳過"
else
groupadd mysql
echo "已添加mysql用戶組"
fi
echo "開始檢測mysql用戶......"
cat /etc/passwd | awk -F ":" '{print $1}' | grep ^mysql$ >> /dev/null
if [ $? -eq 0 ]; then
echo "mysql用戶已存在,即將跳過"
else
useradd -r -g mysql -s /bin/false mysql
echo "已添加mysql用戶"
fi
}
function install_mysql() {
cd /usr/local
echo "進入安裝目錄,正在解壓Mysql安裝包......"
tar -zxvf /root/Downloads/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz >> /dev/null
mv mysql-5.7.22-linux-glibc2.12-x86_64/ mysql
chown -R mysql.mysql mysql
echo "Mysql程序已解壓"
}
function init_mysql() {
echo "開始初始化Mysql數據庫......"
/usr/local/mysql/bin/mysqld --initialize \
--user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --log-error=/tmp/mysql.err
str=`tail -n 1 /tmp/mysql.err`
passwd=`echo ${str:0-12:12}`
echo "用戶名爲:root@localhost"
echo "密碼爲:${passwd}"
}
function start_mysql() {
echo "[mysqld]" > /etc/my.cnf
echo "basedir=/usr/local/mysql/" >> /etc/my.cnf
echo "datadir=/usr/local/mysql/data/" >> /etc/my.cnf
echo "正在複製啓動腳本......"
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
service mysql start
chkconfig mysql on
}
function modify_passwd() {
ln -s /usr/local/mysql/bin/mysql /usr/bin
str=`tail -n 1 /tmp/mysql.err`
passwd=`echo ${str:0-12:12}`
mysql -uroot -p$passwd --connect-expired-password -e "alter user user() identified by '123456'"
}
function modify_cnf() {
echo "開始修改配置文件......"
echo "[mysql]" > /etc/my.cnf
echo "user = 'root'" >> /etc/my.cnf
echo "password = '123456'" >> /etc/my.cnf
echo "host = 'localhost'" >> /etc/my.cnf
echo "socket=/usr/local/mysql/mysql.sock" >> /etc/my.cnf
echo "" >> /etc/my.cnf
echo "[mysqld]" >> /etc/my.cnf
echo "character_set_server=utf8" >> /etc/my.cnf
echo "basedir=/usr/local/mysql/" >> /etc/my.cnf
echo "datadir=/usr/local/mysql/data/" >> /etc/my.cnf
echo "socket=/usr/local/mysql/mysql.sock" >> /etc/my.cnf
echo "skip-name-resolve" >> /etc/my.cnf
echo "innodb_file_per_table=1" >> /etc/my.cnf
echo "max_connections=1024" >> /etc/my.cnf
echo "wait_timeout=300" >> /etc/my.cnf
echo "interactive_timeout=300" >> /etc/my.cnf
echo "back_log=300" >> /etc/my.cnf
echo "server-id=1" >> /etc/my.cnf
echo "log-bin=/usr/local/mysql/data/saic-binlog" >> /etc/my.cnf
echo "binlog_format=ROW" >> /etc/my.cnf
echo "sync_binlog=1" >> /etc/my.cnf
echo "innodb_support_xa = 1" >> /etc/my.cnf
echo "table_open_cache=256" >> /etc/my.cnf
echo "thread_cache_size=16" >> /etc/my.cnf
echo "thread_stack=512K" >> /etc/my.cnf
echo "query_cache_size=128M" >> /etc/my.cnf
echo "query_cache_limit=4M" >> /etc/my.cnf 
echo "binlog_row_image=minimal" >> /etc/my.cnf
echo "innodb_buffer_pool_dump_at_shutdown=1" >> /etc/my.cnf
echo "innodb_rollback_on_timeout=on" >> /etc/my.cnf
echo "innodb_flush_log_at_trx_commit=2" >> /etc/my.cnf 
echo "expire_logs_days=7" >> /etc/my.cnf
echo "sort_buffer_size=256K" >> /etc/my.cnf
echo "join_buffer_size=256K" >> /etc/my.cnf
echo "symbolic-links=0" >> /etc/my.cnf 
echo "" >> /etc/my.cnf
echo "[mysqld_safe]" >> /etc/my.cnf
echo "log-error=/usr/local/mysql/data/mysqld.log" >> /etc/my.cnf
echo "pid-file=/usr/local/mysql/data/mysqld.pid" >> /etc/my.cnf
echo "" >> /etc/my.cnf
echo "[mysqldump]" >> /etc/my.cnf
echo "user = 'root'" >> /etc/my.cnf
echo "password = '123456'" >> /etc/my.cnf
echo "host = 'localhost'" >> /etc/my.cnf
echo "socket=/usr/local/mysql/mysql.sock" >> /etc/my.cnf
}
function restart_mysql() {
echo "開始重新啓動Mysql......"
service mysql restart
mysql
}
mysql_check && sleep 2
package_download && sleep 2
user_add && sleep 2
install_mysql && sleep 2
init_mysql && sleep 2
start_mysql && sleep 2
modify_passwd && sleep 2
modify_cnf && sleep 2
restart_mysql

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章