操作系统:Centos7.4

mysql:mysql5.7.22

登录mysql官网下载所需的版本

  -v:显示下载过程

安装

   安装的数据库和数据库文件最好能单独挂载到一个独立盘,即数据库的安装的磁盘和存放数据的磁盘是两个独立的磁盘。这种情况下,其中之一出现问题,都不会互相影响,减少不必要的损失。

初始化操作: 创建不能登入linux系统的用户,并且不建立家目录

 

若不想要密码则用参数 --initialize-insecure

注意:创建mysql1111用户,是为了后边在单台服务器上创建多个实例,根据用户名和数据存在的目录进行区分,便于管理。

将配置文件复制到制定的数据目录下。

改变数据目录的属主属组:

启动mysql服务器:of<k7w6*WfFK

不建议用mysqld的方式启动,建议用mysqld_safe的方式启动。mysqld_safe增加了一些安全特性,当出现错误时重启服务器并向错误日志文件写入运行时间信息,而且在启动MySQL服务器后继续监控其运行情况。

修改后,继续登录:

配置文件的简单解释:

[mysql]

# CLIENT #
port                           = 1111
socket                         = /data/mysql1111/mysql.sock     ##mysql以socket方式运行时的文件路径,便于本机直连时使用

[mysqld]

# GENERAL #
port                           = 1111
user                           = mysql1111
default-storage-engine         = InnoDB
socket                         = /data/mysql1111/mysql.sock
pid-file                       = /data/mysql1111/mysql.pid
server-id                      = 1111

user                           = mysql1111
default-storage-engine         = InnoDB              ##设置mysql的引擎
socket                         = /data/mysql1111/mysql.sock
pid-file                       = /data/mysql1111/mysql.pid      #仅存储mysql服务运行时进程pid
server-id                      = 1111

# MyISAM #
key-buffer-size                = 32M
myisam-recover-options         = FORCE,BACKUP

# SAFETY #
max-allowed-packet             = 16M                     ##网络上数据传输时每个包的最大值
max-connect-errors             = 1000             ##允许最大的错误连接次数
skip-name-resolve              = 1              ##域名的解析,若为1,则之只根据iP来识别,不进行域名的解析
sysdate-is-now                 = 1              ##主从复制信息时,从库直接保存主库表中的时间,不会根据时区信息进行保存。
innodb                         = FORCE            ##引擎使用innodb    

# DATA STORAGE #
datadir                        = /data/mysql1111/      ##数据的存放目录

# BINARY LOGGING #
log-bin                        = /data/mysql1111/mysql-bin   ##二进制日志的存放目录及文件前缀名
expire-logs-days               = 14               ##日志过期时间为14天,过期后,自动删除
sync-binlog                    = 1

# CACHES AND LIMITS #
tmp-table-size                 = 32M      ##内存临时表的最大值
max-heap-table-size            = 32M                  
query-cache-type               = 0       ##查询缓存都设为0,表示关闭
query-cache-size               = 0
max-connections                = 500      #最大连接数
thread-cache-size              = 50
open-files-limit               = 65535
table-definition-cache         = 4096
table-open-cache               = 102400

# INNODB #
innodb-flush-method            = O_DIRECT   ##设置成此值,可防止文件系统和INNODB同时存在两个副本
innodb-log-files-in-group      = 3      
innodb-log-file-size           = 64M
innodb-flush-log-at-trx-commit = 1
innodb-file-per-table          = 1
innodb-buffer-pool-size        = 1G

# LOGGING #
log-error                      = /data/mysql1111/error.log
log-queries-not-using-indexes  = 1
slow-query-log                 = 1
slow-query-log-file            = /data/mysql1111/slow.log

当一个事务提交时,有关操作的信息先写到内存中的binlog_cache中,fsync负责将数据刷新到磁盘中,而sync_binlog = 0时,Mysql不做fsync的磁盘同步操作。

当sync_binlog = 1时,fsync在每次事务提交时会强制将binlog_cache的内容写到磁盘,增加了数据的完整性,但也消耗了更多的磁盘IO。