MySQL 5.7安装最佳实践

1、环境准备
OS: CentOS Linux release 7.4.1708 (Core) for VMware
MySQL: mysql-5.7.24-linux-glibc2.12-x86_64

2、安装包准备,依赖检查
建议从官方下载,下载地址为:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

也可以在linux系统中用wget命令下载:
[root@localhost ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
[root@localhost ~]# md5sum mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
[root@localhost ~]# mkdir /opt/mysql
[root@localhost ~]# tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz -C /opt/mysql/
[root@localhost ~]# cd /usr/local
[root@localhost local]# ln -s /opt/mysql/mysql-5.7.24-linux-glibc2.12-x86_64/ mysql
[root@localhost local]# ldd mysql/bin/mysqld
linux-vdso.so.1 => (0x00007ffc633bd000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff8b795d000)
libaio.so.1 => /lib64/libaio.so.1 (0x00007ff8b775b000)
libnuma.so.1 => /lib64/libnuma.so.1 (0x00007ff8b754e000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007ff8b7317000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007ff8b7113000)
librt.so.1 => /lib64/librt.so.1 (0x00007ff8b6f0a000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007ff8b6c02000)
libm.so.6 => /lib64/libm.so.6 (0x00007ff8b6900000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007ff8b66e9000)
libc.so.6 => /lib64/libc.so.6 (0x00007ff8b6326000)
/lib64/ld-linux-x86-64.so.2 (0x0000562f8aace000)
libfreebl3.so => /lib64/libfreebl3.so (0x00007ff8b6123000)
说明:在 ldd 命令打印的结果中,“=>”左边的表示该程序需要连接的共享库之 so 名称,右边表示由 Linux 的共享库系统找到的对应的共享库在文件系统中的具体位置,“=>”右边有值就可以了。

3、建立用户,目录规划,my.cnf文件配置
[root@localhost local]# groupadd mysql
[root@localhost local]# useradd -g mysql -d /usr/local/mysql -s /sbin/nologin -MN mysql
[root@localhost local]# chown -R mysql:mysql mysql
[root@localhost local]# mkdir -p /data/mysql/mysql3306/{data,tmp,logs}
[root@localhost local]# chown -R mysql:mysql /data/
[root@localhost local]# vim /etc/my.cnf
[client]
port = 3306

[mysql]
auto-rehash
prompt="\\u@\\h [\\d]>"
#pager="less -i -n -S"
#tee=/opt/mysql/query.log

[mysqld]
####: for global
user =mysql # mysql
basedir =/usr/local/mysql/ # /usr/local/mysql/
datadir =/data/mysql/mysql3306/data # /usr/local/mysql/data
server_id =1293306 # 0
port =3306 # 3306
character_set_server =utf8 # latin1
explicit_defaults_for_timestamp =off # off
log_timestamps =system
default_time_zone ='+8:00' # utc
socket =/tmp/mysql3306.sock # /tmp/mysql.sock
read_only = 1 # off
super_read_only = 1
skip_name_resolve =off # 0
auto_increment_increment =1 # 1
auto_increment_offset =1 # 1
lower_case_table_names =1 # 0
secure_file_priv = /tmp/ # null
open_files_limit =65536 # 1024
max_connections =1000 # 151
thread_cache_size =64 # 9
table_open_cache =81920 # 2000
table_definition_cache =4096 # 1400
table_open_cache_instances =64 # 16
max_prepared_stmt_count =1048576 #

####: for binlog
binlog_format =row # row
log_bin =/data/mysql/mysql3306/logs/mysql-bin # off
binlog_rows_query_log_events =on # off
log_slave_updates =on # off
expire_logs_days =7 # 0
binlog_cache_size =65536 # 65536(64k)
#binlog_checksum =none # CRC32
sync_binlog =1 # 1
slave-preserve-commit-order =ON #

####: for error-log
log_error =error.log # /usr/local/mysql/data/localhost.localdomain.err

general_log =off # off
general_log_file =general.log # hostname.log

####: for slow query log
slow_query_log =on # off
slow_query_log_file =slow.log # hostname.log
#log_queries_not_using_indexes =on # off
long_query_time =1.000000 # 10.000000

####: for gtid
#gtid_executed_compression_period =1000 # 1000
gtid_mode =on # off
enforce_gtid_consistency =on # off

####: for replication
skip_slave_start =1 #

#master_info_repository =table # file
#relay_log_info_repository =table # file
slave_parallel_type =logical_clock # database | LOGICAL_CLOCK
slave_parallel_workers =4 # 0
#rpl_semi_sync_master_enabled =1 # 0
#rpl_semi_sync_slave_enabled =1 # 0
#rpl_semi_sync_master_timeout =1000 # 1000(1 second)
#plugin_load_add =semisync_master.so #
#plugin_load_add =semisync_slave.so #
binlog_group_commit_sync_delay =100 # 500(0.05%秒)、默认值0
binlog_group_commit_sync_no_delay_count = 10 # 0

####: for innodb
innodb_data_file_path =ibdata1:100M:autoextend # ibdata1:12M:autoextend
innodb_temp_data_file_path =ibtmp1:12M:autoextend # ibtmp1:12M:autoextend
innodb_buffer_pool_filename =ib_buffer_pool # ib_buffer_pool
innodb_log_group_home_dir =./ # ./
innodb_log_files_in_group =3 # 2
innodb_log_file_size =100M # 50331648(48M)
innodb_file_per_table =on # on
innodb_online_alter_log_max_size =128M # 134217728(128M)
innodb_open_files =65535 # 2000
innodb_page_size =16k # 16384(16k)
innodb_thread_concurrency =0 # 0
innodb_read_io_threads =4 # 4
innodb_write_io_threads =4 # 4
innodb_purge_threads =4 # 4(垃圾回收)
innodb_page_cleaners =4 # 4(刷新lru脏页)
innodb_print_all_deadlocks =on # off
innodb_deadlock_detect =on # on
innodb_lock_wait_timeout =20 # 50
innodb_spin_wait_delay =128 # 6
innodb_autoinc_lock_mode =2 # 1
innodb_io_capacity =200 # 200
innodb_io_capacity_max =2000 # 2000
#--------Persistent Optimizer Statistics
innodb_stats_auto_recalc =on # on
innodb_stats_persistent =on # on
innodb_stats_persistent_sample_pages =20 # 20

innodb_change_buffer_max_size =25 # 25
innodb_flush_neighbors =1 # 1
#innodb_flush_method = #
innodb_doublewrite =on # on
innodb_log_buffer_size =128M # 16777216(16M)
innodb_flush_log_at_timeout =1 # 1
innodb_flush_log_at_trx_commit =1 # 1
innodb_buffer_pool_size =100M # 134217728(128M)
innodb_buffer_pool_instances =4
#--------innodb scan resistant
innodb_old_blocks_pct =37 # 37
innodb_old_blocks_time =1000 # 1000
#--------innodb read ahead
innodb_read_ahead_threshold =56 # 56 (0..64)
innodb_random_read_ahead =OFF # OFF
#--------innodb buffer pool state
innodb_buffer_pool_dump_pct =25 # 25
innodb_buffer_pool_dump_at_shutdown =ON # ON
innodb_buffer_pool_load_at_startup =ON # ON
innodb_flush_method = O_DIRECT

4、初始化安装,error日志查看
[root@localhost ~]# /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize
[root@localhost ~]# more /data/mysql/mysql3306/data/error.log
没有error就表示初始化完成了。

5、启动,error日志查看
[root@localhost ~]# /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf &
[root@localhost ~]# more /data/mysql/mysql3306/data/error.log
没有error就表示初始化完成了。

6、配置环境变量,root密码修改,配置远程连接权限
[root@localhost ~]# echo export PATH=$PATH:/usr/local/mysql/bin >>/etc/profile
[root@localhost ~]# source /etc/profile
[root@localhost ~]# more /data/mysql/mysql3306/data/error.log |grep password
2018-12-28T09:56:30.709446+08:00 1 [Note] A temporary password is generated for root@localhost: K:5+d=MqRqlc
root用户的临时密码为:K:5+d=MqRqlc

[root@localhost ~]# mysql -S /tmp/mysql3306.sock -p
Enter password: 【这里输入上面的临时密码】
(unknown)@localhost [(none)]>set global super_read_only=0; set global read_only=0;
(unknown)@localhost [(none)]>alter user user() identified by 'root';
Query OK, 0 rows affected (0.05 sec)

root@localhost [(none)]>
配置远程连接权限 略
7、总结

MySQL 5.7安装最佳实践的更多相关文章

  1. paip.mysql fulltext 全文搜索.最佳实践.

    paip.mysql fulltext 全文搜索.最佳实践.  作者Attilax  艾龙,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blo ...

  2. 【MySQL】锁问题最佳实践

    最近一段时间处理了较多锁的问题,包括锁等待导致业务连接堆积或超时,死锁导致业务失败等,这类问题对业务可能会造成严重的影响,没有处理经验的用户往往无从下手.下面将从整个数据库设计,开发,运维阶段介绍如何 ...

  3. MySQL参数调优最佳实践

    前言很多时候,RDS用户经常会问如何调优RDS MySQL的参数,为了回答这个问题,写一篇blog来进行解释: 哪一些参数不能修改,那一些参数可以修改:这些提供修改的参数是不是已经是最佳设置,如何才能 ...

  4. Vertica 7.1安装最佳实践(RHEL6.4)

    一.前期准备工作 1.1各节点IP和主机名 1.2上传脚本并设定环境变量 1.3添加信任 1.4前期准备检查并调整 二.Vertica安装 三.集群性能评估 一.前期准备工作: 1.1各节点IP和主机 ...

  5. Maven安装最佳实践(Windows平台)

    第一步:下载maven,解压缩. 在maven官网下载maven文件,这里我下载的是"apache-maven-2.2.1-bin.zip",如果需要maven的源代码,可以选择下 ...

  6. [转译] AD RMS 安装最佳实践

    在安装活动目录权限管理服务(ADRMS)时,请牢记以下几点: 将 AD RMS服务单独安装在一台服务器上——将 AD RMS与域控制器.微软邮件服务器(Microsoft Exchange Serve ...

  7. Mysql学习总结(20)——MySQL数据库优化的最佳实践

    1)谨慎而有效地使用索引 选择合理的索引(前缀性及可选性).删除没有用的索引. 2)使用规范化,但不要使用过头 规范化(至少是第三范式)是一个易于理解且标准的方法.然而,在有些情况下,你可能希望违反这 ...

  8. Maven--Maven 安装最佳实践

    1.设置 MAVEN_OPTS 环境变量 运行 mvn 命令实际上是执行了 Java 命令,既然是运行 Java,那么运行 Java 命令可用的参数当然也应该在运行 mvn 命令时使用.这个时候,MA ...

  9. Oracle 11.2 RAC on Redhat 6.5 安装最佳实践

    本文讲述了在Redhat 6.5 上安装Oracle 11.2 RAC的详细步骤,是一篇step by step指南,全文没有什么技术难度,只要一步步跟着做就一定能安装成功. 环境介绍 分类 项目 说 ...

