数据库的一些基础概念

1.数据库简介

DB(database) 数据库

DBMS 数据库管理系统

RDBMS 关系型数据库(MySQL,Oracle,SQL Server,)

NoSQL 非关系型数据库

NewSQL

2.数据库表

数据库中以”表“为组织单位存储数据。

数据库表由:表名、表字段、表记录构成

3.二进制安装数据库

3.1安装依赖文件

yum install libaio libaio-devel ncurses ncurses-devel openssl openssl-devel -y

3.2切换目录并下载二进制安装包

cd /usr/local/

 官网下载
 wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
 ​
 局域网内下载
 wget http://192.168.3.200/Software/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

3.3解压

tar -xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

3.4将解压后的安装包改名

mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql

3.5创建一个用户并设置密码

useradd mysql

passwd mysql

3.6修改MySQL的配置文件

vim /etc/my.cnf

 [mysqld]
 port = 3306
 basedir = /usr/local/mysql
 datadir = /usr/local/mysql/data
 log-error = /usr/local/mysql/data/error.log
 pid-file = /usr/local/mysql/data/mysql.pid
 socket = /tmp/mysql.sock
 character-set-server=utf8mb4
 collation-server=utf8mb4_unicode_ci
 default-storage-engine=InnoDB
 default-authentication-plugin=mysql_native_password
 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

3.7创建data文件夹并更改mysql的目录权限

mkdir data

chown -R mysql .

chgrp -R mysql .

3.8初始化数据库

./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

vim /etc/profile

在最后一行添加指定PATH关联MySQL的bin目录

export PATH=$PATH:/usr/local/mysql/bin

配置完成后让系统重新加载/etc/profie文件

source /etc/profile

3.9执行完后查看初始密码:

vim /usr/local/mysql/data/error.log

3.10

 将启动脚本复制到/etc/init.d/目录,这是启动脚本的默认目录。
 cp ./support-files/mysql.server /etc/init.d/mysqld
 ​
 设置执行的权限
 chmod +x /etc/init.d/mysqld
 ​
 开启服务
 /etc/init.d/mysqld start

4.使用脚本启动的四种方法:

使用默认脚本路径

 cd /usr/local/mysql
 ​
 ./support-files/mysql.server start

配置文件登录

 cd /etc/init.d/mysqld
 ​
 /etc/init.d/mysqld start|stop|restart
 server 
 ​
 service mysqld start|stop|restart
 systemctl
 ​
 systemctl start|stop|restart mysqld

关闭服务

 killall mysql (不推荐,会导致数据丢失)

遇到以下情况时: 1.安装时初始化失败 2.初始密码遗失时, 做法: 删除 /usr/local/mysql/data目录中的数据 rm /usr/local/mysql/mysql

执行初始化命令: [root@zuolaoshi mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

如何找回root密码? 跳过Mysql的root密码,直接登录,用于修改密码; vim /etc/my.conf [mysqld]

#配置的最后添加,跳过密码登录的功能 skip-grant-tables

#之后重启mysql服务 修改密码: mysql -uroot alter user 'root'@'localhost' identified by 'Root123456'; 密码

设置成功后必须删掉skip-grant-tables; 若忘记mysql登录密码,先停止服务:

./ support-files/mysql.server start/stop (一般把这个拷贝到这个文件夹中:

[root@zuolaoshi mysql]# cp ./support-files/mysql.server /etc/init.d/mysqld)

创建远程用户

MySQL的用户是由

用户名@地址

root@localhost # localhost只能本机登录,不能远程登录

% 表示所有主机都可以登录MySQL

root@192.168.8.%

DML(数据操纵语言)

 ## 添加数据
 insert into 表名(列1,列2,....)  values(值1,值2...);
 ​
 insert into student(id,name,sex,b_day) value(1,'武大郎','男','2000-1-1');
 insert into student(id,name,sex,b_day) value(2,'王小二','男','2002-2-2');
 insert into student(id,name,sex,b_day) value(3,'张三','男','2003-3-3');
 insert into student(id,name,sex,b_day) value(4,'李四','男','2004-4-4');
 insert into student(id,name,sex,b_day) value(5,'武则天','女','2005-5-5');
 insert into student(id,name,sex,b_day) value(6,'慈禧','女','2006-6-6');
 ​
 ## 查看数据  DQL(数据查询语言)
 select * from student; -- 查看所有数据
 select name,sex from student;
 ​
 ## 修改语句必须要加where条件,否则会更新所有行的数据。
 update student set b_day='1999-9-9' where id=1;
 ​
 ## 删除数据必须要加where条件,否则会删除所有行的数据。
 delete from student where id=6;
 ​
 # mysql安全模式sql_safe_updates是为了防止我们在操作表时的误操作,把全表删除了或者更新了。
 # 检查是否开启
 mysql> show variables like 'sql_safe_updates';
 +------------------+-------+
 | Variable_name    | Value |
 +------------------+-------+
 | sql_safe_updates | OFF   |
 +------------------+-------+
 # 开启安全模式
 set sql_safe_updates = 1;
 # 关闭安全模式
 set sql_safe_updates = 0;
 ​
 # 自动启动安全模式
 在[mysqld]下配置一个ini-file=/usr/local/mysql/init-file.sql
 文件中添加 set global sql_safe_updates=1; 语句

表的结构解析

CREATE TABLE user_info (

id int(10) unsigned NOT NULL AUTO_INCREMENT,

name varchar(30) COLLATE utf8mb4_bin NOT NULL,

sex enum('女','男') COLLATE utf8mb4_bin NOT NULL,

birythday date NOT NULL, PRIMARY KEY (id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin

 约束条件
 ​
 行级约束
 unsigned             无符号,数字没有负数
 not null             数据不能为空
 auto_increment         自动增长
 collate utf8mb4_bin     排序规则   字符集 数字 -> 文字
 primary key           主键(主关键字),不能为空,唯一
 unique Key           唯一约束、唯一索引
 foreign key          外键约束,用于多表关联
 ​
 表级约束
 engine               数据库查询MySQL8引擎默认为InnoDB(支持事务,安全性高)
 charset              设置字符集
 collate              设置字符排序规则
  • 24
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值