mysql数据库
mysql:
一般使用mysql时,尽量让它做单一的事情(只存数据),3k并发就可能影响性能
MySQL 组成:
客户端程序:
默认存储引擎为InnoDB
| 工具 | 作用 |
|---|---|
| mysql | 交互式的CLI工具 |
| mysqldump | 备份工具,基于mysql协议向mysqld发起查询请求,并将查得的所有数据转换成insert等写操作语句保存文本文件中 |
| mysqladmin | 基于mysql协议管理mysqld |
| mysqlimport | 数据导入工具 |
MyISAM存储引擎的管理工具:
| 工具 | 作用 |
|---|---|
| myisamchk | 检查MyISAM库 |
| myisampack | 打包MyISAM表,只读 |
服务器端程序:
设置数据库管理员root口令
禁止root远程登录
删除anonymous用户帐号
删除test数据库
| 程序 | 作用 |
|---|---|
| mysqld_safe | 守护进程启动 |
| mysqld | 守护进程启动 |
| mysqld_multi | 多实例 ,示例:mysqld_multi --example |
mysql命令:
客户端交互式命令:
help、\s、? 、\? 显示帮助信息
clear、\c 清空当前页面,与crtl+L 效果一样
edit、\e 编辑
exit、quit、\q 退出
print、\p 打印当前命令
prompt (\R) Change your mysql prompt.
rehash、\# 重新刷新hash
source、\. 可执行本地的sql文件,需指定路径
status、\s 显示当前mysql状态信息
system、\! 调用系统命令,执行
use、\u 相当于use 命令
charset、\C 选择字符集
warnings、\W Show warnings after every statement.
nowarning、\w Don't show warnings after every statement.
服务端交互式命令:
select version(); 显示mysql版本信息
客户端非非交互式命令:
mysql -u用户 -p密码
选项:
-A 禁止自动补全
-h主机 服务器主机
-P 服务器端口
-S 指定socket文件路径
-D 指定默认数据库
-C 启用压缩
-e 执行sql指令
-V 显示版本
--print-defaults 获取程序默认使用的配置
客户端命令执行方式:
#-e可直接运行一个命令
mysql -uroot -p123456 -e '\s'
#管道读取
cat 1.sql | mysql -uroot -p123456
#输入重定向
mysql -uroot -p123456 < 1.sql
#交互模式下执行
mysql -uroot -p123456
-->\. 1.sql
例:账号设置
格式: 'root'@'host'
- host是允许此用户可通过哪些远程主机连接mysql服务器,没有定义的就不允许访问
- host支持通配符
% 匹配任意长度的任意字符,例: root@1.1.% = 1.1.0.0/16
_ 匹配任意单个字符
create user root@'192.168.1.%' indentified by '123456'
mysqladmin命令:
mysqladmin -u用户 -p密码 子命令
子命令:
shutdown 关闭数据库,安全关闭,推荐使用
ping 查看数据库是否启动
create 库 建库
drop 库 删库
password 密码 修改密码
mysql相关文件:
配置文件:
服务端配置段: [mysqld]
官方参数文档: https://mariadb.com/kb/en/full-list-of-mariadb-options-system-and-status-variables/
工作特性有多种配置方式:
配置文件内容可以是命令行选项,可使用:show variables\G; 查看
配置文件:类ini格式,集中式的配置,能够为mysql的各应用程序提供配置信息
说明:
- “_”和“-”相同
- 1、ON、TRUE意义相同,0、OFF、FALSE意义相同
配置文件解读:
参数很多,只介绍几个常用的,如需了解其他的,点击我提供的官方连接
| 参数 | 含义 |
|---|---|
| user | mysqld 程序在启动后将在给定 UNIX/Linux 账户下执行。mysqld 必须从 root 账户启动才能在启动后切换到另一个账户下执行。mysqld_safe 脚本将默认使用 user=mysql 选项来启动 mysqld 程序 |
| basedir | 指定 MySQL 安装的绝对路径 |
| datadir | 指定 MySQL 数据存放的绝对路径 |
| port | 服务端口号,默认为 3306 |
| server-id | |
| socket | socket 文件所在目录 |
| character-set-server | utf8mb4 |
| skip-name-resolve | 布尔值,关闭主机名解析,建议关闭 |
socket文件:
说明:
- host为localhost 时自动使用unix sock
服务器监听两种socket地址:
- ip socket: 监听在tcp的3306端口,支持远程通信,侦听3306/tcp端口可以在绑定有一个或全部接口IP上
- unix sock: 监听在sock文件上,仅支持本机通信, 如:/var/lib/mysql/mysql.sock
数据文件:
yum安装的: /var/lib/mysql/
- *.frm是库的结构、记录,视图。包括修改时间、字段等
- *.ibd是库的数据,所有数据都是该文件的内容
- *.trn是触发器文件
补充说明:
工作中备份数据库要备份: 使用数据库、mysql库
- 函数、存储过程放在: mysql.proc表
- 事件放在: mysql.event表
- 通用日志放在: mysql.general_log表
- 触发器放在: *.trn
- 视图放在: *.frm文件
mysql的系统数据库:
mysql库:
- 核心数据库,主要负责存储用户、权限设置、存储过程、函数、关键字等等和mysql自己要使用的控制和管理信息
performance_schema库:
- 5.5版本新增。主要收集服务器性能参数,库中表的存储引擎均为:performance_schema
用户不能创建同类型的存储引擎的表
information_schema库:
- 5.0以后有的。虚拟数据库,类似数据字典,提供访问元数据的方式,即数据的数据,类容是: 库名、表名、访问权限(更详细内容)
sys库:
- 5.7新增。库中所有内容来自performance_schema库,功能是:把来源库的复杂度降低

浙公网安备 33010602011771号