由于是高级部分 也就不介绍MySQL的优缺点了这篇主要讲下配置和架构

配置相关

设置密码

不管是哪个版本的MySQL都需要重新设置下密码 这里选择5.7版本

设置密码

​/usr/bin/mysqladmin -u root password 123456​

因为默认安装位置就是这个路径 所以直接在后面改成你要的密码即可

字符集乱码

刚开始安装后如果数据插入的是中文 则会导致乱码 出现??? 需要进行修改

因为默认使用的是Latin1编码

为了保证全局生效 建议修改全局配置文件 ​​my.cnf​​ 注意这个名字不能变哦

查看 ​​/etc/my.cnf​​ 文件是否存在 默认应该是没有的 但是没关系

去复制一个模板文件 改一下就行了

这个文件就是了 ​​/usr/share/mysql/my-medium.cnf​

输入命令 ​​cp /usr/share/mysql/my-medium.cnf /etc/my.cnf​​ 将内容复制到 /etc 路径下 应该没有不明白的吧

编辑该文件

​vim /etc/my.cnf​

对应的位置粘贴

[client] 
default-character-set=utf8


[mysqld]

character_set_server=utf8

character_set_client=utf8

collation-server=utf8_general_ci



[mysql]
default-character-set=utf8

注意一点 每次修改了配置文件都需要重启

​service mysqld restart​

主要配置文件

一共分为五个 大致建立点印象即可

log-bin

主从复制相关的文件

log-error

默认是关闭的 记录一些错误或警告信息

查询日志log

这个后面会讲 记录查询的sql语句

数据文件

linux下 默认路径为 ​​/var/lib/mysql​

可以在这里看到许多数据库文件

全局配置文件

​/etc/my.cnf​​ 这个之前说过 mysql相关的配置都从这个文件中更改

架构介绍

1.MySQL高级部分之架构介绍_mysql

随便搞了张用了多年的架构图

不要慌 其实并没有什么东西的

一共分为4层架构 分别是连接层 服务层 引擎层 存储层

连接层

其他语言与sql的交互 控制数据库的连接与关闭

服务层

看图也能知道 主要有对sql语句的解析 排序 优化 查询缓存等功能

引擎层

mysql提供了可插拔式的引擎 只要换一个引擎 就有不同的效果

具体效果体现在哪呢?

这里我们主要介绍下 MyISAM与InnoDB之间的区别

MyISAM

支持表锁 简单来讲会锁住整张表 不利于并发场景

不支持事务 也就是出现了错误不能进行回滚

不支持主外键 应该都知道主键 外键的概念吧?

只缓存索引 后面会讲索引

InnoDB

支持行锁 有利高并发

支持事务 可以回滚

支持主外键

缓存索引的同时还会缓存真实数据 所以对内存要求高

总的来说主要我们用的还是 InnoDB 但是某些场合会用MyISAM

存储层

支持各种本地磁盘和其他文件系统 因为表数据 表定义 索引什么都是直接存在磁盘上与数据库进行交互的 所以会有许多IO操作 这点可以想到吧?

关键明白这四层架构对之后的学习会有着和清晰的认识 我们要既见森林 有见树木 对架构先有个整体的了解


只有心能洞察一切 最重要的东西 只用眼睛是看不见的