| 关键词: nbsp Mysql mysqladmin DataBase 数据库 变量 User select SHOW 存储 |
数据库发展历程: 层次模型--> 网状模型(耦合度高)--> 关系模型(对象-关系模型) DBMS数据库管理系统 RDBMS关系数据库管理系统 managing storage 存储管理 managing security 安全管理 managing metadata 元数据管理 managing trasactions 事务管理 supporting connectivity 支持扩展 optimizing performance 性能优化 providing back-up and recovery mechanisms 备份和恢复 processing requests for data retreval an modifaction 数据检索和修改 DataBase发展方向: 开发DBA 数据库设计 存储过程,存储函数,触发器(SQL) 管理DBA 软件安装,卸载,升级 数据导入和导出 数据的备份和恢复 用户管理,权限管理 安全管理 架构设计 SQL(Structure query langue)结构化查询语言 内建的语句: select ,update,drop,update ... 查询语句:select ,update , delate 常见数据库管理系统 大型的: oracle sybase informix DB2 小型的: sql server 开源的: Mysql postgreSQL-->EnterpriseDB(除了崩溃后恢复不如mysql,其他的性能是相当优越的) mysql的安装和升级: mysql是基于线程工作 DML 数据操作语言DDL 数据定义语言存储引擎:将逻辑结构转化成物理结构 Mysql版本: GA (general availability)稳定版本 RC 发行版 beta 测试版 alpha 测试版 mysql的软件包rpm包:mysql-client 客户端*mysql-debuginfo 调试信息mysql-devel开发库*mysql-embedded 嵌入式mysqlmysql-ndb-management mysql的集群mysql-server 服务器的端口,提供mysqld*mysql-shared 共享工具*mysql-shared-compat 提供老版本库的mysql-test 测试组件 Linux上的启动查找配置的次序/etc/my.cnf-->/etc/mysql/my.cnf-->$MYSQL_HOME/my.cnf-->/path/to/file when default-extra-file=/path/to/file is specifid-->~/.my.cnf 启动查找顺序,如果有冲突以最后找到的为准,如果没冲突就综合考虑从头到尾都要查询 安装完成以后mysql会自动生成5个帐号,而且密码为空3个管理员帐号:root@localhost、[email protected]、root@hostname2个匿名帐号:''@localhhost、''@hostname #mysql>use mysql 使用mysql>SHOW TABLES; 显示表>DESC TABLE_NAE;显示表格式>SELECT Host,User,Password FROM user; 显示表中指定列>SELECT * FROM user \G; 按照列的方式显示>DORP DATABASE db_name; 删除数据库 装完mysql的第一步工作是为root设置密码,删除匿名用户,提高安全性设置密码:方法1:#mysqladmin -uroot -hlocalhost password'redhat' 设置密码:-u用户名,-h主机名方法2:#mysql>UPDATE user SET Password=PASSWORD('redhat') WHERE User='root' and Host='127.0.0.1';只要原密码相同,加密后的密码就一样>FLUSH PRIVILEGES;通知mysql把修改的内容加载到内存方法3:#mysql>SET PASSWORD FOR 'root'@'host_name'=PASSWORD('new_password');>FLUSH PRIVILEGES;删除匿名用户>DROP USER ''@localhost;>DROP USER root@'::1';>DROP USER ''@hostname;>FLUSH PRIVILEGES; 授权:>GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY 'redhat';>FLUSH PRIVILEGES; 这个时候就可以是window客户端连接进来 mysql AB工具:mysqlmysqladmin mysqldump Options for user:--user==-u 用户--password==-p 密码Options for host:--protocol tcp 客户端和服务端不在同一个主机上 socket 客户端和服务端在同一个主机上且是Linux或unix上 pipe mysql-server 在window上 memory mysql-server 在window上--host==-h 主机--port--socket -D db_name--database db_name mysql 的应用:eg;mysql -uroot -h192.168.1.101 -D mysql -p >SELECT DATABASE();显示当前默认数据库>SELECT USER();显示当前默认用户 #cd ~#vim .my.cnf[client]user=rootpassword=redhat然后在使用#mysql 就不用输入密码了,但是你要注意这个文件的权限 #vim test.sql CREATE DATABASE test;批处理方法:方法一:#mysql -uroot -p < test.sql方法二:#mysql>SOURCE /etc/test.sql; 送到服务器端的要在后面加上“;”而客户端执行的不需要加>STATUS mysql提示符:-> 命令未执行完'> 缺少对应的"’”"> 缺少对应的“””/*> 缺少对应的注释符号 数据库对象: 表,二维关系 索引 视图 触发器 存储过程 存储函数 事件调度器 游标 用户物理 文件存储引擎 插件式的存储引擎 mysql 会记录下命令历史,放在用户家目录下的.mysql_history 开启命令补全>\# >rehash \c 取消命令\d 定义结束符号 eg:\d // 就是以//结束\g 忽略默认定义的结束符,直接送到服务器端执行\G 以列的方式显示-E or --veriHELP COMMAND 查看命令帮助 -emysql -e "SHOW DATABASE" 直接在shell中执行mysql语句,在脚本中很常用mysql -e "SELECT User,Host,Password FROM mysql.user;" 如检索某个表 mysqladmin的使用:mysqladmin [option] command [arg] [command]#mysqladmin ping 探测服务器是否处于运行状态#mysqladmin -h 172.16.100.1 ping#mysqladmin create sampledb 创建数据库#mysqladmin drop 删除#mysqladmin debug 调试信息(mysql的数据目录下的)#mysqladmin extended-status== >SHOW STATUS;#mysqladmin flush-hosts#mysqladmin flush-logs#mysqladmin flush-privileges#myaqladmin flush-status #mysqladmin flush-tables 清空表#mysqladmin flush-thread#mysqladmin processlist 查看当前用户连接进来,并做什么操作 reload refresh shutdown start-slave 启动从服务器 status 显示全局状态信息 variables version 显示版本号 status 显示#mysqladmin status --sleep 3 --count 2#top -d 2 -n 2 两秒刷新一次,显示两次退出>show variables like '%datadir%';查看数据文件的目录 mysql图形化工具:SQLyogMySQLFrontphpMyAdminMySQL Query BrowserMySQL AdministratorMySQL Workbench mysql开发知识: >use sampledb; >CREATE TABLE stus (Name CHAR(18),GENDER CHAR(1));NO NULL >SHOW CHARACTER SET; 查看支持字符集>SHOW COLLATION;查看排序方式SELECT CURRENT_DATE();SELECT CURRENT_TIME();SELECT CURRENT_DATETIME();CREATE TABLE user (ID UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,Name VARCHAR(100) NO NULL,Gender ENUM('M','F') NO NULL DEFAULT 'M',Age TINYINT UNSIGNED);INSERT INTO user (Name,Age) values ('luowei',18); 插入SHOW WARNINGS;查看错误警告 SET sql_mode='ansi'设置sql的模型SHOW VARIABLES LIKE "%sql_mode%";查看模型SHOW VARIABLES LIKE '%sql_mode%';常用的模式: ansi ignore_space strict_all_tables strict_trans_tables traditional mysql变量类型 全局变量:对每一个新建立的会话都有效 会话变量:只对当前会话有效 SHOW VARIABLES SHOW GLOBAL VARIABLES;显示全局变量 SHOW SESSION VARIABLES; 显示会话变量 LIKE '' %任意长度的字符串 ?匹配一个 SELECT @@global.sql_mod; 明确知道变量名字 修改变量值: SET sql_mode='TRADITIONAL' SET GLOBAL sql_mode='TRADITIONAL' 设置的会话变量立即生效,但是只对当前会话有效 设置全局变量不会立即生效,重新登录对所有的有效 大小写: 关键字和函数名不区分大小写,如select 表名,数据库名在window上不区分大小写,在Linux上区分 存储过程和存储函数不区分大小写 触发器区分大小写 mysql的别名区分大小写 database: CREATE DATABASE db_name; 创建 CREATE DATABASE IF NOT EXISTS mydb; 脚本中常用,如果不存在就创建 CREATE DATABASE CHARACTER SET 'gbk' COLLATE 'gbk_bin' mydb; SHOW CREATE DATABASE db_name;显示使用什么语句创建的数据库 DROP DATABASE db_name; DROP DATABASE IF EXISTS db_name; 删除数据库 SHOW WARDINGS;显示警告 ALTER DATABASE db_name COLLATE chartset 修改数据库 tables && Index key(键),index 候选键 主键 primary key 唯一键 unique key 外键 foreign key 表和表之间用的 范式 SHOW ENGINES;显示系统默认引擎,default是默认的 对于mysql,如果使用外键,就要有支持事务的引擎 索引能加快查询速度,但是对数据库的修改会降低速度 《warn:未完,待续。。。》 本文出自 “IT梦-齐-分享” 博客,请务必保留此出处http://roqi410.blog.51cto.com/2186161/655374 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|