1. 数据库的介绍
关系型数据库RDBMS | 非关系型NOSQL | 分布式NEWSQL | MySQL分支 |
---|---|---|---|
Oracle | MongoDB | AliSQL | Oracle |
MySQL | Redis | OB | Mariadb |
PG | ES | TiDB | percona |
MSSQL | Memcached | RDS,PolarDB,OB |
GA时间: 5.6.38 5.7.20 20170913
下载地址:
https://downloads.mysql.com/archives/community/
2. MySQL5.7的介绍及安装
####软件上传解压
[root@db01 /usr/local]# tar xf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
[root@db01 /usr/local]# mv mysql-5.7.26-linux-glibc2.12-x86_64 mysql
####原始环境检查
[root@db01 ~]# rpm -qa |grep mariadb
[root@db01 ~]# yum remove mariadb-libs -y
####用户权限准备
[root@db01 /etc]# useradd -s /sbin/nologin -M mysql
[root@db01 /etc]# chown -R mysql.mysql /data
[root@db01 /etc]# chown -R mysql.mysql /usr/local/mysql
####初始化数据(建库) *****
环境变量设置:
vim /etc/profile
export PATH=/usr/local/mysql/bin:$PATH
生效:source /etc/profile
5.7+ : mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
报错:mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解决:[root@db01 ~]# yum install -y libaio-devel
-
说明:
–initialize 使用一种安全的模式初始化数据.
特点: 1. 初始密码 2. 密码复杂度 3. 密码过期时间
–initialize-insecure 使用一种不安全的模式初始化数据.
1.无密码 2.无密码复杂度5.7-:初始化 /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data ####配置文件准备 [root@db01 ~]# vim /etc/my.cnf [mysqld] user=mysql basedir=/usr/local/mysql datadir=/data/mysql/data socket=/tmp/mysql.sock [mysql] socket=/tmp/mysql.sock ####启动关闭数据库 (SysV) [root@db01 ~]# cd /usr/local/mysql/support-files/ [root@db01 /usr/local/mysql/support-files]# ./mysql.server start [root@db01 /usr/local/mysql/support-files]# cp mysql.server /etc/init.d/mysqld [root@db01 /usr/local/mysql/support-files]# service mysqld start /stop / restart ####实现 systemd 模式管理mysql启动关闭(systemd): vim /etc/systemd/system/mysqld.service [Unit] Description=MySQL Server Documentation=man:mysqld(8) Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html After=network.target After=syslog.target [Install] WantedBy=multi-user.target [Service] User=mysql Group=mysql ExecStart=/app/mysql/bin/mysqld --defaults-file=/etc/my.cnf LimitNOFILE = 5000 或者: chkconfig --add mysqld systemctl start/stop/restart mysqld
3. 配置文件参数
[mysqld]
# 基本配置
basedir=/usr/local/mysql/ # 程序路径
datadir=/data/mysql/data # 数据路径
socket=/tmp/mysql.sock # socket文件位置
server_id=51 # 主机编号
port=3306 # 端口号
secure-file-priv=/tmp # into outfile 安全路径
autocommit=0 # 自动提交功能(1/0)
max_allowed_packet # 控制最大数据包大小
#日志有关
log_bin=/data/binlog/mysql-bin # 二进制日志位置
binlog_format=row # 二进制日志格式
sync_binlog=1 # 控制二进制日志刷新策略
gtid-mode=on # 开启GTID模式
enforce-gtid-consistency=true # 强制GTID一致性
log-slave-updates=1 # 从库中强制更新GTID事务到本地binlog (MHA必须开,双主模式)
expire_logs_days # 二进制日志过期时间
slow_query_log=1 # 慢日志开关
slow_query_log_file # 慢日志路径
long_query_time # 慢日志记录条件(时间)
log_queries_not_using_indexes # 慢日志记录条件(不走索引的)
log_error # 错误日志路径
log_timestamps=system # 错误日志时间=系统时间
general_log=1 # 通用日志开关
general_log_file # 通用日志路径
#InnoDB存储引擎相关
innodb_flush_log_at_trx_commit=1 # redo刷新策略(0/1/2)
innodb_buffer_pool_size=2048M # 内存池大小
innodb_flush_method=O_DIRECT # 数据和redo刷写策略
innodb_log_buffer_size # redo buffer大小
innodb_file_per_table=1 # 独立表空间设置
innodb_data_file_path # 共享表空间文件配置
innodb_log_file_size # redo 文件的大小
innodb_log_files_in_group # redo 文件的个数
transaction_isolation # 隔离级别(RC,RR)