数据库的发展前引
MySQL的起源与发展过程
最为著名、应用最广泛的开源数据库软件
最早隶属于瑞典的MySQL AB公司
2008年1月,MySQL AB被Sun收购
2009年4月,SUN被Oracle收购
崭新的开源分支MariaDB
为应付MySQL可能会闭源的风险而诞生
由MySQL原作者Widenius主导开发
与MySQL保持最大程度兼容
MySQL的特点及应用
主要特点
适用于中小规模、关系型数据库系统
支持Linux/Unix、Windows等多种操作系统
使用C和C++编写,可移植性强
通过API支持Python/Java/Perl/PHP等语言
典型应用环境
LAMP平台,与Apache HTTP Server组合
LNMP平台,与Nginx组合
常见的信息种类
数值型:体重、身高、成绩、工资
字符型:姓名、工作单位、通信住址
枚举型:兴趣爱好、性别
日期时间型:出生日期、注册时间
使用mysql>管理环境
操作指令类型
MySQL指令:环境切换、看状态、退出等控制
SQL指令:数据库定义/查询/操纵/授权语句
基本注意事项
操作指令不区分大小写(密码、变量值除外)
每条SQL指令以;结束或分隔
不支持Tab键自动补齐
c可废弃当前编写错的操作指令
配置一个数据库《前引》
在system1上创建一个MariaDB数据库,名为Contacts,并符合以下条件:
¨数据库应该包含来自数据库复制的内容,复制文件的URL为:
http://server1.groupX.example.com/materials/users.sql
¨数据库只能被localhost访问
¨除了root用户,此数据库只能被用户Raikon查询,此用户密码为atenorth
¨root用户的密码为atenorth,同时不允许空密码登陆。
解题参考:
1)安装、配置
[root@serverX~]#yum -y install mariadb-server mariadb
[root@serverX~]#vim/etc/my.cnf
[mysqld]
skip-networking//添加此行,跳过网络
[root@serverX~]#systemctl restart mariadb
[root@serverX~]#systemctl enable mariadb
2)设密码、建库
[root@serverX~]#mysqladmin -u root -p password'atenorth'//设置密码
[root@serverX~]#mysql-u root -p
MariaDB[(none)]>CREATE DATABASE Contacts;
MariaDB[(none)]>GRANT select ON Contacts.* to Raikon@localhost IDENTIFIED BY 'atenorth';
MariaDB[(none)]>DELETE FROM mysql.user WHERE Password='';
//删除空密码账号//!!注意:设好root密码再做
MariaDB[(none)]>QUIT
3)导入库
[root@serverX~]#wget http://classroom/pub/materials/users.sql
[root@serverX~]#mysql -u root -p Contacts < users.sql
http://bj.linux.tedu.cn/达内 Linux云计算学院
数据库查询(填空)
试题概述:
在系统system1上使用数据库Contacts,并使用相应的SQL查询以回答下列问题:
¨密码是solicitous的人的名字?
¨有多少人的姓名是Barbara同时居住在Sunnyvale?
解题参考:
[root@serverX~]#mysql -u root -p
Enter password:
MariaDB[Contacts]>USE Contacts;
MariaDB[Contacts]>SELECT name FROM base WHERE password='solicitous';
MariaDB[Contacts]>SELECT count(*)FROM base,location WHERE base.name='Barbara'location.city='Sunnyvale'AND base.id=location.id;
MariaDB[Contacts]>QUIT
案例1:Centos7x下安装mysql5.7.17
mysql的安装(root用户下)
[root@serverX~]#wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.17-1.el7.x86_64.rpm-bundle.tar
[root@serverX~]#tar -xvf mysql-5.7.17-1.el7.x86_64.rpm-bundle.tar
安装时候会提示与已经安装的RPM包有冲突,所以我们先卸载一些RPM包,要卸载某些呢?我们要卸载的是包含有mariadb关键字的RPM包,执行命令:rpm -qa | grep mariadb来查看一下我们要卸载某种软件
[root@serverX~]# rpm -qa | grep mariadb
[root@serverX~]# rpm -e --nodeps mariadb-libs-5.5.50-1.el7_2.x86_64
[root@serverX~]# rpm -ivh mysql-community-common-5.7.17-1.el7.x86_64.rpm
[root@serverX~]# rpm -ivh mysql-community-libs-5.7.17-1.el7.x86_64.rpm
MySQL需要libnuma.so.1()(64bit)
百胜安装numactl
rpm -ivh mysql-community-server-5.7.17-1.el7.x86_64.rpm
mysqld-初始化--user = mysql
systemctl启动mysqld
猫/var/log/mysqld.log
[注意]为root @ localhost生成了一个临时密码:gaYwAX?!k5nw
mysql -uroot -p
systemctl启用mysqld.service
服务mysqld状态
服务mysqld停止
服务mysqld启动
将*。*上的所有特权授予由'pwd12345'标识的'root'@'%';
同花顺特权;
第一节课综合总结
构建MySQL服务器
数据库基本管理
MySQL数据类型
表结构的调整
1构建MySQL服务器
1.1问题
本案例要求熟悉MySQL官方安装包的使用,快速构建一台数据库服务器:
安装MySQL-server、MySQl-client软件包
修改数据库用户root的密码
确认MySQL服务程序运行、root可控
一准备条件:
[root@host50~]#cat mysql.sh
#/bin/bash
read-p"请输入你的ip:"n
scp/root/桌面/soft.zip$n:/root/
expect<<EOF
spawn ssh$n
expect"password:"{send"123456 "}
expect"#"{send"unzip soft.zip "}
expect"#"{send"tar-xf soft/mysql/mysql-5.7.17.tar "}
expect"#"{send"yum-y install perl-Data-Dumper perl-JSON perl-Time-HiRes "}
expect"#"{send"rpm-Uvh soft/mysql/mysql-community-*.rpm "}
expect"#"{send"exit "}
EOF
二、数据库服务的基本使用
2.1使用初始密码在本机连接数据库服务
]#grep password/var/log/mysqld.log
]#mysql -hlocalhost -uroot -p'hqToPwaqf5,g!><'
2.2重置本机连接密码
mysql>set global validate_password_policy=0;只检查密码的长度
mysql>set global validate_password_length=6;密码长度不能小于6个字符
mysql>alter user root@"localhost" identified by "123456";
mysql>quit
]#mysql-hlocalhost-uroot-p123456
mysql>show databases;
ü 让密码策略永久生效
]#vim/etc/my.cnf
[mysqld]
validate_password_policy=0
validate_password_length=6
:wq
]#systemctl restart mysqld
######################################################################
三步骤:
[root@host50~]#mysql -hlocalhost -p123456
mysql>create database学生库;
mysql>show databases;
mysql>use学生库;
mysql>create table学生表2(姓名char(10),地址varchar(30),性别char(30),手机号char(20))DEFAULT CHARSET=UTF8;
mysql>insert into学生表2 values("李易峰","北京","男","1583882878");
mysql>insert into学生表2 values("井柏然","上海","男","1383882878");
mysql>select*from学生表2;
mysql>create table学生表3(姓名char(10),地址varchar(30),性别char(30),手机号char(20),开学日期year,日期datetime,早上上课时间time,中午下课时间time,晚上下课时间time)DEFAULT CHARSET=UTF8;
mysql>insert into学生表3 values("李易峰","北京","男 ","1583882878","2018","20180616080000","083000","12000","203000");
mysql>create table学生表4(姓名char(10),地址varchar(30),性别char(30),手机号char(20),开学日期year,日期datetime,早上上课时间time,中午课时间time,晚上下课时间time)DEFAULT CHARSET=UTF8;
Query OK,0 rows affected(0.19 sec)
###################################################################
*课后总结
1.客户端把数据储存到数据库服务器的器过程
create database test;
use test;
create table test1(name char(15),address char(30));
desc test1;
instrt into test1 values("lisa","beijing");
instrt into test1 values("lisa","beijing"),("dc","shanghai");
select*from test1;
select name from test1
update test1 set address="shanghai";
select*from test1;
delete*from test1;
select*from test1;
show tables;
drop table test1;
show databases;
drop database test;
show databases;