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. 【LeetCode】46-全排列

    题目描述 给定一个没有重复数字的序列,返回其所有可能的全排列. 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [ ...

  2. Wireshark解密HTTPS流量的两种方法

    原理 我们先回顾一下SSL/TLS的整个握手过程: Clienthello:发送客户端的功能和首选项给服务器,在连接建立后,当希望重协商.或者响应服务器的重协商请求时会发送. version:客户端支 ...

  3. 如何设置java虚拟机参数

    这两天在看java虚拟机,从书上看到可以自己设置java虚拟机的参数,可以方便开发人员进行系统调优和故障排查 Ecplise设置java虚拟机参数: window-->preferences-- ...

  4. JavaScrpt 介绍

    什么是 JavaScript? JavaScript 是一种直译式脚本语言,一种轻量级的脚本语言 什么是脚本语言? Script language指的是它不具备开发操作系统的能力,而是只用来编写控制其 ...

  5. FreeSql (四)实体特性 Fluent Api

    FreeSql 提供使用 Fluent Api, 在外部配置实体的数据库特性,Fluent Api 的方法命名与特性名保持一致,如下: fsql.CodeFirst .ConfigEntity< ...

  6. 内部类实例化Serializable

    昨天在做一个java项目的时候,发现下面代码中红色字体那行总是报NotSerializableException,查错误,MyRectangle这个类也明明实现了Serializable接口. 花了大 ...

  7. Java,Python,前端,Linux,公众号等5T编程资源整理免费下载

    场景 我的CSDN: https://blog.csdn.net/BADAO_LIUMANG_QIZHI 实现 马士兵Java学习视频 方立勋JavaWeb 尚硅谷Python核心基础 数据分析 机器 ...

  8. soap get/post请求

    pom.xml依赖: <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactI ...

  9. Burpsuit构造测试数据

      一.使用场景 测试设备web性能优化时,需要构造或删除多个user.设备.设备账号.订单等,除了使用excel批量导入外,有些数据构造/删除使用burpsuit代理并将对应请求发送到Burp In ...

  10. 使用如下命令修改.bashrc文件

    使用如下命令修改.bashrc文件: gedit ~/.bashrc 编辑之后必须执行 source ~/.bashrc