当前位置:Gxlcms > 数据库问题 > Linux运维 第四阶段 (二) MySQL命令、数据类型、变量

Linux运维 第四阶段 (二) MySQL命令、数据类型、变量

时间:2021-07-01 10:21:17 帮助过:13人阅读

运维 第四阶段 (二) MySQL命令、数据类型、变量

一、修改密码的三种方式:

1、#mysqladmin  -u  USERNAME -h  HOSTNAME  -p password  ‘new_password’  (输入旧密码设置新密码)

-u (--user)

-p (--password)

-h (--host)

例:#mysqladmin  -u  root -h  localhost  -p password  ‘redhat’

2、>SET  PASSWORD  FOR  ‘USERNAME’@’HOST’=PASSWORD(‘new_password’);

例:>SET  PASSWORD  FOR  ‘root’@’localhost’=PASSWORD(‘redhat’);

3、>UPDATE  mysql.user  SET PASSWORD=PASSWORD(‘redhat’) WHERE  User=’USERNAME’;

例:>UPDATE  mysql.user  SET PASSWORD=PASSWORD(‘redhat’) WHERE  User=’root’;

 

二、prompt提示符:

mysql> Ready for new statement

---> Waiting for next line of statement

‘> Waiting for end of single-quoted string)仅一个单引号

“> Waiting for end of double-quoted string

