linux下mysql数据库基础及客户端命令详解
linux下mysql数据库基础及客户端命令详解
1.mysql数据库存储引擎:
SHOW ENGINES; #查看mysql支持的存储引擎
常见有如下两个存储引擎:
MyISAM:每表三个文件:
.frm: 表结构
.MYD:表数据
.MYI:表索引
InnoDB:默认所有表共享一个表空间文件;
建议:每表一个独立的表空间文件;默认此功能没有打开
.frm: 表结构
.ibd: 表空间,包含表数据和表索引
.opt: 字符集和字符排序规则
打开InnoDB每表创建独立的表空间文件功能办法:
vim /etc/my.cnf #新增如下一行
innodb_file_per_table = 1
SHOW VARIABLES LIKE 'innodb%'; 查看InnoDB服务器变量的方法
2.mysql客户端连接服务器端工具
选项:
--user, -u #意思是指定登入用户
--host, -h #意思是指定mysql服务器
--password, -p #意思是用户密码
--port #意思是指定mysql服务器连接端口
--protocol #使用指定协议连接(如Tcp,Socket,pipe,memory)
--database DATABASE, -D #指定连入msyql服务器的默认数据库
例如:SELECT DATABASE(); #查看当前(默认)数据库
3.mysql两种工作模式:交互式模式 和 批处理模式(脚本模式)
例如:mysql < init.sql #此条命令为批处理模式
4.mysql>有客户端命令和服务器端命令之分
客户端命令:服务器语句有语句结束符,默认分号;
mysql>
\?:客户端命令获取帮助
\c: 提前终止语句执行
\d: 定义语句结束符
\g: 无论语句结束符是什么,直接将此语句送至服务器端执行;
\G: 与\g功能相似,但结果以竖排方式显示;
\! 命令: 执行shell命令
\W: 语句执行结束后显示警告信息;
\#: 对新建的对象,支持名称补全功能;
\q:退出mysql数据库
\.:执行mysql脚本文件
\s:显示mysql数据库状态信息
5.mysql> 命令或语句未输完整,有如下几个情况:
-> 等待下一个语句
'> 等待下一个单引号
"> 等待下一个双引号
`> 等待下一个反引号
/*> 等待下一个*/
6.服务器端命令获取帮助: help 关键字
mysqladmin [options] command [arg] [command [arg]] ...
command子命令:
create DATABASE 创建数据库
drop DATABASE 删除数据库
ping 查看数据库的连线状态
processlist 查看数据库当前进程列表
status 查看数据库当前状态统计
--sleep N:显示频率
--count N: 显示多个状态
extended-status: 显示状态变量
variables: 显示服务器变量
flush-privileges: 让mysqld重读授权表, 等同于reload;
flush-status: 重置大多数的服务器状态变量
flush-logs: 二进制和中继日志滚动
flush-hosts: 清除dns缓存和连接错误信息
refresh: 相当于同时执行flush-hosts和flush-logs
shutdown: 关闭mysql服务器进程
password:修改指定用户连接数据库的密码
version: 服务器版本及当前状态信息;
start-slave: 启动复制,启动从服务器复制线程;
stop-slave: 关闭复制;
例如:mysqladmin -uroot -p password 'NEW_PASS' #设定密码