MySQL自动化安装脚本

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 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

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
14天前
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
121 61
|
3天前
|
安全 关系型数据库 MySQL
CentOS7仅安装部署MySQL80客户端
通过上述步骤,你可以在CentOS 7上成功安装并配置MySQL 8.0客户端。这个过程确保你能够使用MySQL客户端工具连接和管理远程的MySQL数据库,而不需要在本地安装MySQL服务器。定期更新MySQL客户端可以确保你使用的是最新的功能和安全修复。
36 16
|
13天前
|
NoSQL 关系型数据库 Redis
《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
59 14
|
10天前
|
关系型数据库 MySQL 应用服务中间件
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
46 7
|
15天前
|
安全 关系型数据库 MySQL
Windows Server 安装 MySQL 8.0 详细指南
安装 MySQL 需要谨慎,特别注意安全配置和权限管理。根据实际业务需求调整配置,确保数据库的性能和安全。
80 9
|
9天前
|
Web App开发 数据采集 JavaScript
Chrome浏览器实例的TypeScript自动化脚本
Chrome浏览器实例的TypeScript自动化脚本
|
3月前
|
机器学习/深度学习 人工智能 运维
构建高效运维体系:从自动化到智能化的演进
本文探讨了如何通过自动化和智能化手段,提升IT运维效率与质量。首先介绍了自动化在简化操作、减少错误中的作用;然后阐述了智能化技术如AI在预测故障、优化资源中的应用;最后讨论了如何构建一个既自动化又智能的运维体系,以实现高效、稳定和安全的IT环境。
91 4
|
3月前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
76 4
|
2月前
|
机器学习/深度学习 运维 监控
智能化运维:从自动化到AIOps的演进之路####
本文深入探讨了IT运维领域如何由传统手工操作逐步迈向高度自动化,并进一步向智能化运维(AIOps)转型的过程。不同于常规摘要仅概述内容要点,本摘要将直接引入一个核心观点:随着云计算、大数据及人工智能技术的飞速发展,智能化运维已成为提升企业IT系统稳定性与效率的关键驱动力。文章详细阐述了自动化工具的应用现状、面临的挑战以及AIOps如何通过预测性分析和智能决策支持,实现运维工作的质变,引领读者思考未来运维模式的发展趋势。 ####
|
2月前
|
机器学习/深度学习 数据采集 人工智能
智能化运维:从自动化到AIOps的演进与实践####
本文探讨了智能运维(AIOps)的崛起背景,深入分析了其核心概念、关键技术、应用场景及面临的挑战,并对比了传统IT运维模式,揭示了AIOps如何引领运维管理向更高效、智能的方向迈进。通过实际案例分析,展示了AIOps在不同行业中的应用成效,为读者提供了对未来智能运维趋势的洞察与思考。 ####
115 1