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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

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

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’;

>FLUSH  PRIVILEGES;  (读至内存表,不用重启服务直接生效)

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

>FLUSH  PRIVILEGES;

 

二、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服务器变量(#mysqladmin  variables):

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’;  (仅对当前会话生效,即时生效)

 



本文转自 chaijowin 51CTO博客,原文链接:http://blog.51cto.com/jowin/1683197,如需转载请自行联系原作者

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
18天前
|
运维 Kubernetes 监控
揭秘高效运维:如何用kubectl top命令实时监控K8s资源使用情况?
揭秘高效运维:如何用kubectl top命令实时监控K8s资源使用情况?
23 0
|
30天前
|
SQL 关系型数据库 MySQL
|
18天前
|
运维 Kubernetes 容器
K8S运维命令必备kubectl命令总结
K8S运维命令必备kubectl命令总结
23 3
|
10天前
|
关系型数据库 MySQL Linux
linux CentOS 7.4下 mysql5.7.20 密码改简单的方法
linux CentOS 7.4下 mysql5.7.20 密码改简单的方法
17 0
|
16天前
|
存储 关系型数据库 MySQL
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
|
2天前
|
存储 关系型数据库 MySQL
Linux | MySQL基础
Linux | MySQL基础
|
3天前
|
关系型数据库 MySQL Linux
Linux联网安装MySQL Server
Linux联网安装MySQL Server
12 0
|
4天前
|
运维 网络协议 安全
neutron 运维命令
OpenStack Neutron是OpenStack的网络服务,它负责管理虚拟机和其他计算资源之间的网络连接。Neutron提供API和插件,支持多种网络拓扑和服务,包括虚拟网络和物理网络的配置、管理和调度。它还支持IP地址分配、网络连接和安全策略等。
7 1
|
10天前
|
关系型数据库 MySQL
如何解决cmd命令窗口无法运行mysql命令的问题
如何解决cmd命令窗口无法运行mysql命令的问题
7 0
|
16天前
|
运维 Linux Shell
linux运维常用命令
linux运维常用命令