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库,功能是:把来源库的复杂度降低
posted @ 2022-01-29 16:40  suyanhj  阅读(40)  评论(0)    收藏  举报