MySQL自动化安装脚本

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 注:因官方MySQL下载较慢,请先自行上传mysql安装包至/usr/local/src目录 #!/bin/bash #This shell script can be used to install mysql instances automatically #Written by LiHui #Version 1.

注:因官方MySQL下载较慢,请先自行上传mysql安装包至/usr/local/src目录

#!/bin/bash

#This shell script can be used to install mysql instances automatically
#Written by LiHui
#Version 1.0

#MySQL Install path 
Install_path=/usr/local/mysql

#MySQL Datadir
Datadir=/data0/mysqldata/3306/data

#Add MySQL user and group 
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql

#Install some packages 
yum -y install cmake gcc gcc-c++ autoconf automake zlib libxml ncurses-devel libmcrypt libtool bison

#本地上传,此部分注释
#downloading MySQL 
#echo "###Downloading MySQL###" 
cd /usr/local/src 
#wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.16.tar.gz

#Install MySQL 
echo "###install MySQL###" 
tar -zxf /usr/local/src/mysql-5.5.24.tar.gz -C /usr/local/src/

cd /usr/local/src/mysql-5.5.24

cmake -DCMAKE_INSTALL_PREFIX=${Install_path} -DINSTALL_DATADIR=$Datadir -DWITH_SERVER_SUFFIX=lihui_edition -DENABLED_LOCAL_INFILE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_READLINE=1 -DWITH_SSL=yes -DWITH_EMBEDDED_SERVER=1 -DWITH_PTHREAD=1 -DMYSQL_USER=mysql -DWITH_MYSQLD_LDFLAGS=-all-static -DWITH_INNOBASE_STORAGE_ENGINE=1 > /usr/home/mysql/mysql_setuplogs_cmake.log 2>&1

make > /usr/home/mysql/mysql_setuplogs_make.log 2>&1 && make install > /usr/home/mysql/mysql_setuplogs_makeinstall.log 2>&1

cd /usr/local/

chown -R mysql:mysql mysql

cp /usr/local/mysql/bin/mysql* /usr/bin/

#Create my.cnf

cat > /etc/my.cnf [client]
port = 3306
socket = /data0/mysqldata/3306/mysql.sock
default-character-set = utf8
#Here follows entries for some specific programs
# The MySQL server
[mysqld]
port = 3306
user = mysql
socket = /data0/mysqldata/3306/mysql.sock
pid-file = /data0/mysqldata/3306/mysql.pid
basedir = /usr/local/mysql
datadir = /data0/mysqldata/3306/data
tmpdir = /data0/mysqldata/3306/tmp
open_files_limit = 10240
server-id = 1423306
lower_case_table_names = 1
character_set_server = utf8
skip-name-resolve
max_connections = 500
max_connect_errors = 100000
max_allowed_packet = 512M
max_heap_table_size = 1024M
max_length_for_sort_data = 4096
back_log=100
interactive_timeout = 600
wait_timeout = 600
default_storage_engine = InnoDB
net_buffer_length = 8K
sort_buffer_size = 2M
join_buffer_size = 4M
read_buffer_size = 2M
read_rnd_buffer_size = 16M
query_cache_size = 128M
query_cache_limit = 2M
query_cache_min_res_unit = 2k
thread_cache_size = 300
table_open_cache = 1024
tmp_table_size = 256M
#*********** Logs related settings ***********
log_bin = /data0/mysqldata/3306/binlog/mysql-bin
binlog_format=row
binlog_cache_size=32m
max_binlog_cache_size=512m
max_binlog_size=512m
long_query_time = 1
log_output = FILE
log_error = /data0/mysqldata/3306/mysql-error.log
slow_query_log = 1
slow_query_log_file = /data0/mysqldata/3306/slow_statement.log
#log_queries_not_using_indexes
general_log = 0
general_log_file = /data0/mysqldata/3306/general_statement.log
expire-logs-days = 14
#*********** MyISAM Specific options ***********
key_buffer_size = 32M
bulk_insert_buffer_size = 32M
myisam_sort_buffer_size = 64M
myisam_max_sort_file_size = 2G
myisam_repair_threads = 1
myisam_recover
#*********** INNODB Specific options ***********
innodb_file_per_table
transaction-isolation = READ-COMMITTED
innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 512M
innodb_data_home_dir = /data0/mysqldata/3306/innodb_ts
innodb_data_file_path = ibdata1:16M:autoextend:max:8192M
innodb_thread_concurrency = 0
innodb_log_buffer_size = 16M
innodb_log_file_size = 256M
innodb_log_files_in_group = 2
innodb_log_group_home_dir = /data0/mysqldata/3306/innodb_log
innodb_flush_log_at_trx_commit = 2
innodb_max_dirty_pages_pct = 80
innodb_lock_wait_timeout = 120
innodb_flush_method=O_DIRECT
[mysqldump]
quick
max_allowed_packet = 512M
[mysql]
no-auto-rehash
prompt="\\u@\\h \\R:\\m:\\s \\d> "
# Remove the next comment character if you are not familiar with SQL
#safe-updates
[myisamchk]
key_buffer_size = 32M
sort_buffer_size = 20M
read_buffer_size = 2M
write_buffer_size = 2M
[mysqlhotcopy]
interactive-timeout
[mysqld_safe]
open-files-limit = 8192
EOF

