《复仇者联盟4:终局之战》队长 左手拿盾,右手持锤.
这篇文章发布于 2015年,内容是介绍使用源码方式编译安装 mysql-5.6
,时间回到 2015年,那时候 Docker
还在蓄能阶段没有全面爆发。
业务上云、使用云数据库,也只是刚刚拉开大幕不久,技术人员更多的是尝试IDC机房+云服务方式这种混合方式,即先把一部分业务迁到云上,另一部分业务仍然使用传统IDC托管方式。
那么都 9012 年了源码方式编译安装mysql
过时了吗?谁还自己部署mysql
数据库呢?上云啊、用容器啊、多好多便捷!
没有过时、仍然有效,挨踢圈有一句名言说的好 "没有最好的方案,只有最适合的方案",虽然上云、容器化、微服务化是大势所趋,不过某些场景下还是有源码编译安装的需求。
系统版本: CentOS 7.2 amd64
mysql版本: MySql-5.6.25
脚本依赖: 需要联网 yum 安装 cmake、gcc 等工具。
1. 目录结构
tree ./
./
├── conf
│ └── my.cnf
├── mysql-5.6.25.tar.gz
└── mysql-server.sh
1 directory, 3 files
2. mysql 配置文件
# 示例 2cpu/4GB虚拟机,请根据实际情况配置参数。
awk '!/^(#|$)/' conf/my.cnf
[client]
port = 3306
socket = /tmp/mysql.sock
[mysql]
no-auto-rehash
[mysqld]
user = mysql
port = 3306
socket = /tmp/mysql.sock
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
pid-file = /usr/local/mysql/data/mysql.pid
character_set_server = utf8
skip-name-resolve
long_query_time = 5
slow_query_log = 1
max_connections = 2000
max_connect_errors = 4000
explicit_defaults_for_timestamp = 1
tmp_table_size = 32M
max_heap_table_size = 32M
thread_cache_size = 100
default-storage-engine = INNODB
innodb_flush_log_at_trx_commit = 1
innodb_file_per_table = 1
innodb_buffer_pool_size = 2048M
innodb_log_file_size = 512M
key_buffer_size = 512M
log-bin=mysql-bin
binlog_format = mixed
server-id = 11
sync_binlog = 1
expire_logs_days = 15
[mysqldump]
quick
max_allowed_packet = 32M
1. shell脚本
# 使用脚本完成,mysql 编译、配置、安装步骤。
2. 执行脚本
bash mysql-server.sh
# 耐心等待, 笔者2cpu/4GB虚拟机编译时间大约20分钟左右。
3. 启动服务
/etc/init.d/mysqld start
4. 安全设置
mysql_secure_installation
# 初始root密码为空,需要进行安全配置,按照提示完成配置向导。
5. 验证 mysql
mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 18
Server version: 5.6.25-log Source distribution
Copyright (c) 2000, 2015, Oracle. All rights reserved.
# ...省略
mysql>
最后来总结下文章中的知识点