建议使用percona server linux generic版,从https://www.percona.com/downloads/Percona-Server-LATEST/下载,现在不在推荐使用mariadb是因为考虑到mariadb的越来越不兼容mysql原生。

对于操作系统,仅推荐rhel以及centos,优先推荐客户使用rhel(如果客户买了服务的话,否则centos,不然yum没法使用,依赖包的安装会及其麻烦),且生产环境我们仅使用他们,不会使用windows,极少使用suse。

对于mysql 8.0而言,没有ssl 101版本,如下:

此时需要升级ssl到102(自带的很可能是101),参见linux下openssl升级指南。否则在初始化的时候会报找到openssl相关库,如openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory。

下载后解压、创建符号链接,ln -s Percona-Server-5.7.22-22-Linux.x86_64.ssl101 mysql。

[root@v--- mysql]# mkdir data
# 对于mariadb 10.0、10.1、10.2、10.3需要使用scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql 进行初始化,不支持5.7版本的mysqld初始化,虽然10.1之后是5.7的分支
[root@v--- mysql]# bin/mysqld --initialize-insecure --datadir=/usr/local/app_1/mysql/data --basedir=/usr/local/app_1/mysql --03T00::.132880Z  [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). --03T00::.585743Z  [Warning] InnoDB: New log files created, LSN= --03T00::.775344Z  [Warning] InnoDB: Creating foreign key constraint system tables. --03T00::.855871Z  [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 1a4f5171-7e54-11e8-96ba-00163e0d56df. --03T00::.859229Z  [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened. --03T00::.356281Z  [Warning] CA certificate ca.pem is self signed. --03T00::.636774Z  [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option. [root@v--- mysql]# chown -R mysql:mysql data
[root@v-03-01-00223 mysql]# ./mysqld_safe --defaults-file=/etc/my.cnf. --user=mysql #/etc/my.cnf.57中的主要参数推荐见下文
[root@v-03-01-00223 mysql]# ./mysql --defaults-file=/etc/my.cnf. -uroot -h127.0.0. -P3308 #因为一台服务器安装了多个mysql实例,所以指定配置文件和端口号,defaults-file限制只读取指定的配置文件,且必须是第一个命令行选项,否则忽略 
alter user root@'localhost' identified by '';
create user root@'127.0.0.1' identified by '';
grant all on *.* to root@'127.0.0.1';

mysql> create user root@'%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all on *.* to root@'%';
Query OK, 0 rows affected (0.00 sec)

create user 'repl'@'10.20.24.89' identified by '';  #创建slave账户
grant REPLICATION SLAVE ON *.* TO 'repl'@'10.20.24.89'; #创建slave账户

主库参数推荐

这些参数都是我们在各金融交易系统中经过数百家客户运行足够稳定、出现问题时确保能够及时排查后提炼出的对性能、稳定性较为重要的主要参数,而不是随机查看官方文档或者网上复制粘贴的,并且我们会定期对其进行更新以确保最适合我们在用的mysql版本和分支。

