操作系统: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。