Linux运维 第四阶段 (二) 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 comment)C语言注释信息

三、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/memory在win下使用)

-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-logs和flush-hosts一起重置,滚动二进制日志、中继日志,清除主机内部信息(例如:可以允许多次登录未登上的用户再次尝试登陆)

#mysqladmin  shutdown (关闭mysqlserver进程)

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

#mysqladmin  start-slave (启动从服务器的复制线程(SQL thread和IO 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下存两个字符,则实际上占三个字符位,有一位结束符;

CHAR和TINYTEXT虽都能存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’;  (仅对当前会话生效,即时生效)

时间: 2024-10-06 10:03:56

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

Linux运维 第三阶段 (二十) tomcat

一.相关概念(1.编程语言:2.servlet.jsp:3.tomcat): tomcat(app-server server) 为提高tomcat工作性能,前端要引入很多组件(如cache server(varnish)同样对它生效) 1.编程语言: php相关框架.网站程序设计涉及到的基本内容: php: 开发语言,脚本语言,动态语言: 安装的php是个运行环境: 用php开发语言开发网站程序,这个程序在运行环境中解释执行,若每条指令都解释执行.每个用户请求的动态内容都解释执行这将非常慢:在

Linux运维 第五阶段(四) corosync&pacemaker

Linux运维 第五阶段(四)corosync&pacemaker 一.相关概念: 补充 { what is high Availability? A=MTBF/(MTBF+MTTR) MTBF(mean time betweenfailures平均无故障时间) MTTR(mean time to repair平均修复时间) two ways improve availability? increase MTBF to very large values reduce MTTR to very

Linux运维课程 第一阶段 重难点摘要(四)CISCO

Linux运维课程第一阶段重难点摘要(四)CISCO 一.路由器接口操作: 1.#show running-config  查看接口 2.#interface fastethernet 0/1      进入f0/1配置(0/1,0代表插槽1代表端口.若是s0/0/0,第一个0表示路由器本身) 3.#interface fastEthernet 0/1 #description tachingroute    接口描述 4.#do show running-config         do 

Linux运维 第三阶段 (十二)tcp wrapper

Linux运维第三阶段(十二)tcp wrapper tcp wrapper tcp wrapper(工作在TCP层的访问控制工具,通常只对TCP协议的应用做控制,它本身只是个库文件libwrap.so(由glibc提供)) 当来自客户端的请求访问本机服务时,请求先到达本机网卡,再到内核TCP/IP协议栈,路由发现是访问本机的,转至用户空间服务所监听的套接字上,服务响应送至内核TCP/IP协议栈,再通过路由经网卡返回至客户端:有了tcp wrapper后,在这过程当中附加了一层访问控制机制,由t

Linux运维 第三阶段 (十三)nss&pam

Linux运维第三阶段(十三)nss&pam 一.nss(network service switch网络服务转换) authentication(认证,决定用户的用户名和密码是否能通过检验) authorization(授权,决定用户是否能访问某服务) audition(审计) username-->UID groupname-->GID http-->80port FQDN-->IP(hosts文件,DNS,mysql,NIS(networkinformation se

Linux运维课程 第一阶段 重难点摘要(五)CISCO

Linux运维课程第一阶段重难点摘要(五)CISCO 一.高级路由管理 1.        路由:数据包从一台设备通过网络发往另一台不同网络中的设备,路由器不关心这些主机,它们只关心网络和通向每个网络的最佳路径.目的主机的IP地址用来保证数据包可以通过路由到达目的网络,而主机的MAC地址用于将数据包从路由器投递到目的主机. 静态路由:由管理员手动输入到路由表中的路由:不占用带宽,不会随着网络拓扑的变化而变化,缺少灵活性: 动态路由:通过动态学习得到路由:占用网络带宽和CPU资源:会随着网络拓扑的

Linux运维 第三阶段 (十七) memcached

一.相关概念: memcached.org(live journal站点贡献的),很多流行站点都在用,如wikipedia.twitter.youtube.mixi等,memcached是非常流行的缓存服务,众多的应用程序开发基本都支持memcached缓存(C有C库,C++有C++库,php有php库,开发时都可直接调用memcached功能,若某个应用程序开发时不用memcached,它就不能往memcached中缓存数据,缓存数据与否取决于app自身,由app决定缓不缓存用不用它) mem

Linux运维 第三阶段 (十九) varnish(1)

Linux运维 第三阶段 (十九) varnish 一.相关概念: http/1.0-->http/1.1(重大改进:对缓存功能实现了更精细化的设计) RFC(request file comment,每一种协议都有请求注解文档,讲协议规范) http页面由众多的web object组成,有些是静态,有些是通过程序执行后生成的:为加速web的访问,browser中引入了缓存机制,能将访问的静态内容或可缓存的动态内容缓存到本地,而后client再次到原始server上请求之前相同的内容时,如果原始

Linux运维 第三阶段 (六) 搭建LAMP环境

Linux运维 第三阶段(六) 搭建LAMP环境 环境:RHEL6 X386或X86_64,其中64位在此文中已用()标明注意事项. 一.准备工作 1.安装编译工具gcc.gcc-c++ 注意解决依赖关系,推荐使用yum安装,若不能联网可使用安装光盘做为yum源-- # yum -y install gcc # yum -y install gcc-c++ 2.关闭系统RPM安装包的Apache.MySQL的服务 关闭启动的服务httpd.mysqld #service httpd stop #

Linux运维 第三阶段 (十一)iptables

Linux运维第三阶段(十一)iptables iptables linux防火墙:netfilter(框架framework):iptables(生成防火墙规则并将其附加在netfilter上,真正实现数据报文过滤.NAT.mangle等规则生成的工具):真正起作用的是规则,规则放在netfilter上才能生效 网络防火墙的功能根据TCP/IP首部实现的 IP报文(见文末附图): fragment ID(段标识) MF(more fragment) DF(don't fragment,单个报文