`> Waiting for end of backtick-quoted identifier)反引号

/*> Waiting for end of c-style commentC语言注释信息

 

三、mysql命令两类:

client-side命令;

server-side语句(有语句结束符,默认是分号)

1、client-side命令(交互式模式和批处理模式):

注:批处理模式就是直接处理已编辑好的*.sql文件(例:>\.  init.sql#mysql  < test.sql也可用来直接恢复)

>\? (查看client-side所有命令)

>\c (语句不再执行,提前终止(前提不要加语句结束符,例如分号))

>\d 后接要定义的结束符 (定义语句结束符)

>\r (重新连接至服务器上)

>\g (无论语句结束符是什么,直接将此语句送至服务器执行,适用于改了语句结束符但忘记了)

>\G (无论语句结束符是什么,直接将此语句送至服务器执行,并将结果以竖排显示)

>\! COMMAND  (在mysql交互模式下执行shell命令)

>\.script  (执行脚本或用>source脚本名也可)

>\s (从服务器获取状态信息)

>\u  DATABASE_NAME (相当于USE切换数据库)

>\W (语句完成显示警告信息)

>\w (语句完成不显示警告信息)

>\#>rehash  (对于新建的对象启用名称补全功能,要禁用(#mysql  -uroot -p  -A或编译时--no-auto-rehash--disable-auto-rehash

#mysql  -u  USERNAME -p  -h  HOST --port  N  --protocol tcp  -D  DATABASE

--port (例:3306)

--protocol [tcp|socket|pipe|memory]  (注:同一主机间通过mysql.socket通信,pipe/memorywin下使用)

-D(--database)  后接数据库名 (登陆时使用指定的数据库)

#mysql  -H(--html)  (表格式的显示方式,例:>SELECT  User,Host FROM  user;将显示内容复制到记事本中,改名为.html,用浏览器打开)

#mysql  -X(--xml)

2、server-side命令(mysqladmin/mysqldump/mysqlimport/mysqlcheck):

>HELP key_word

#mysqld ---help  --verbose

注:mysql的配置文件my.cnf是集中式分段配置的,绝大多数的参数都可在命令行直接执行。

#mysqladmin  [options] command  [arg]  [command [arg]]

例:

#mysqladmin  create|drop testdb(创建、删除数据库)

#mysqladmin  -uroot -p  password  ‘new_password’  (更改密码)

#mysqladmin  -uroot  -p  -h IP|host  ping  (查看某台服务器数据库是否在线)

#mysqladmin  processlist (查看正在执行的进程列表)

#mysqladmin  status  --sleep  2  --count 2  (显示服务器状态,每隔两秒共显示两条)

#mysqladmin  extended-status  (显示状态变量,监控mysqlserver的重要手段)

#mysqladmin  variables (显示服务器变量)

#mysqladmin  flush-pvrivileges|reload  (重读授权表)

#mysqladmin  flush-tables (关闭当前打开的文件句柄)

#mysqladmin  flush-threads (重置线程缓存)

#mysqladmin  status (重置大多数的服务器状态变量)

#mysqladmin  refresh (相当于flush-logsflush-hosts一起重置,滚动二进制日志、中继日志,清除主机内部信息(例如:可以允许多次登录未登上的用户再次尝试登陆)

#mysqladmin  shutdown (关闭mysqlserver进程)

#mysqladmin  version (服务器版本号及状态信息)

#mysqladmin  start-slave (启动从服务器的复制线程(SQL threadIO thread))

 

四、数据类型:

1、numeric data types:

精确数值型:TINYINT(1byte)/SMALLINT(2)/MEDIUMINT(3)/INT(4)/BIGINT(8)/DECIMAL/BIT

近似数值型(浮点型):FLOAT(单精度)/DOUBLE(双精度)

注:FLOAT(g,f),g表示整体位,f表示小数点后位数,例如:1.36表示为FLOAT(3,2)

TINYINT(1)是显示1位数字,与具体的存储数值无关。

2、string data types:

CHAR(定长255/VARCHAR(变长65535)——不区分大小写

BINARY(定长255/VARBINARY(变长65535)——区分大小写

TINYBLOB(255)/BLOB(64K)/MEDIUMBLOB(16M)/LONGBLOB(4G)Binary Large OBject)——区分大小写

TINYTEXT(255)/TEXT(65535)/MEDIUMTEST(16777215)/LONGTEXT(4294967295)——不区分大小写

ENUM(65535)枚举(enumeration

SET(1-64string)集合

注: VARCHAR长度在255个字符以内则多占1个结束符;若超出255个字符则多占两个结束符,最多可存65535个字符,例如在VARCHAR下存两个字符,则实际上占三个字符位,有一位结束符;

CHARTINYTEXT虽都能存255个字符,但CHAR能索引整个字段,TINYTEXT则不行;

只要符合要求,够用就行,越简单越好,以后管理成本越低,不要随意改变数据类型。

3、date and time types:

DATE(3bytes)/TIME(3)/DATETIME(8)/TIMESTAMP(4)/YEAR(1)

4、定义数据类型的目的:

存储什么类型的值(what kind of values it can represent)

占多大空间(how much space values take up)

定长还是变长(fixed-length or variable-length)

mysql如何对其进行比较和排序(compares and sorts)

是否能创建索引(whether the type can be indexed)

 

5、常用的修饰符:NULL/NOT NULL/DEFAULT/AUTO_INCREMENT/UNSIGNED/PRIMARY KEY/UNIQUE  KEY

特有的修饰符:CHARACTER SET(字符集)、COLLATION(排序规则)

>SHOW  CHARACTER SET;  (查看字符集)

>SHOW  COLLATION; (查看排序规则)

使用AUTO_INCREMENT条件:整型、非空、无符号、主键或唯一键

>SELECT  LAST_INSERT_ID();  (查看自动增长函数结果)

>SELECt  DATABASE(); (查看内置函数)

注:mysql内部有很多存储函数、存储过程,所有函数都可通过SELECT执行

 

1>CREATE TABLE  test(

id  INT UNSIGNEd  AUTO_INCREMENT  NOT NULL  PRIMARY  KEY,

name  CHAR(20));

2:RRtype ENUM(‘A’,’PTR’,’CNAME...) (解析记录resource record type:A,PTR,CNAME,AAAA,MX,NS,SOA,SRV

 

五、SQL模式(违反数据规则的处理办法):

ANSIQUOTES  双引号相当于反引号,单引号只用来标示字符串(实际上在mysql中单引号、双引号、反引号通用);

INGORE_SPACE  在内建函数中忽略空格;

STRICT_ALL_TABLES  此项没设置时非法数据允许并警告,此项设置时非法数据被拒绝,最严格模式;

STRICT_TRANS_TABLES  向支持事务的表中插入非法数据,不允许并返回错误

TRADITIONAL

>SHOW  GLOBAL VARIABLES  LIKE  ‘sql_mode’; (查看sql_mode默认规则)

 >SELECT  @@golbal.sql_mode;  (用SELECT语句调用服务器变量并查看)

>SELECT  @@session.sql_mode;

 

六、mysql服务器变量:

1、分类:

按作用域分为两类:全局变量、会话变量;

按生效时间分两类:动态、静态;

全局变量:mysql服务启动时全局变量生效,如:/etc/my.cnf,查看方式:

>SHOW  GLOBAL VARIABLES;  (仅管理员用)

会话变量:client-side连接至server-side,仅此次会话生效,会话关闭不生效,如~/.my.cnf,查看方式:

>SHOW  [SESSION] VARIABLES;  (用户使用)

动态:可即时调整,即时生效

静态:要写在配置文件中,通过参数传递给进程mysqld

动态调整对全局:对当前会话无效,只对新建会话有效;

动态调整对会话:即时生效,但只对当前会话生效。

2、设置

>SET  GLOBAL|SESSION  variables_name=’value’;

例:>SET GLOBAL  sql_mode=’strict_all_tables’; (仅对新建会话生效)

>SET  SESSION sql_mode=’strict_trans_tables’;  (仅对当前会话生效,即时生效)

 


本文出自 “Linux运维重难点学习笔记” 博客,谢绝转载!

Linux运维 第四阶段 (二) MySQL命令、数据类型、变量

标签:linux运维

人气教程排行