shell环境变量
Write by lyc at 2018-10-18Update by lyc at 2021-3-17:整理自己早期的word版本到markdown
一、shell环境变量1.环境变量加载顺序
主环境变量:用户登录后会首先加载 /etc/profile,这是linux系统上默认的主环境变量文件。每个用户都会加载。
主环境变量脚本:加载完 /etc/profile 后,执行 /etc/profile.d/ 目录下的脚本文件(比如i18n等)。
用户环境变量:运行 $HOME/.bash_profile,在这个文件中又会去找 $HOME/.bashrc,有则执行。在 $HOME/.bashrc 文件中又会去找 /etc/bashrc(全局环境变量文件),有则执行。
提示:crontab 定时任务只能识别很少的一部分环境变量,所以当配置定时任务时建议在脚本中重新定义环境变量。
/etc/profile全局的环境变量(我们常说配置环境变量,就是配在这个文件)
/etc/profile.d/ 登录时初始化加载的脚本文件
~/.bash_profile 用户的环境变量,用户登录时 ...
my.cnf 5.7配置解析
整理日期:by lyc at 2018-09-04Modify by lyc at 2018-11-12
my.cnf 5.7配置解析12345678910111213141516171819[client]port = 3306socket = /data/mysql_data_3306/mysql_3306.sockdefault-character-set = utf8mb4[mysqld]### BASE INFOuser = mysqlbind-address = 0.0.0.0port = 3306basedir = /usr/local/mysql-5.7.20datadir = /data/mysql_data_3306socket = /data/mysql_data_3306/mysql_3306.sockpid-file = /data/mysql_data_3306/mysql_3306.pidlog_error = /data/mysql_log/error_log_3306.loglog_timestamps = systemserver-id = 1# ...
mysql-5.7.24 二进制安装
一、下载说明
MySQL.57 Download
大版本选择MySQL Community Server社区版
mysql版本选项5.7.xx
操作系统选择Linux-Generic适用于所有的linux平台的通用二进制安装版
操作系统位数选择x86,64-bit
二进制安装版即免安装,适用于大部分linux平台的版本,Centos,ubuntu
二、mysql-5.7.24 二进制安装1.安装依赖1yum install libaio libaio-devel numactl numactl-devel -y
2.下载解二进制包1234567891011groupadd mysqluseradd -r -g mysql -s /sbin/nologin -MN mysqlcd /usr/local/src/wget -c https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gztar xvf mysql-5.7.24-linux-glibc2.12-x86_ ...
MySQL 索引 index
Write by lyc at 2018-08-13Modify by lyc at 2019-3-27细说mysql索引Python开发【第十八篇】:MySQL(二)索引补充
一、MySQL 索引 index1.适合创建索引的场景
问题1:既然索引可以加快查询速度,那么就给所有的列创建索引吧?
解答:因为索引不但占用系统空间,而且更新数据库时还需要维护索引数据的,因此,索引是一把双刃剑,并不是越多越好,例如:数十到几百行的小表上无需建立索引,更新频繁,读取比较少的表要少建立索引。
问题2:需要在哪些列上创建索引呢?
索引一定要创建在WHERE后的条件上,而不是SELECT后的选择数据的列上,另外,我们尽量选择在唯一值多的大表上建立索引,例如,男女性别列只有两个值,唯一值太少不适合建立索引。
问题3:加索引会不会锁表?
解答:不会锁表。一般情况下使用 ALTER 不会锁表,加之前也要规避有长事务同时进行。 mysql创建索引导致锁表阻塞查询
2.创建索引基本知识小结
索引类似书籍的目录,会加快查询数据的速度。
要在表的列(字段)上创建索引。
索引会加快查询速度,但是会 ...
mysql性能优化:connections连接参数
Write by lyc at 2018-08-01
一、to many connectionsshow proceslist 时发现大量的sleep,有什么风险吗,该如何处理?
可能的风险有:
大量sleep线程会占用连接数,当超过max_connections后,新连接无法再建立,业务不可用
这些sleep线程中,有些可能有未提交事务,可能还伴随着行锁未释放,有可能会造成严重锁等待
这些sleep线程中,可能仍有一些内存未释放,数量太多的话,是会消耗大量无谓的内存的,影响性能
建议应对措施:
升级到5.7及以上版本,连接性能有所提升;
采用MariaDB/Percona版本,根据情况决定是否启用thread pool功能;
适当调低wait_timeout,interactive_timeout值,例如只比java连接池的timeout时间略高些即可;
利用 pt-kill 或辅助脚本/工具巡查并杀掉无用sleep进程;
利用5.7的新特性,适当设置max_execution_time阈值,消除长时间执行的SQL;
定期检查show processlist的结果,找到长时间s ...
mysql5.7 log_timestamps日志时间格式
Write by lyc at 2018-07-31mysql5.7日志时间与系统时间不一致
mysql5.7 log_timestamps日志时间格式1.log_timestamps 参数在 MySQL5.7.2 新增了 log_timestamps 这个参数,该参数主要是控制error_log,genera_log,slow_log等记录日志的显示时间参数。
默认安装后 error_log,slow_log 日志时间戳默认为 UTC,因此会造成与系统时间不一致,与北京时间相差8个小时。
参数 log_timestamps 可选值 [UTC|SYSTEM]
2.查看日志时间配置1234567mysql> show global variables like "log_timestamps";+----------------+-------+| Variable_name | Value |+----------------+-------+| log_timestamps | UTC | # 默认值为UTC+----------------+- ...
Linux 磁盘管理(三):GPT分区表工具 gdisk
Write by lyc at 2019-5-13笔记整理自《鸟哥Linux私房菜第四版》
Linux 磁盘管理(三):GPT分区表工具 gdisk划重点!!!
MBR 分区表请使用fdisk分区!
GPT 分区表请使用gdisk分区!
1.创建 GPT 分区表首先为虚拟机添加一块 100G 的磁盘 /dev/sdb,查看该磁盘状态是全新的。
1234567$ parted /dev/sdb printError: /dev/sdb: unrecognised disk labelModel: VMware Virtual disk (scsi) Disk /dev/sdb: 107GBSector size (logical/physical): 512B/512BPartition Table: unknown # 没有分区表Disk Flags:
安装 gdisk 磁盘分区工具。
1$ yum install gdisk -y
gdisk 交互式操作磁 ...
Linux 磁盘管理(二):MBR分区表工具 fdisk
Write by lyc at 2018-7-28笔记整理自《鸟哥Linux私房菜第四版》
Linux 磁盘管理(二):MBR分区表工具 fdisk划重点!!!
MBR 分区表请使用fdisk分区,GPT 分区表请使用 gdisk 工具分区。
fdisk 只能对 2T 以下的磁盘进行分区操作,大于 2T 用gdisk, parted
1.查看所有识别到的磁盘123456789101112131415161718192021222324252627$ fdisk -l# 系统的第一块sas磁盘:/dev/sdaDisk /dev/sda: 21.5 GB, 21474836480 bytes # 磁盘名称:总大小,总字节数255 heads, 63 sectors/track, 2610 cylinders # 磁头数,扇区数,柱面数Units = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O si ...
Linux 磁盘管理(一):磁盘基础知识
Write by lyc at 2018-7-28笔记整理自《鸟哥Linux私房菜第四版》
Linux 磁盘管理(一):磁盘基础知识一、磁盘基础知识1.名词解释
英文
解释
Disk
磁盘
Head
磁头
Sector
扇区
Track
磁道
Cylinder
柱面
Units
单元块(一个柱面的大小)
Block
数据块
Inode
索引节点
2.磁盘的基础概念
一块磁盘有 2-14 个盘片,每个盘片有两个盘面,每个盘面对应一个读写磁头,用磁头号来区分盘面(0磁头为第一块正面盘面,1磁头为第一块背面盘面),即盘面数就是磁头数,盘片数×2=磁头数(盘面数)。
不同盘面的磁道被划分为多个扇形区域,每个区域就是一个扇区 Sector。每个扇区的大小都是 512 字节。扇区包括存储数据地点的标识符和存储数据的数据段。
同一个盘面,以盘片中心为圆心,每个不同半径的圆形轨迹就是一个磁道 Track。
柱面是所有盘面(相同半径)的半径的所有(磁道)的集合,不同盘面相同半径的磁道组成一个圆柱面就是柱面 Cylinder。
一个柱面包含多个磁道(这些磁道半 ...
mysql 存储引擎
Write by lyc at 2018-07-26
一、存储引擎介绍1.关于mysql存储引擎
mysql存储引擎相当于linux的文件系统,数据是放在文件系统上存储的,而mysql里面存数据是放在引擎上存储的。
一份数据只能存在一个文件系统上面,而mysql一份数据只能存在一个引擎上面,但是不同的表和库可以使用不同的引擎。
不同的引擎有不同的特性。mysql5.5.5以前常用的引擎是MyISAM,mysql5.5.5以后默认的引擎是InnoDB
MyISAM适合于读多写少,而InnoDB适合当今的高并发。
123456789101112131415mysql > show engines;+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+| Engine | Support | Comment ...