mysql数据库管理之一 mysql数据库的管理软件
lipiwang 2024-10-22 15:47 5 浏览 0 评论
一、搭建数据库服务器
1.选购合适的服务器:
配置: CPU 内存 存储
用途:云服务器、硬件服务器
2.安装软件包的选择:
根据服务器操作系统的版本:windows linux unix
软件的版本:开源软件或商业软件
安装方式:
源码安装:自定义安装,想装在哪都,装什么功能都行,但是要解决依赖关系;
rpm包安装:安装简单,封装好了,缺点,无法改变配置
软件包的来源:官网去下或操作系统里的安装包内也有
3.修改配置文件
4.启动服务
5.具体操作过程:用的是开源版,5.7.17版本,rpm装,在IP地址是192.168.4.50上 的主机运行mysql数据库。
[root@host50 08.dba-1]# tar -xf mysql-5.7.17.tar
[root@host50 08.dba-1]# ls
mysql-community-client-5.7.17-1.el7.x86_64.rpm--提供命令的
mysql-community-common-5.7.17-1.el7.x86_64.rpm
mysql-community-devel-5.7.17-1.el7.x86_64.rpm
mysql-community-embedded-5.7.17-1.el7.x86_64.rpm
mysql-community-embedded-compat-5.7.17-1.el7.x86_64.rpm
mysql-community-embedded-devel-5.7.17-1.el7.x86_64.rpm
mysql-community-libs-5.7.17-1.el7.x86_64.rpm
mysql-community-libs-compat-5.7.17-1.el7.x86_64.rpm
mysql-community-minimal-debuginfo-5.7.17-1.el7.x86_64.rpm
mysql-community-server-5.7.17-1.el7.x86_64.rpm--提供服务的主包
mysql-community-test-5.7.17-1.el7.x86_64.rpm
[root@host50 08.dba-1]# rpm -qa | grep -i mariadb
mariadb-libs-5.5.56-2.el7.x86_64
[root@host50 yum.repos.d]# rpm -Uvh mysql-community-*.rpm
提示需要perl-JSON依赖包,直接yum安装此依赖包
[root@host50 yum.repos.d]# yum -y install perl-JSON
[root@host50 yum.repos.d]# rpm -Uvh mysql-community-*.rpm
[root@host50 08.dba-1]# rpm -qa | grep -i mysql
mysql-community-client-5.7.17-1.el7.x86_64
mysql-community-minimal-debuginfo-5.7.17-1.el7.x86_64
mysql-community-test-5.7.17-1.el7.x86_64
mysql-community-common-5.7.17-1.el7.x86_64
mysql-community-devel-5.7.17-1.el7.x86_64
mysql-community-libs-compat-5.7.17-1.el7.x86_64
mysql-community-libs-5.7.17-1.el7.x86_64
mysql-community-embedded-5.7.17-1.el7.x86_64
mysql-community-embedded-compat-5.7.17-1.el7.x86_64
mysql-community-embedded-devel-5.7.17-1.el7.x86_64
mysql-community-server-5.7.17-1.el7.x86_64
至此,安装完成,生成数据库目录:/var/lib/mysql空目录
[root@host50 mysql]# systemctl start mysqld
第一次启动服务,需要初始化,加载文件,需要一定时间,不会秒起
此时再查看数据库目录:/var/lib/mysql,自动生成了很多目录和文件
[root@host50 mysql]# systemctl enable mysqld 设置开机自启
[root@host51 mysql]# systemctl status mysqld查状态为running确认启动成功。
6.步骤总结:
1.解压安装包mysql-5.17.7
2.检查机器是否安装其他版本的数据库
3.安装依赖包perl-JSON(镜像有)
4.升级安装mysql-community-*.rpm
5.启动服务,查状态
7.参数总结:
1.配置文件位置:/etc/my.cnf
2.数据库目录:/var/lib/mysql
3.进程名:mysqld
4.默认端口号:3306
5.传输协议:tcp
6.进程所有者,所属组:mysql
二、数据库服务的基本使用
1.数据存储到数据库服务器上过程:
连接数据库服务器(命令连接 图形工具)
选择库(文件夹)
建表(文件)
插入记录(行)
断开连接
2.连接数据库服务器
mysql -hlocalhost -uroot -p密码 [库名] //连接数据库的命令root是数据库管理员的用户名,与系统管理员同名,但不是同一个用户
[root@host50 mysql]# grep -i password /var/log/mysqld.log //查看管理员初始密码,将“:”后的内容复制然后登陆
此时对数据库进行操作会提示:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. //你必须先重置密码才可以进行操作。
ps:默认设置的密码为复杂密码:包括大小写,数字加特殊符号
可以通过修改密码策略简化:
mysql>set global validate_password_policy=0;//将策略设置简单
mysql> set global validate_password)length=6;//将密码最短长度设为6位
mysql> alter user root@'localhost' identified by '123456'; //设置密码
//global为全局设置,在数据库里修改只是临时生效,要永久设置需要在配置文件内添加:
validate_password_policy=0
validate_password)length=6
然后停掉数据库再启动确认设置成功。
3.选择库(文件夹)
a.操作指令类型:
mysql指令:环境切换,看状态,推出等控制;
sql指令:数据库定义,查询,操纵,授权语句:
DDL数据定义语言(cresate alter drop)
DML数据操作语言(insert update delete)
DCL 数据控制语言(grant revoke)
DTL 数据事物语言(commit rollback savepoint)
b.使用的基本注意事项:
\c:结束当前编辑的命令
操作指令不区分大小写(密码,变量除外)
不支持tab键自动补齐
每条sql指令以;结束或分隔
默认的4个库不要删,有些存放的是系统启动所需要的数据
c.库名的命名规则:可以使用数字/字母/下划线,不能纯数字
不能用特殊字符,指令关键字
区分大小写,具有唯一性
d.库管理基本命令:
– Show databases; // 显示已有的库
– Use 库名 ;// 切换库
– Select database(); // 显示当前所在的库
– Create database 库名 ; // 创建新库
– Show tables;// 显示已有的表
– Drop database 库名; // 删除库
ps:把库删掉了,没有备份,能不能恢复?
可以,但是要通过第三方软件,将硬盘上存放库的资料找回来
ps:库与数据库目录下的目录是双向的,在数据库目录下建目录,也会多出一个库,但是拥有者和所属组是root,因此连接数据库后只能查看和进入库,不能写入,因为没权限。
4.建表(文件)
表管理命令:
创建表:
create table 库名.表名(
字段名1 字段类型(宽度) 约束条件,
字段名2 字段类型(宽度) 约束条件,
...
字段名N 字段类型(宽度) 约束条件,
);
eg:mysql> create table t1 (
-> name char(15),
-> class char(7)
-> );
查看表结构: desc t1;
查看表记录: select * from 表名;
删除表: drop table 表名;
5.插入记录(行)
Insert into 表名 values( 值列表 );// 插入表记录,一个()为一行
eg:
mysql> insert into t1 values("haha1","nsd1803"),("haha2","nsd1803");
Update 表名 set 字段 = 值 ; // 修改表记录(批量修改)
eg:
mysql> update t1 set class="nsd1809";
Delete from 表名 ; // 删除表记录(所有行,表还在,字段也还在)
eg:
mysql> delete from t1;
Select * from 表名 ; // 查看表记录(*为全部字段)
eg:
mysql> select * from t1;
ps:mysql默认字符集为latin1,不支持中文,在执行insert时存不了中文字符,但库名和表名可以中文,因此需要在建表时设字符集为支持中文字符的utf8
eg:
mysql> create table 学生信息表2(
-> 姓名 char(15),
-> 班级 char(7)
-> )Default charset=utf8;
执行insert验证或show create table 学生信息表2;查看创建表时的设置。
三、mysql数据类型
1.常见的信息种类:
数值型:
字符型:
枚举型:兴趣还好,性别等只能选一个之类的
日期时间型:
2.数值类型:
默认用的是有符号的存储范围,若要用无符号的在设置类型时后面在unsigned;
整型:存小数点会四舍五入
eg(整数型):
mysql> create table db1.t2(level tinyint);
mysql> insert into t2 values(251);
ERROR 1264 (22003): Out of range value for column 'level' at row 1
mysql> insert into t2 values(127);
Query OK, 1 row affected (0.03 sec)
mysql> create table db1.t3(level tinyint unsigned);
mysql> insert t3 values(255);
Query OK, 1 row affected (0.02 sec)
浮点型(带小数点):整数位.小数位--->总位数
n m
float(m,n)
double(m,n)
eg:
mysql> create table t4(pay double(7,2));
mysql> insert into t4 values(12300);
mysql> insert into t4 values(123);
mysql> insert into t4 values(123000);
ERROR 1264 (22003): Out of range value for column 'pay' at row 1
mysql> select * from t4;
+----------+
| pay |
+----------+
| 123.00 |
| 12300.00 |
+----------+
3.字符类型:
定长:char(字符数)
普通字符,最大长度255个字符,不指定宽度时默认为1;
固定长度,不够指定字符数时在右边用空格补齐,字符数超出时,无法写入数据;
存储数度效率高,因为无需计算存储空间。
变长:varchar(字符数)
普通字符,按数据实际大小分配存储空间,必须指定宽度,不然报错;
字符数断超出时,无法写入数据;
存储速度略低,需要占用cpu来计算存储空间,不建议全部用,消耗资源。
大文本类型:text/blob等二进制文件,字符数打与65535存储时使用,实际应用中不建议存放视频音频等打文件,一般都是存放此文件的路径做好标记方便查找
eg:
mysql> create table t5(
-> name char(15),
-> email varchar(30)
-> );
mysql> insert into t5 values("bob","bob@163.com"),("lucy","lucy@sina.com");
Records: 2 Duplicates: 0 Warnings: 0
mysql> insert into t5 values("kdsajlgdlkdsagj","asd");
mysql> insert into t5 values("kdsajlgdlkdsagja","asd");
ERROR 1406 (22001): Data too long for column 'name' at row 1
mysql> select * from t5;
4.枚举类型
1.从给定值集合中选择单个值,ENUM
定义格式:enum(值1,值2...值n),不能超过64个
ps:插入记录时可写值列表内的序号,也可写值内容
2.从给定值集合中选择一个或多个值,SET
定义格式:set(值1,值2...值n)
eg:
mysql> create table t6(
-> name char(15),
-> age tinyint unsigned,
-> pay float(7,2),
-> sex enum("boy","girl","no"),
-> hobby set("woman","money","game","eat")
-> )default charset=utf8;
mysql> desc t6;
mysql> insert into t6 values("bob",21,20000,"no","eat,game");
mysql> insert into t6 values("bob2",29.2000,"man","eat");
ERROR1136 (21S01): Column count doesn't match value count at row 1
mysql> insert into t6 values("bob3",20,200000,"2","woman");
ERROR 1264 (22003): Out of range value for column 'pay' at row 1
mysql> insert into t6 values("bob3",20,20000,"2","woman");
mysql> select * from t6;
5.日期类型
1.日期时间, DATETIME
– 占用 8 个字节
– 范围: 1000-01-01 00:00:00.000000~ 9999-12-31 23:59:59.999999
2.日期时间, TIMESTAMP
– 占用 4 个字节
– 范围: 1970-01-01 00:00:00.000000~ 2038-01-19 03:14:07.999999
3.日期, DATE
– 占用 4 个字节
– 范围: 0001-01-01 ~ 9999-12-31
4.年份, YEAR
– 占用 1 个字节
– 范围: 1901~2155
5.时间, TIME
– 占用 3 个字节
– 格式: HH:MM:SS
ps:
关于日期时间字段
当未给 TIMESTAMP 字段赋值时,自动以当前系统时间赋值,而 DATETIME 字段默认赋值为 NULL。
关于YEAR 年份的处理
– 默认用 4 位数字表示
– 当只用 2 位数字赋值时, 01~69 视为 2000~2069 ,而 70~99 视为 1970~1999
6.小结:
年 year YYYY 2018
日期 date YYYYMMDD 20180614
时间 time HHMMSS 174258
日期时间datetimeYYYYMMDDHHMMSS 20180614174258
eg:
mysql> create table t7(
-> name char(15),
-> syear year,
-> birth date,
-> up_class time,
-> party datetime
-> );
mysql> insert into t7 values
("yaya",1990,20181120,083000,20180618213000);
mysql> select * from t7;
7.时间函数
相关推荐
- ubuntu单机安装open-falcon极度详细操作
-
备注:以下操作均由本人实际操作并得到验证,喜欢的同学可尝试操作安装。步骤一1.1环境准备(使用系统:ubuntu18.04)1.1.1安装redisubuntu下安装(参考借鉴:https://...
- Linux搭建promtail、loki、grafana轻量日志监控系统
-
一:简介日志监控告警系统,较为主流的是ELK(Elasticsearch、Logstash和Kibana核心套件构成),虽然优点是功能丰富,允许复杂的操作。但是,这些方案往往规模复杂,资源占用高,...
- 一文搞懂,WAF阻止恶意攻击的8种方法
-
WAF(Web应用程序防火墙)是应用程序和互联网流量之间的第一道防线,它监视和过滤Internet流量以阻止不良流量和恶意请求,WAF是确保Web服务的可用性和完整性的重要安全解决方案。它...
- 14配置appvolume(ios14.6配置文件)
-
使用AppVolumes应用程序功能,您可以管理应用程序的整个生命周期,包括打包、更新和停用应用程序。您还可以自定义应用程序分配,以向最终用户提供应用程序的特定版本14.1安装appvolume...
- 目前流行的缺陷管理工具(缺陷管理方式存在的优缺点)
-
摘自:https://blog.csdn.net/jasonteststudy/article/details/7090127?utm_medium=distribute.pc_relevant.no...
- 开源数字货币交易所开发学习笔记(2)——SpringCloud
-
前言码云(Gitee)上开源数字货币交易所源码CoinExchange的整体架构用了SpringCloud,对于经验丰富的Java程序员来说,可能很简单,但是对于我这种入门级程序员,还是有学习的必要的...
- 开发JAX-RPC Web Services for WebSphere(下)
-
在开发JAX-RPCWebServicesforWebSphere(上)一文中,小编为大家介绍了如何创建一个Web服务项目、如何创建一个服务类和Web服务,以及部署项目等内容。接下来小编将为大...
- CXF学习笔记1(cxf client)
-
webservice是发布服务的简单并实用的一种技术了,个人学习了CXF这个框架,也比较简单,发布了一些笔记,希望对笔友收藏并有些作用哦1.什么是webServicewebService让一个程序可...
- 分布式RPC最全详解(图文全面总结)
-
分布式通信RPC是非常重要的分布式系统组件,大厂经常考察的Dubbo等RPC框架,下面我就全面来详解分布式通信RPC@mikechen本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》...
- Oracle WebLogic远程命令执行0day漏洞(CVE-2019-2725补丁绕过)预警
-
概述近日,奇安信天眼与安服团队通过数据监控发现,野外出现OracleWebLogic远程命令执行漏洞最新利用代码,此攻击利用绕过了厂商今年4月底所发布的最新安全补丁(CVE-2019-2725)。由...
- Spring IoC Container 原理解析(spring中ioc三种实现原理)
-
IoC、DI基础概念关于IoC和DI大家都不陌生,我们直接上martinfowler的原文,里面已经有DI的例子和spring的使用示例《InversionofControlContainer...
- Arthas线上服务器问题排查(arthas部署)
-
1Arthas(阿尔萨斯)能为你做什么?这个类从哪个jar包加载的?为什么会报各种类相关的Exception?我改的代码为什么没有执行到?难道是我没commit?分支搞错了?遇到问题无法在...
- 工具篇之IDEA功能插件HTTP_CLENT(idea2021插件)
-
工具描述:Java开发人员通用的开发者工具IDEA集成了HTTPClient功能,之后可以无需单独安装使用PostMan用来模拟http请求。创建方式:1)简易模式Tools->HTTPCl...
- RPC、Web Service等几种远程监控通信方式对比
-
几种远程监控通信方式的介绍一.RPCRPC使用C/S方式,采用http协议,发送请求到服务器,等待服务器返回结果。这个请求包括一个参数集和一个文本集,通常形成“classname.meth...
- 《github精选系列》——SpringBoot 全家桶
-
1简单总结1SpringBoot全家桶简介2项目简介3子项目列表4环境5运行6后续计划7问题反馈gitee地址:https://gitee.com/yidao620/springbo...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- maven镜像 (69)
- undefined reference to (60)
- zip格式 (63)
- oracle over (62)
- date_format函数用法 (67)
- 在线代理服务器 (60)
- shell 字符串比较 (74)
- x509证书 (61)
- localhost (65)
- java.awt.headless (66)
- syn_sent (64)
- settings.xml (59)
- 弹出窗口 (56)
- applicationcontextaware (72)
- my.cnf (73)
- httpsession (62)
- pkcs7 (62)
- session cookie (63)
- java 生成uuid (58)
- could not initialize class (58)
- beanpropertyrowmapper (58)
- word空格下划线不显示 (73)
- jar文件 (60)
- jsp内置对象 (58)
- makefile编写规则 (58)