由于是高级部分 也就不介绍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相关的配置都从这个文件中更改
架构介绍
随便搞了张用了多年的架构图
不要慌 其实并没有什么东西的
一共分为4层架构 分别是连接层 服务层 引擎层 存储层
连接层
其他语言与sql的交互 控制数据库的连接与关闭
服务层
看图也能知道 主要有对sql语句的解析 排序 优化 查询缓存等功能
引擎层
mysql提供了可插拔式的引擎 只要换一个引擎 就有不同的效果
具体效果体现在哪呢?
这里我们主要介绍下 MyISAM与InnoDB之间的区别
MyISAM
支持表锁 简单来讲会锁住整张表 不利于并发场景
不支持事务 也就是出现了错误不能进行回滚
不支持主外键 应该都知道主键 外键的概念吧?
只缓存索引 后面会讲索引
InnoDB
支持行锁 有利高并发
支持事务 可以回滚
支持主外键
缓存索引的同时还会缓存真实数据 所以对内存要求高
总的来说主要我们用的还是 InnoDB 但是某些场合会用MyISAM
存储层
支持各种本地磁盘和其他文件系统 因为表数据 表定义 索引什么都是直接存在磁盘上与数据库进行交互的 所以会有许多IO操作 这点可以想到吧?
关键明白这四层架构对之后的学习会有着和清晰的认识 我们要既见森林 有见树木 对架构先有个整体的了解
只有心能洞察一切 最重要的东西 只用眼睛是看不见的