#Init Database 
cd /data0 
mkdir -p mysqldata/3306 
cd mysqldata/3306
mkdir data binlog tmp innodb_ts innodb_log 
cd /data0
chown -R mysql:mysql mysqldata

/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=${Install_path} --datadir=$Datadir --defaults-file=/etc/my.cnf

#Create mysqld(start|stop|restart|status) scripts 
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld 
chmod +x /etc/init.d/mysqld

#Start mysqld service 
service mysqld start

#Test mysqld service 
service mysqld status | grep "SUCCESS" > /dev/null

if [ $? -eq 0 ];then

echo -e "MySQL install Done,Congratulation!"

fi

#create mysql root password
echo "Create password for user root.Please input new password:"
read password
mysqladmin -uroot password $password -S /data0/mysqldata/3306/mysql.sock

#delete empty password for user
mysql -uroot -p$password -S /data0/mysqldata/3306/mysql.sock mysql -e 'delete from user where password="";'
mysql -uroot -p$password -S /data0/mysqldata/3306/mysql.sock -e 'flush privileges;'
echo "ALL is OK!"

#Stop mysqld service 
service mysqld stop > /dev/null

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
8天前
|
关系型数据库 MySQL Linux
Linux 安装 mysql 【使用 tar.gz | tar.xz安装包-离线安装】
在Linux系统中使用tar.xz压缩包安装MySQL数据库的详细步骤。包括下载MySQL压缩包,解压到指定目录,创建mysql用户和组,设置目录权限,初始化MySQL,配置my.cnf文件,启动服务,以及修改root用户密码。此外,还提供了如何设置Windows远程登录MySQL服务器的方法。
Linux 安装 mysql 【使用 tar.gz | tar.xz安装包-离线安装】
|
4天前
|
运维 Devops jenkins
自动化运维之路:从脚本到DevOps
【9月更文挑战第31天】在数字化时代的浪潮中,运维不再是单纯的系统维护,而是企业竞争力的加速器。本文将带你领略自动化运维的演变历程,从最初的脚本编写到现代DevOps实践的转变,揭示如何通过持续集成和持续交付(CI/CD)实现运维的高效与创新。我们将一起探索工具的选择、流程的优化以及文化的培养,让运维工作变得既简单又强大。
|
5天前
|
数据采集 中间件 关系型数据库
Mac系统通过brew安装mysql5.7后,启动报错的解决办法
Mac系统通过brew安装mysql5.7后,启动报错的解决办法
18 2
|
6天前
|
机器学习/深度学习 人工智能 运维
自动化运维的魔法:如何利用Python脚本提升工作效率
【9月更文挑战第29天】在数字时代的浪潮中,IT运维人员面临着前所未有的挑战和机遇。本文将通过深入浅出的方式,介绍自动化运维的基本概念、核心价值以及使用Python脚本实现自动化任务的方法。我们将从实际案例出发,探讨如何利用Python简化日常的系统管理任务,提高运维效率,并展望自动化运维的未来趋势。无论你是初学者还是有经验的运维专家,这篇文章都将为你开启一扇通往高效工作方式的大门。
10 2
|
5天前
|
运维 监控 jenkins
自动化运维之路:从脚本到工具的演变
【9月更文挑战第29天】在数字化浪潮中,运维不再是简单的服务器管理。本文将带您穿越自动化运维的发展历程,揭示如何通过技术革新提升效率与可靠性。我们将探索自动化工具如何解放双手,实现快速部署、监控和故障恢复,最终达到高效运维的目标。
|
6天前
|
运维 监控 关系型数据库
自动化运维:编写基本的自动化脚本
自动化运维:编写基本的自动化脚本
9 1
|
8天前
|
关系型数据库 MySQL Linux
Linux 安装 mysql【使用yum源进行安装】
这篇文章介绍了在Linux系统中使用yum源安装MySQL数据库的步骤,包括配置yum源、安装MySQL服务、启动服务以及修改root用户的默认密码。
Linux 安装 mysql【使用yum源进行安装】
|
29天前
|
运维 Ubuntu Devops
自动化运维工具的魅力:Ansible入门
【9月更文挑战第5天】在快速变化的IT世界里,自动化运维不再是可选项,而是必需品。Ansible,一款简单却强大的自动化工具,正成为众多DevOps工程师的首选。本文将带你了解Ansible的基本概念、安装步骤以及如何编写简单的Playbook,从而开启你的自动化之旅。
67 36
|
6天前
|
机器学习/深度学习 运维 Cloud Native
构建高效运维体系:从自动化到智能化的演进之路
在当今数字化时代,运维作为信息技术的重要支柱,其效率与创新能力直接关系到企业信息系统的稳定性和业务连续性。本文将探讨如何通过技术手段,实现运维从传统手工操作向自动化、智能化的转变,进而构建一个高效、可靠的运维体系。我们将从自动化工具的应用开始,逐步深入到智能运维的实践,最终展望云原生架构下的运维未来趋势。
|
9天前
|
机器学习/深度学习 人工智能 运维
构建高效运维体系:从自动化到智能化的演进之路
在当今数字化时代,运维作为保障企业IT系统稳定运行的关键环节,正经历着前所未有的变革。本文将探讨如何通过实施自动化和引入智能化技术,构建一个更加高效、可靠的运维体系,以应对日益复杂的业务需求和技术挑战。
21 1
下一篇
无影云桌面