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. Optional和Stream的map与flatMap

    Optional的map和flatMap Optional存在map和flatMap方法.map源码如下 public<U> Optional<U> map(Function& ...

  2. IDEA中全局搜索不起作用,解决办法

    众所周知IDEA中全局搜索的快捷键是Ctrl+Shift+F,但是今天却碰到了用不了的情况,其实软件坏了的可能性很小,那就要从外部再来找原因,查看自己开的软件,一一查看快捷键,看是否是快捷键冲突: 1 ...

  3. HTML+CSS+JavaScript实现2048小游戏

    相信很多人都玩过2048小游戏,规则易懂.操作简单,我曾经也“痴迷”于它,不到2048不罢休,最高成绩合成了4096,现在正好拿它来练练手. 我对于2048的实现,除了使用了现有2048小游戏的配色, ...

  4. 代码整洁 vs 代码肮脏

    写出整洁的代码,是每个程序员的追求.<clean code>指出,要想写出好的代码,首先得知道什么是肮脏代码.什么是整洁代码:然后通过大量的刻意练习,才能真正写出整洁的代码. WTF/mi ...

  5. MongoDB入门及 c# .netcore客户端MongoDB.Driver使用

    MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系 ...

  6. Android开发:为什么我们从来不去感谢开源项目维护者?

    今天我想谈一谈,为什么我们很少去感谢开源项目维护者: 一.这样的项目我也可以做啊 “蛤?这项目对我来说也太简单了吧.” “我一周之内就能做一个更好的版本出来.” 确实,很多人都可以在 Hackatho ...

  7. iOS面试题整理带答案

    iOS面试题整理带答案       找工作,面试是避免不了的! 而技术开发面试,问一些技术相关的问题是必须的,最新的技术可能人人都趋之若鹜,但有些原理和基础的也希望都有了解. 这里整理了一些iOS相关 ...

  8. 章节十六、9-Listeners监听器

    一.IInokedMethodListener 1.实现一个类来监听testcase的运行情况. package listenerspackage; import org.testng.IInvoke ...

  9. 安卓APP开发简单实例 结对编程心得

    开始说起搞APP开发,自己和小伙伴的编程水平真的很低,无从下手,只有在网上找点案列,学习着怎样开发,结对编程还是面临着许多问题的,大家的水平有所差异和编程风格不同,我们用eclipse做了一个仿微信登 ...

  10. Linux 笔记 - 几个常用且重要的命令

    博客地址:http://www.moonxy.com Linux 系统中提供了大量的命令,从文件目录管理,用户管理,到系统监控等等,功能非常丰富,但有几个是常用且重要的命令. 1. 命令 grep 作 ...