DBA: RDBMS (mysql) NoSQL (Redis和Mongodb)
DA1 ---DBA基础
搭建MYSQL数据库服务器
MYSQL数据库服务器基本使用
Mysql数据类型
Mysql存储引擎
记录管理(增删改查)
用户管理(授权 撤销)
数据备份
数据库 DB
存储数据的仓库
Mysql 关系数据库服务软件 RDBMS NoSQL
学生信息---->文件(表) 文件夹(数据库)
开源软件:
不等于免费软件
MySQL/MariaDB
(升级版)
Sybase (sybase可跨平台)
PostgreSQL(可跨平台)加州大学伯克利分校
商业软件:
Oracle Database Oracle(甲骨文)
SQL Server (window微软)
Access(微软,跨平台不开源)
DB2 (IBM,跨平台不开源)
在主机50上运行mysql数据库服务
安装前环境
[root@host50 ~]# rpm -q mariadb-server mariadb
未安装软件包 mariadb-server
未安装软件包 mariadb
[root@host50 ~]# rm -rf /var/lib/mysql 配置文件
[root@host50 ~]# rm -rf /var/lib/mysql 数据存储
装包(软件包来源 封包类型 开源或商业 是否跨平台)
[root@host50 ~]# cd soft
[root@host50 soft]# cd mysql/
[root@host51 mysql]# tar -xf mysql-5.7.17.tar
[root@host50 mysql]# rpm -Uvh mysql-community-*.rpm (升级安装)
警告:mysql-community-client-5.7.17-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
错误:依赖检测失败:
perl(JSON) 被 mysql-community-test-5.7.17-1.el7.x86_64 需要
[root@host50 mysql]# yum list | grep -i perl-json
perl-JSON.noarch 2.59-2.el7 192.168.4.254_rhel7
perl-JSON-PP.noarch 2.27202-2.el7 192.168.4.254_rhel7
[root@host50 mysql]# rpm -q perl-JSON
[root@host50 mysql]# yum -y install perl-JSON (解决依赖关系)
[root@host50 mysql]# rpm -Uvh mysql-community-*.rpm #再次安装
查看服务信息
[root@host50 mysql]# systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: inactive (dead)
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
启动服务
[root@host50 mysql]# systemctl start mysqld
[root@host50 mysql]# ls /var/lib/mysql
[root@host50 ~]# ls /etc/my.cnf
/etc/my.cnf
[root@host50 mysql]# systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since 三 2018-05-23 10:25:35 CST; 1min 51s ago
查看服务信息
[root@host50 ~]# ps -C mysqld #查进程
PID TTY TIME CMD
3866 ? 00:00:00 mysqld
[root@host50 ~]# netstat -nutlp | grep :3306 #查堪端口
tcp6 0 0 :::3306 :::* LISTEN
修改配置文件
访问服务(命令行 图形访问 web访问 )
[root@host50 ~]# grep password /var/log/mysqld.log #数据库日志
2018-05-23T02:25:18.775458Z 1 [Note] A temporary password is generated for root@localhost: ZNi>u_qFL4ws #随机密码
[root@host50 ~]# mysql -hlocalhost -uroot -p’ZNi>u_qFL4ws’
二:重置登陆密码
123456
[root@host50 ~]# mysql -hlocalhost -uroot -p'ZNi>u_qFL4ws'
调整密码策略
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";
Query OK, 0 rows affected (0.00 sec)
[root@host50 ~]# mysql -hlocalhost -uroot -p'123456'
三.配置密码设置永久生效
[root@host50 ~]# vim /etc/my.cnf
[mysqld]
validate_password_policy=0
Validate_password_length=6
保存退出
四:相关概念
库 文件夹
表 文件
记录 行
字段 列
使用SQL命令操作数据库服务器上的数据
结构化查询语言
SQL命令的类型
SQL命令语法规则
五 、客户端把数据存储到数据库服务器上的过程
库 类似于系统的文件夹
Show databases; //显示已有的库
Use 库名; //切换库
Select database(); //显示当前所在的库
Create database 库名; //创建新库
Show tables; //显示已有的表
Drop database 库名; //删除库
(1)建库
mysql> create database db1;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| db1 |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
(2)建表
新建指定名称的表
CREATE TABLE 库名.表名(
字段名1 字段类型(宽度) 约束条件,
字段名2 字段类型(宽度) 约束条件,
.. ..
字段名N 字段类型(宽度) 约束条
);
mysql> use db1;
mysql> desc t1; #查看表结构
+---------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+----------+------+-----+---------+-------+
| name | char(10) | YES | | NULL | |
| address | char(10) | YES | | NULL | |
+---------+----------+------+-----+---------+-------+
(3)插入记录
记录 类似于文件里的行
Select * from 表名; //查看表记录
Insert into 表名 values(值列表);//插入表记录
Update 表名 set 字段=值; //修改表记录 mysql> update t1 set address="leizhou";
Delete from 表名; //删除表记录
mysql> delete from t1;
mysql> create table t1(name char(10),address char(10));
mysql> insert into t1 values("jum","shanghai"),("fafa","guangdong");
mysql> select * from t1;
+------+-----------+
| name | address |
+------+-----------+
| tom | beijing |
| jum | shanghai |
| fafa | guangdong |
+------+-----------+
3 rows in set (0.00 sec)
(4)批量更改地址为leizhou
mysql> update t1 set address="leizhou";
mysql> select * from t1;
+------+---------+
| name | address |
+------+---------+
| tom | leizhou |
| jum | leizhou |
| fafa | leizhou |
+------+---------+
3 rows in set (0.00 sec)
修改表的字符集,以便与中文输入
mysql> create table t1(name char(),address()),DEFAULT CHARSET=UTF8;
mysql> alter table t1 DEFAULT CHARSET=UTF8;
mysql> show create table t1; #查看表字符集
创建中文表格
mysql> create table 学生表(
-> 姓名 char(20),
-> 地址 char(30)
-> ) DEFAULT CHARSET=utf8;
mysql> insert into 学生表 values("张三丰","武当山");
mysql> select * from 学生表;
+-----------+-----------+
| 姓名 | 地址 |
+-----------+-----------+
| 张三丰 | 武当山|
+-----------+-----------+
mysql> create table t2(
-> name char(15),
-> age tinyint(2) unsigned,
-> birthday date,
-> up_time time,
-> y_star year,
-> party datetime
-> );
时间函数应用
mysql> insert into t2 values("tom",21,date(now()),082000,year(now()),now());
Query OK, 1 row affected (0.03 sec)
mysql> select * from t2;
+------+------+------------+----------+--------+---------------------+
| name | age | birthday | up_time | y_star | party |
+------+------+------------+----------+--------+---------------------+
| bob | 21 | 2018-06-13 | 08:20:00 | 1990 | 2018-06-23 23:25:59 |
| tom | 21 | 2018-05-23 | 08:20:00 | 2018 | 2018-06-08 23:54:59 |
| tom | 21 | 2018-05-23 | 08:20:00 | 2018 | 2018-05-23 17:56:54 |
+------+------+------------+----------+--------+---------------------+
mysql> insert into t4 values(now(),now());
mysql> insert into t4(metting) values(20170302232504);
mysql> insert into t4(metting) values(20170302232504);
mysql> select * from t4;
+---------------------+---------------------+
| metting | party |
+---------------------+---------------------+
| 2018-05-24 09:22:01 | 2018-05-24 09:22:01 |
| 2017-03-02 23:25:04 | 2018-05-24 09:22:49 |
| NULL | 2016-03-02 23:25:04 |
+---------------------+---------------------+