一、搭建数据库服务器? 数据库服务器 是用来存储数据库 1.购买服务器(硬件配置 存储 CPU 内存) 2.安装操作系统:linux分好多版本(红帽是其中一个版本) 3.安装提供数据库服务的软件包 1)软件包的来源? 官网下载 ,使用系统安装光盘自带的 2)软件包的类型? RPM 源码 3)提供数据库服务的软件有哪些? mysql mariadb oracle sql server db2 4)使用商业的还是开源的,是否跨平台? mysql mariadb 既开源,也跨平台 5)mysql 发展历史 特点 版本 应用场景 关系型数据库软件?以上数据库都属于关系型 非关系型数据库软件? mangodb memcached redis (key values)
通常和网站服务一起使用 LAMP LNMP Apache Nginx
购物网站 游戏网站 论坛网站 金融网站 登录账户 (名 密码) 都存储在数据库里边
6)安装MYSQL软件提供数据库服务? [root@wuyi51 ~]# rpm -qa | grep -i mariadb 安装软件包 tar -xf /mysql-5.7.17-1.el7.x86_64.rpm-bundle.tar rm -rf mysql-community-server-minimal-5.7.17-1.el7.x86_64.rpm yum -y install perl-Data-Dumper perl-JSON rpm -Uvh mysql-community-*.rpm 安装 [root@wuyi51 ~]# rpm -qa | grep -i mysql
-
启动服务
[root@wuyi51 ~]# systemctl start mysqld [root@wuyi51 ~]# systemctl enable mysqld [root@wuyi51 ~]# ls /var/lib/mysql
systemctl status mysqld.service 查看进程是running状态
8)与MYSQL数据库服务相关的信息 进程名 mysqld 进程所有者和所属组 mysql/mysql grep mysql /etc/passwd /etc/group 默认端口号 3306 传输协议 TCP 默认主配置文件 /etc/my.cnf 默认数据库目录 /var/lib/mysql
-
使用数据库管理员root用户初始密码连接数据库服务。 日至文件/var/log/mysqld.log [root@wuyi51 ~]# grep -i password /var/log/mysqld.log 2018-02-22T03:23:19.777730Z 1 [Note] A temporary password is generated for root@localhost: T*%HrB9O_3x? [root@wuyi51 ~]# mysql -uroot -p'T*%HrB9O_3x?' mysql> quit //断开连接
-
设置数据库管理员root用户本机登录密码 mysql> set global validate_password_policy=0; Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_length=6;
Query OK, 0 rows affected (0.00 sec)
mysql> alter user root@"localhost" identified by "123456";
mysql -hlocalhost -uroot -p123456
================================================================================================ 练习: 在IP地址是192.168.4.52的主机运行mysql数据库服务,并设置数据库管理员本机登录的密码是abc123
二、数据库服务的基本使用?
2.1 把数据存储到数据库服务器上的过程?
连接数据库服务器
注:不做授权的时候只允许数据库管理root用户,在数据库本机连接数据库服务
1) 先登录: mysql -hlocalhost -uroot -p123456
2) 创建库(文件夹)
create database 库名;
mysql> create database gamedb;
mysql> system ls /var/lib/mysql 命令前加一个system,可以直接在mysql命令行查看系统命令,不用退出
管理数据库服务使用的是sql命令; sql命令使用规则? 可以使用数字/字母/下划线,但不能纯数字;区分大小写,具有唯一性;不可使用指令关键字,特殊字符。
mysql> select database(); 查看所在哪个库
mysql> use gamedb; 切换至gamedb库里边 切换库的时候,后边分号可以不写
mysql> drop database buydb; 删除buydb这个库
mysql> drop database buydb\c 后边加 \c 终止此命令
- 建表(系统文件) 注:表必须保存在库里。 mysql> show tables; 查看库里都有什么表 mysql> desc 表名; 查看表结构 mysql> select * from 表名; 查看表里边的所有东西 mysql> select user,host from 表名; 查看表里边的user列和host列
建表命令: create table 库.表名( 字段名 类型(宽度) 约束条件, 字段名 类型(宽度) 约束条件, …… ); mysql> create table gamedb.stu( 创建一个stu的表 -> name char(10), -> age int(2) -> ); Query OK, 0 rows affected (0.18 sec)
插入表记录:
insert into 库.表名 values(值列表)
mysql> insert into stu values("tom",21);
查看表:
mysql> select name from stu;
删除所有表记录:
delete from 库.表名;
删除表:
drop table 库.表名;
行(记录) 在表里边叫做记录。
列(字段名)
===================================================================================================
三、MYSQL数据类型? 字符类型 char varchar blob text 数值类型 存储有小数点的数:单精度float 双精度double 存储整数(没有小数点的数): tinyint smallint MEDIUMINT int bigint 日期时间类型 year date time datetime/timestamp 枚举类型 set(多选) enum(单选) mysql> create table db1.t1( -> age tinyint -> ); mysql> create table db1.t2( -> age tinyint unsigned 不能存负数 -> ); mysql> show tables; mysql> insert into db1.t1 values(22);
float(n,m) n表示总位数,m表示小数位,位数
rust float(5,2)
mysql> create table db1.t4(
-> age tinyint unsigned,
-> rust float(5,2),
-> pay float(7,2)
-> );
mysql> insert into db1.t4 values (21,59.9,18000.23);
mysql> select * from t4;
+------+-------+----------+
| age | rust | pay |
+------+-------+----------+
| 21 | 59.90 | 18000.23 |
+------+-------+----------+
1 row in set (0.00 sec)
字符类型
char 不能大于255字节 定常
varchar 不能大于65532字节 变长
blob 大于65532字节 大文本
text 大于65532字节 大文本
mysql> create table db1.t7(
-> name char(10),
-> pay int(4) zerofill zerofill加这个,前边用0补位,不加以空格。
-> );
mysql> insert into t7 values ("zhangsan",9);