随机推荐

  1. 聊聊Spring Cloud Config

    Spring Cloud Config 转自:https://blog.csdn.net/fjnpysh/article/details/71307311 现今这个时候,微服务大行其道,互联网应用遍地 ...

  2. golang中Array与Slice

    在golang中有数组和Slice两种数据结构,Slice是基于数组的实现,是长度动态不固定的数据结构,本质上是一个对数组字序列的引用,提供了对数组的轻量级访问.那么在go的函数中以数组或Slice为 ...

  3. 学习数据库SQL语句1

    数据库一直让我很头大,正好出差有空,就重新恶补起来吧!(网站:http://www.w3school.com.cn/sql) 我准备把我每天学到的都记录下来=.= (红色字体代表关键词,蓝色字体是我个 ...

  4. 松软科技课堂:数据库-主键(PrimaryKey)

    主键就是一个表中每个数据行的唯一标识.不会有重复值的列才能当主键.一个表可以没有主键,但是会非常难以处理,因此没有特殊理由表都要设定主键 主键有两种选用策略:业务主键和逻辑主键.业务主键是使用有业务意 ...

  5. 实战限流(guava的RateLimiter)

    关于限流 常用的限流算法有漏桶算法和令牌桶算法,guava的RateLimiter使用的是令牌桶算法,也就是以固定的频率向桶中放入令牌,例如一秒钟10枚令牌,实际业务在每次响应请求之前都从桶中获取令牌 ...

  6. Cabloy-CMS:动静结合,解决Hexo痛点问题

    介绍 Cabloy-CMS是什么 Cabloy-CMS是基于CabloyJS全栈业务开发框架开发的"动静结合"的CMS,可以快速构建企业网站.博客.社区.商城等Web应用. 在线演 ...

  7. Centos7 设置redis开机自启

    Centos7 设置redis开机自启 标签(空格分隔):Linux 环境 Centos7.1 redis-3.0.6 chkconfig方式 **service和chkconfig命令的功能好像都被 ...

  8. [Leetcode] 第289题 生命游戏

    一.题目描述 根据百度百科,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在1970年发明的细胞自动机. 给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞.每个细胞具有一个初 ...

  9. 编程必备基础知识|计算机组成原理篇(09):CPU的控制器和运算器

    计算机基础方面的知识,对于一些非科班出身的同学来讲,一直是他们心中的痛,而对于科班出身的同学,很多同学在工作之后,也意识到自身所学知识的不足与欠缺,想回头补补基础知识.关于计算机基础的课程很多,内容繁 ...

  10. 痞子衡嵌入式:飞思卡尔i.MX RTyyyy系列MCU硬件那些事(1)- 官方EVK简介

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RTyyyy系列MCU的配套EVK板. 半导体设计厂商发布任何一块MCU芯片新品,一般都会同步推出基于这款MCU的配套 ...