首页 > 代码库 > 日记20160905mysql
日记20160905mysql
vim /etc/profile.d/mysql.sh
export PATH=$PATH:/usr/local/mysql/bin
echo $PATH
mysql>show engines;
vim /etc/my/cnf
datadir=/mydata/data
修改密码
UPDATE user SET Password=PASSWORD(‘redhat‘) WHERE user=‘root‘;
FLUSH PRIVILEGES;
/etc
vim .my.cnf
[client]
user = ‘root‘
password = ‘redhat‘
host = ‘localhost‘
myisam:每表三个文件frm表结构myd表数据myi表索引
*.frm 表结构定义
*.MYD 数据文件
*.MYI 索引文件
innodb:所有表共享一个表空间文件。建议:表独立一个空间文件.frm 表结构 .ibd 表空间(表数据和表索引)
opt标记字符集和排序规则
SHOW VARIABLES LIKE ‘%INNODB%‘; 查看innodb变量
innodb_file_per_table 打开每表空间文件
mysql>\? 查看帮助
mysql
--user,-u
--host,-h
--password,-p
--port
--protocol
--database DATABASE,-D 指定操作的数据库
查看当前操作的数据库 SELECT DATABASE();
mysql>
交互式模式
批处理模型(脚本模式)
mysql < init.sql
source /root/test/sql
mysql>
命令两类:
客户端命令
\c:提前终止语句结束
ego \G:无论语句结束符是什么,直接将此语句送至服务器执行.而且以竖排显示
go \g:无论语句结束符是什么,直接将此语句送至服务器执行
system \!: 执行shell命令
\W :显示语句执行结束后显示警告信息
\w:
\#:对新建的对象,支持补全功能
服务器语句:有语句结束符,用分号结束;
delimiter \d:定义语句结束符
status
补全:
名称补全
服务器端命令获取帮助:
help COMMAND
mysqladmin [options] command [arg] [command [arg]]
mysqladmin -uroot -p password ‘NEW_PASS‘
mysqladmin
create DATABASE
drop DATABASE
processlist
ping
status
--sleep N:显示频率
--count N:显示多个状态
extended-status:显示状态变量
variables:显示服务器变量
flush-privileges:让mysqld重读授权表==reload
flush-status:重置大多数的服务器状态变量
flush-logs:二进制和中继日志滚动
flush-hosts:
refresh:相当于同事执行flush-hosts和flush-logs
shutdown 关闭mysql服务器进程
version 版本号 ,状态信息
start-slave 启动复制,启动从服务器复制线程
sql thread
io thread
stop-slave 关闭复制
mysqldump,mysqlimport,mysqlcheck
开发视角:
数据类型
约束
数据库、表、索引、视图
SELCECT
存储引擎,也被称为表类型:
myisam表:无事务,表锁
.frm 表结构定义文件
.myd 表结构
.myi 索引
innodb表:事务,行锁
.frm 表结构
.ibd 表空间(数据和索引)
mysql;mysql:myisam
SHOW ENGINES; 查看支持的存储引擎
SHOW TABLE STATUS LIKE ‘user‘; 查看表的属性信息
程序语言连接数据的方式
动态sql:通过函数或方法与数据库服务建立连接
嵌入式sql:
客户端:mysql,mysqladmin,mysqldump,mysqlimport,mysqlcheck
服务器:mysqld,mysqld_safe,mysqld_multi
my.cnf /etc/my.cnf /etc/mysql/my.cnf
$mysql_home/my.cnf --default-extra-file=/path/to/somefile ~/.my.cnf
最后一次找到的是生效配置
innodb_file_per_table _可以写出-
[mysqld]
[mysqld_safe]
[client]
[mysql]
mysqld --help --verbose 查看mysql支持的相关指令的洗信息
1、旧的mysql没有停止服务 killall mysqld
端口 3306
2、datadir=/mydata/data
hostname.err:错误日志
2、数据初始化失败
3、数据目录位置错误
4、数据目录权限问题
DBA:开发dba,数据库设计,sql语句,存储过程,存储函数,触发器
DBA:管理dba,安装,升级,备份恢复,用户管理,权限管理,监控,性能分析,基准测试
mysql data types
mysql language query
数据类型:
数值型
精确数值
int
decimal
近似数值
float
double
real
字符型
定长字符
char 不区分字符大小写
binary 区分字符大小写
变长字符
varchar 不区分字符大小写
varbinary 区分字符大小写
text,blob
ENUM,SET
日期时间型
date,time,datetime,timestamp
域属性,修饰符
数据类型的意义:
1、存入的值类型
2、占据的存储空间
3、定长还是变长
4、如何比较及排序
5、是否能够索引
1,2,3,4,8
tiny,small,mediu,int,bigint
4,8
float,double
ENUM 枚举类型
SET 集合
char可以索引整个字段
text不可以
SHOW CHARACTER SET; 查看当前服务器支持的字符集
SHOW COLLATION;查看字符集的排序规则
SHOW GLOBAL VARIABLES LIKE ‘%char%‘;
AUTO_INCREMENT
整型
非空
无符号
主键或唯一键
CREATE TABLE test(ID INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY)
SELECT LAST_INSERTZ_ID();
FLOAT 不支持 ATTO_INCREMENT
SQL模型:
SHOW GLOBAL VARIABLES LIKE ‘sql_mode‘;查看sql模型
mysql服务器变量
作用于,分为两类:
全局变量
SHOW GLOBAL VARIABLES
会话变量
SHOW [SESSION] VARIABLES
按生效时间划分,分为两类:
可动态调整的:可即时调整,生效
静态
写在配置文件中
通过参数传递给mysqld
动态调整参数生效方式:
全局:对当前会话无效,只对新建立会话有效
会话:即时生效,但只对当前会话有效。
服务器变量:@@变量名
显示:select
设定:set global|session 变量名=‘value’
日记20160905mysql