query_cache_size = 0
query_cache_type=0
innodb_undo_tablespaces=16(需初始化mysql时命令行中先包含)
innodb_undo_directory=(专用redo磁盘文件系统路径)
innodb_thread_concurrency=(cpu数量+物理磁盘的数量)
innodb_strict_mode=true
tmpdir=/tmp
character_set_server=gbk或者utf8mb4(绝大多数系统应默认使用gbk,对于有特殊要求的建议在字段级别设置为utf-8)
autocommit=0
innodb_buffer_pool_size=60%-75%物理内存
innodb_flush_method=O_DIRECT(如果不使用硬件RAID控制器或者使用SAN,则不要设置)
innodb_flush_log_at_trx_commit(核心交易系统设置为1,默认为1,其他2或者0)
transaction-isolation=READ-COMMITTED
innodb_autoinc_lock_mode = 2
skip-name-resolve
large-pages(测试未看出明显受益,主要是内存没有足够压力,故当前不建议设置)
back-log=500
innodb-status-file=TRUE(推荐设置)
default-storage-engine=InnoDB
memlock=true(对于专用mysql服务器,建议禁用swap,此时此参数可以不设置,在共享服务器上,如果设置了,那么在内存不够时,可能导致Mysql因为内存不够而无法启动)
innodb_fast_shutdown=0
sync_binlog(核心交易系统设置为1,默认为1,其他2或者0)
log-bin=mysql-bin
binlog_format(OLTP为row,DSS系统为mixed,如不确定,请使用row)
binlog_checksum=NONE
binlog_row_image=full(mariadb没有参数,设置了启动会报错)
binlog_cache_size = 8M
max_binlog_size = 500M
max_binlog_cache_size = 100M
expire_logs_days = 7
innodb_log_file_size=512m
innodb-log-buffer-size=8M
innodb-log-files-in-group=(3-5,视生成的日志量而定)
innodb_log_group_home_dir=/usr/local/mysql/redo(专用redo磁盘文件系统路径)
innodb_flush_neighbors(默认值为1,SSD设置为0,Neighbors指的是属于一个extent的所有页面,一个extent共64个页面,出于硬盘IO顺序写的考虑,InnoDB通常会刷新一个extent中的所有页面,因为SSD在随机IO上没有额外负载,所以不需要启用该特性)
innodb_page_size(SSD设置为4KB)
innodb_data_home_dir=/usr/local/mysql/data(专用data磁盘文件系统路径)
# innodb_data_file_path=ibdata1:2000M;ibdata2:10M:autoextend (专用data磁盘文件系统路径,存储系统表空间,建议不要明确设置,如若不然的话,ibdata1的大小需要和实际大小相同)
innodb_change_buffer_max_size(InnoDB使用Change buffering以最小化随机IO,一旦change buffer满了,随后的DMLs将直接在相应的表上进行更改,change buffer以固定的频率(5.5不可更改,5.6由此参数控制,change buffer越接近该值,后台执行越频繁,每次合并的量由innodb_io_capacity控制(默认为200,代表10K RPM的硬盘,对于5400或者7200 RPM的硬盘,可以设置为100,代表每次可以执行100次IOPS(测试时每次大小可配置,这里应该说的是基于16KB大小,可参考http://elf8848.iteye.com/blog/1731301)。对于RAID或者SSD,增加的话,会有所帮助,现代系统应该调整))由后台进程合并到数据页,写入和读取频率接近的系统可设置为50,默认为25,代表buffer pool大小的25%,具体请咨询DBA)
innodb_lock_wait_timeout=86400(根据实际情况配置)
default-tmp-storage-engine=InnoDB
innodb-autoextend-increment=16M
innodb-buffer-pool-instances=min(8,nGB/1GB)
innodb-file-io-threads=max(4,nGB/4GB)
innodb_io_capacity=可供MySQL使用的IOPS(建议使用Oracle ORION进行测试)
innodb-file-per-table=true
innodb_rollback_on_timeout=true
innodb-old-blocks-time(混合型系统可以调整为60000或更高,具体请咨询DBA)
innodb-print-all-deadlocks=true
innodb-sort-buffer-size=(此选项为创建索引使用,不需要设置)
sort-buffer-size(DSS可语句级别动态调整,比如SET STATEMENT sort_buffer_size=100000 FOR SELECT name FROM name ORDER BY name;)
join-buffer-size=(DSS可语句级别动态调整)
open-files-limit=32767
innodb_open_files=32767
tmp-table-size(DSS可语句级别动态调整)
sql-mode=STRICT_TRANS_TABLES,STRICT_ALL_TABLES,PIPES_AS_CONCAT, ONLY_FULL_GROUP_BY,NO_ENGINE_SUBSTITUTION,ERROR_FOR_DIVISION_BY_ZERO, ANSI_QUOTES,NO_UNSIGNED_SUBTRACTION,PAD_CHAR_TO_FULL_LENGTH, NO_ZERO_DATE,NO_ZERO_IN_DATE
log-output=FILE
slow-query-log=true
log-queries-not-using-indexes=true(对于mysql而言,该参数应该设置,具体看情况,有可能很多小表很快会使得slow_query_log增长的很快)
log_slow_filter
log_slow_sp_statements
log_slow_verbosity
innodb_show_verbose_locks=1
innodb_print_lock_wait_timeout_info=ON
server-id=1
port=3306
read_rnd_buffer_size(DSS需语句级别动态调整)
thread_handling=pool-of-threads
thread_pool_max_threads=100
thread_pool_size=50
thread_cache_size=64
max-connections=3000
event_scheduler=ON
#GTID 5.6引入主要是为了解决主从模式下主节点宕机后切换主节点时确定当前的事务进度(因为不同的实例日志点位不一定相同,而GTID的格式是日志source_id+事务id,所以可以保证所有节点的逻辑事务进度一致,这使得切换的难度大大降低)。
gtid-mode = ON  #(Group Replication要求必须开启GTID,MariaDB没有这个参数,设置后会报错,不过默认就是启用GTID,GTID和基于binlog的区别https://www.percona.com/sites/default/files/presentations/Failover_GTID_MySQL_56_Fosdem.pdf
https://pdfs.semanticscholar.org/presentation/3036/b68bcb8bd2f4fed590fd85607e37bf511858.pdf)
log_slave_updates=ON(GTID模式必须开始log_slave_updates,对性能有一定影响)
enforce-gtid-consistency = ON(MariaDB没有这个参数,设置后会报错,不过默认就是启用GTID)
relay-log-info-repository=TABLE(MariaDB没有这个参数,设置后会报错,不过默认就是启用GTID)
master-info-repository=TABLE(MariaDB没有这个参数,设置后会报错,不过默认就是启用GTID)
slave_parallel_workers=4 --开启基于库的多线程复制默认0不开启 (MariaDB没有这个参数,设置后会报错,不过默认就是启用GTID)
innodb_lru_scan_depth(默认1024,这个参数控制page_cleaner线程扫描多少LRU列表中的脏页,对于写紧张的系统,降低该值,即使内存超大也一样;如果IO容量足够,增加该值;大型系统通常需要更改该参数)
innodb_use_global_flush_log_at_trx_commit=0
userstat=ON
thread_statistics=ON

windows下安装可参考https://blog.csdn.net/ycxzuoxin/article/details/80908447

mysql 5.7/percona server/mariadb 10.2安装与服务器参数优化的更多相关文章

  1. MySQL Study之--Percona Server版本号

    MySQL Study之--Percona Server版本号 1.简单介绍      Percona 为 MySQL 数据库server进行了改进.在功能和性能上较 MySQL 有着非常显著的提升. ...

  2. 从MySQL 5.5迁移到Mariadb 10.1.14

    从MySQL 5.5迁移到Mariadb 10.1.14 迁移计划如下: 1.备份MySQL 5.5的数据库,对指定库进行备份. 2.还原到Mariadb,然后建立复制. 3.然后就可以愿意啥时候切换 ...

  3. [mariadb]Windows Mariadb 10.2安装过程

    在学习Flask的过程中,碰到SQLAlchemy不支持Mariadb 10.2.9以前版本的问题,于是升级Mariadb到10.2.10. 升级过程中,我只能说,Mariadb及Mysql的文档结构 ...

  4. 2019.1.10 Mac安装Nginx服务器

    1.安装Homebrew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/in ...

  5. 手机在线更新系统MySQL数据库服务器参数优化mycnf,16G内存8核CPU,

    业务场景: 后台支持手机在线更新系统,db服务器内存16G,8核,dell的pc服务器. qps: 200个左右 tps: 1个左右 一分钟50几个 sort_buffer_size = 32M 大了 ...

  6. MySQL数据库服务器参数优化mycnf,16G内存8核CPU,

    业务场景: 后台支持手机在线更新系统,db服务器内存16G,8核,dell的pc服务器. qps: 200个左右 tps: 1个左右 一分钟50几个 sort_buffer_size = 32M 大了 ...

  7. MySQL与MariaDB核心特性比较详细版v1.0(覆盖mysql 8.0/mariadb 10.3,包括优化、功能及维护)

    注:本文严禁任何形式的转载,原文使用word编写,为了大家阅读方便,提供pdf版下载. MySQL与MariaDB主要特性比较详细版v1.0(不含HA).pdf 链接:https://pan.baid ...

  8. Percona,MariaDB,MySQL衍生版如何取舍

    缘起 自从甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险.而且Oracle对培养MySQL这个免费的儿子并不太用心,漏洞修补和版本升级的速度一段时间非常缓慢,所以业界对MySQL的未来普遍 ...

  9. Linux 下 YUM 安装 Percona Server 5.6

    Percona Server 是 MySQL 的衍生版,专注于 Linux/BSD 下 MySQL 数据库服务器的改进, 在功能和性能上较 MySQL 有着显著的提升. Percona Server ...

随机推荐

  1. [LeetCode] 34. Find First and Last Position of Element in Sorted Array == [LintCode] 61. Search for a Range_Easy tag: Binary Search

    Description Given a sorted array of n integers, find the starting and ending position of a given tar ...

  2. fullpage插件在移动端弹出键盘页面特殊处理

    fullpage插件大家都很熟悉 jquery一款全屏上下滑动的插件. 最近做公司一个活动移动端使用fullpage插件填写input的时候遇见一个问题,手机自带的键盘弹出的时候会把页面顶出去,页面错 ...

  3. Linux平台Oracle 12.1.0.2 单实例安装部署

    主题:Linux平台Oracle 12.1.0.2 单实例安装部署 环境:RHEL 6.5 + Oracle 12.1.0.2 需求:安装部署OEM 13.2需要Oracle 12.1.0.2版本作为 ...

  4. jQuery获取点击对象的父级

    一.使用$('body').on('click','.index',function(event){})绑定事件时,例: <div class="project-box"&g ...

  5. 安装Esxi 6.5

    最详细安装Esxi 6.5     Exsi 是一款虚拟化系统,与VMware,VirtualBox不同,它不需要安装在其他操作系统上,直接运行在裸机上:占用系统资源很小,易于管理,所以被大多数中小型 ...

  6. html5-table布局

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  7. hdu4746莫比乌斯反演+分块

    http://blog.csdn.net/mowayao/article/details/38875021 题意: 5000组样例. 问你[1,n] 和 [1,m]中有多少对数的GCD的素因子个数小于 ...

  8. 师大校赛D coloring Game 并查集

    这题说的是 在一个 森林中 两个人在这棵树上涂颜色,黑色或者白色,第一次只能在1 号节点上涂色 第二次 只能在2上涂,以此类推, 在每个节点上只能涂黑色或者白色,并且相邻的点不能有相同的颜色,最后求不 ...

  9. Python - 2. Built-in Collection Data Types

    From: http://interactivepython.org/courselib/static/pythonds/Introduction/GettingStartedwithData.htm ...

  10. 压缩和解压缩(I)

    ZipArchive 压缩方法 -(void)zipArchiveWithFiles { //创建解压缩对象 ZipArchive *zip = [[ZipArchive alloc]init]; / ...