首页 > 代码库 > 日记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