共计 5198 个字符,预计需要花费 13 分钟才能阅读完成。
本篇内容介绍了“MySQL 自动安装脚本分享”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让丸趣 TV 小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
环境要求:centos:6.8
MySQL:5.7.20
MySQL 安装文件名:mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
MySQL 源文件路径:/usr/local/src
MYSQL 脚本文件:/usr/local/src/install_mysql.sh
1、脚本如下:
#/bin/sh
#px 2017-11-29
#mysql install
#email:kitten-pan@163.com 752684428
#version 2.0
#mysql-version mysql5.7.20
source_path=/usr/local/src
install_path=/usr/local/mysql
install_name=mysql-5.7.20-linux-glibc2.12-x86_64
## 检测本机环境
env_fun()
{
echo ============ 检测本机环境,please wait …
username=`cat /etc/passwd |grep mysql|cut -c 1-5`
if [$username = mysql];then
echo MySQL account is exits…
return 10
else
echo mysql account is not exits,ready add…
groupadd mysql
useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql
return 12
fi
}
## 判断 MySQL 是否安装
check_fun()
{
rpm_name=`rpm -aq |grep mysql-server`
echo $rpm_name
if [! $rpm_name];then
echo begin check the source install,please wait for a moment…
if [-d $install_path];then
echo source install is exist,quit…
exit 0
else
echo 本机未安装 MySQL, 稍后为你安装 …
install_fun
op_fun
fi
else
echo -n rpm MySQL 已经安装,是否删除?[yes|no]
read select
if [$select = yes];then
rpm -e $rpm_name –nodeps
rm -rf /var/log/mysqld.log
check_fun
else
exit 0
fi
fi
}
### 安装 MySQL
install_fun()
{
read -p Input a mysql version: -t 30 mysql_version
read -p Input a mysql port: -t 30 mysql_port
read -p Input a mysql_server_id: -t 30 mysql_server_id
cd $source_path echo 解压中,please waiting…
tar -zxvf ${install_name}.tar.gz mv $install_name $install_path
## 创建数据目录
mkdir -pv /data/mysqldata
### 给 MySQL 目录的 MySQL 账号权限
cd /usr/local chown mysql.mysql mysql
chown -R mysql.mysql /data/mysqldata
cd $install_path bin/mysqld –initialize –user=mysql –basedir=/usr/local/mysql –datadir=/data/mysqldata
cd support-files cp -rf mysql.server /etc/init.d/mysqld
sed -i s#datadir\=\/usr\/local\/mysql\/data#\datadir\=\/data\/mysqldata#g /etc/init.d/mysqld
cat /etc/my.cnf EOF
[client]
port = 3309
socket = /tmp/mysql.sock
default-character-set = utf8
[mysqld]
##mysql-version=5.7.20
port = 3309
socket = /tmp/mysql.sock
datadir = /data/mysqldata
basedir = /usr/local/mysql
pid-file = /data/mysqldata/mysqld.pid
user = mysql
server-id = 1
lower_case_table_names = 1
character-set-server = utf8
back_log = 300
max_connections = 1000
max_connect_errors = 6000
open_files_limit = 65535
table_open_cache = 128
max_allowed_packet = 4M
binlog_cache_size = 1M
max_heap_table_size = 8M
tmp_table_size = 16M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
sort_buffer_size = 8M
join_buffer_size = 8M
key_buffer_size = 4M
thread_cache_size = 8
query_cache_type = 0
query_cache_size = 2M
query_cache_limit = 2M
ft_min_word_len = 4
log_bin = mysql-bin
binlog_format = row
expire_logs_days = 30
log-error=/data/mysqldata/mysqld.log
slow_query_log = 1
long_query_time = 1
slow_query_log_file = /data/mysqldata/mysql-slow.log
performance_schema = 0
explicit_defaults_for_timestamp
skip-external-locking
default-time_zone = +8:00
default_storage_engine = InnoDB
innodb_file_per_table = 1
innodb_data_file_path = ibdata1:300M:autoextend
innodb_open_files = 5000
innodb_buffer_pool_size = 2048M
innodb_write_io_threads = 4
innodb_read_io_threads = 8
innodb_thread_concurrency = 0
innodb_purge_threads = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 128M
innodb_log_file_size = 256M
innodb_log_files_in_group = 2
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
bulk_insert_buffer_size = 8M
myisam_sort_buffer_size = 8M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
interactive_timeout = 28800
wait_timeout = 300
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M
EOF
echo export PATH=/$PATH:/usr/local/mysql/bin /etc/profile
echo export MYSQL_PS1= (\u@\h:\p) [\d] /etc/profile
source /etc/profile
service mysqld restart
}
op_fun()
{
chmod 755 /etc/init.d/mysqld
chkconfig –add mysqld
chkconfig –level 345 mysqld on
}
main(){
echo ###==================================================###
echo ###welcome to make install mysql with this script###
echo ###copyright 2013 by px###
echo ###==================================================###
sleep 5
env_fun
re=$?
if [re = 10];then
check_fun
else
check_fun
fi
}
main
exit 0
2、执行自动安装脚本
需要填写 MySQL 的版本信息、端口信息、serverid 信息等
点击 (此处) 折叠或打开
sh install_mysql.sh
###==================================================###
###welcome to make install mysql with this script###
###copyright 2013 by px###
###==================================================###
============ 检测本机环境,please wait …
mysql account is not exits,ready add…
begin check the source install,please wait for a moment…
本机未安装 MySQL, 稍后为你安装 …
Input a mysql version:5.7.20
Input a mysql port:3309
Input a mysql_server_id:1
解压中,please waiting…
3、自动安装完毕 启动
# service mysqld restart
MySQL server PID file could not be found! [FAILED]
Starting MySQL…………. [ OK ]
4、登入 MySQL 修改密码
点击 (此处) 折叠或打开
[root@ct562 mysqldata]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.20-log
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type help; or \h for help. Type \c to clear the current input statement.
(root@localhost:mysql.sock) [(none)]
(root@localhost:mysql.sock) [(none)]
(root@localhost:mysql.sock) [(none)]
(root@localhost:mysql.sock) [(none)]
(root@localhost:mysql.sock) [(none)]
(root@localhost:mysql.sock) [(none)] set password for root@ localhost =PASSWORD(sysdba@321)
“MySQL 自动安装脚本分享”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注丸趣 TV 网站,丸趣 TV 小编将为大家输出更多高质量的实用文章!