设为首页 收藏本站
查看: 698|回复: 0

[经验分享] How to install MySQL 5.7 on CentOS 7.3

[复制链接]

尚未签到

发表于 2018-4-22 07:13:25 | 显示全部楼层 |阅读模式
基于centos 7的mysql 5.7自动化安装,这里顺便说一下my.cnf里的一些定义的参数
比如下面两个
innodb_buffer_pool_dump_at_shutdown=1 #关闭时把热数据dump到本地磁盘
innodb_buffer_pool_load_at_startup=1  #启动时把热数据加载到内存
因为mysql重启时候会面临一个问题,就是如何将之前频繁访问的数据重新加载回Buffer中,
也就是说如何对InnoDB Buffer Pool进行预热来快速恢复之前的性能状态。
增加了undo log的自定义目录,因为把undo log从共享表空间ibdata1里拆分出去的话,需要
在my.cnf里提前指定好,不然等数据库启动好后再指定会报错。
innodb_undo_log_truncate=1 #开启在线回收
innodb_max_undo_los_size=1G #这个就是阈值(默认是1GB)时,会触发truncate回收动作。
然后说一下,下面这个配置
innodb_temp_data_file_path = ibtmp1:12M:autoextend:max:5G
因为ibtmp1文件是 MySQL5.7的新特性,MySQL5.7使用了独立的临时表空间来存储临时表数据,
初始化12M,且默认无上限,我这里设定了最高不能超过5g,释放这个临时表空间唯一的办法就
是启数据库。
也不要再去纠结
query_cache_size和query_cache_type这两个参数了,这对于mysql来说就是鸡肋
而且默认就是关闭的,建议采用默认值,也就是设置为0,关闭
Redo logs 记录了所有的数据变更
恢复时间不再是一个问题
innodb_log_file_size = 2047M before 5.6
innodb_log_file_size>= 2047M from 5.6  
So ... 越大系统性能更稳定
这个大家应该都知道
innodb_buffer_pool_size
你懂的,自己物理内存大小的70%
最后还有一点,新版的mysql默认监听在IPv6上,记得关闭掉它
bind-address=0.0.0.0

好了,最后就是安装步骤了,其实都已经脚本化了。
mkdir -p /home/tools
cd /home/tools
yum -y install numactl libaio
wget http://god.nongdingbang.net/downloads/mysql-5.7-el7.tgz && tar zxvf mysql-5.7-el7.tgz
if [ $? -eq 0 ];then
rpm -Uvh mysql*.rpm
fi
mkdir -p /data/{mysql_data,mysql_log,mysql_slow,mysql_undo}
chown -R mysql.mysql /data/*
cat >/etc/my.cnf<<EOF
[client]
port=3306
socket=/tmp/mysql.sock
[mysql]
no-auto-rehash
[mysqld]
port=3306
character-set-server=utf8
socket=/tmp/mysql.sock
datadir=/data/mysql_data
#explicit_defaults_for_timestamp=true
lower_case_table_names=1
sql_mode='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
bind-address=0.0.0.0
back_log=103
max_connections=500
max_connect_errors=100000
table_open_cache=512
external-locking=FALSE
max_allowed_packet=32M
sort_buffer_size=2M
join_buffer_size=2M
thread_cache_size=51
query_cache_size=0
query_cache_type=0
#query_cache_limit=4M
transaction_isolation=REPEATABLE-READ
tmp_table_size=96M
max_heap_table_size=96M
log-error=/data/mysql_log/error.log
###***slowqueryparameters
long_query_time=2
slow_query_log=1
slow_query_log_file=/data/mysql_slow/slow.log
###***binlogparameters
log-bin=/data/mysql_log/mysql-bin
binlog_cache_size=1M
max_binlog_cache_size=4096M
max_binlog_size=1024M
binlog_format=ROW
binlog_row_image=minimal
expire_logs_days=3
sync_binlog=0
###***undolog
innodb_undo_directory=/data/mysql_undo
innodb_undo_logs=128
innodb_undo_tablespaces=4
innodb_undo_log_truncate=1
innodb_max_undo_log_size=1G
innodb_purge_rseg_truncate_frequency
#***MyISAMparameters
key_buffer_size=16M
read_buffer_size=1M
read_rnd_buffer_size=16M
bulk_insert_buffer_size=1M
###***master-slavereplicationparameters
server-id=1
#read-only=1
#replicate-wild-ignore-table=mysql.%
###***Multi-Threaded Slave
#slave-parallel-type=LOGICAL_CLOCK
#slave-parallel-workers=16
#master_info_repository=TABLE
#relay_log_info_repository=TABLE
relay_log_recovery=ON
#***Innodbstorageengineparameters
innodb_buffer_pool_dump_at_shutdown=1
innodb_buffer_pool_load_at_startup=1
innodb_buffer_pool_size=16G
innodb_data_file_path=ibdata1:10M:autoextend
innodb_temp_data_file_path = ibtmp1:12M:autoextend:max:5G
#innodb_file_io_threads=8
innodb_thread_concurrency=0
innodb_flush_log_at_trx_commit=2
innodb_log_buffer_size=16M
innodb_log_file_size=2048M
innodb_log_files_in_group=2
innodb_max_dirty_pages_pct=75
innodb_buffer_pool_dump_pct=50
innodb_lock_wait_timeout=50
innodb_file_per_table=on
innodb_flush_neighbors=1
innodb_flush_method=O_DIRECT
innodb_io_capacity = 2000
wait_timeout = 14400
interactive_timeout = 14400
[mysqldump]
quick
max_allowed_packet=32M
[myisamchk]
key_buffer=16M
sort_buffer_size=16M
read_buffer=8M
write_buffer=8M
[mysqld_safe]
open-files-limit=28192
log-error=/data/mysql_log/error.log
pid-file=/data/mysql_data/mysqld.pid
EOF
## Initialize MySQL configuration
mysqld --defaults-file=/etc/my.cnf --user=mysql \
--datadir=/data/mysql_data --initialize-insecure
## Start mysql
systemctl restart mysqld && systemctl enable mysqld
## Setting root's password for mysql
##############################################
read -s -p &quot;Enter password : &quot; password
mysql -e &quot;ALTER USER 'root'@'localhost' IDENTIFIED BY '&quot;$password&quot;';&quot;
mysql -uroot -p&quot;$password&quot; -Dmysql -e &quot;select user,host,authentication_string,password_expired from user;&quot;
mysql -uroot -p&quot;$password&quot; -e &quot;flush privileges;&quot;
echo Your password is &quot;$password&quot;

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-450197-1-1.html 上篇帖子: How to install Hadoop 2.7.3 cluster on CentOS 7.3 下篇帖子: CentOS 7配置静态IP地址
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表