ubuntu server- ubuntu-server-数据库管理服务
ubuntu-server-数据库管理服务
数据就是生产力
数据就是应用的核心
按照结构组织,存储和管理数据的仓库
Oracle, DB2, MySQL, MSSQL, PostgreSQL, Infomix, MongoDB

数据库管理系统(DBMS)

MySQL数据库管理

安装
sudo apt install mysql-server |
安全配置
sudo mysql_secure_installation |
Root帐号密码登录
sudo mysql # 初始身份认证方式是auth_socket,所以暂时不需要输入密码 |
创建数据库个人帐号(建议不要使用root进行运行,而应该使用个人帐号, 且密码不能相同)
create user 'xps'@'%' identified by '12345678'; |
修改密码
set password for 'xps'@'%'=password('12345678'); |
网络访问帐号(可以远程访问)
# 一般这种情况,都限制要操作的库和操作 |
编辑配置文件
# sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf |
SQL语句
增删改查
最基本
-- 当前帐号 |
创建表
create table users( |

char的性能要优于varchar
插入记录
insert into users values(1,'xps','1234567890',20); |
查看表结构
desc users; |
查询
select * frm users where age <20 and age >16; |
修改记录
update users set name='xpsss' where id=1; |
删除记录
delete from users where id=1; |
删除表
drop table tests; |
删除库
drop database test; |
查看数据引擎
show engines; |
修改表名
alter table student RENAME student2; |
修改字段数据类型
alter table student MODIFY name varchar(30); |
修改字段名
alter table student CHANGE name uname varchar(40); |
增加字段
alter table student ADD techer_name vchar(20) NOT NULL after id; # 位置放在id字段的后面 |
删除字段
alter table student FROP teacher_name; |
备份
备份导出
备份库,表
mysqldump -u root -p tes_db >db_back.sql |
备份指定数据
# 先进入sql命令终端,进行导出 |
导出CSV
show variables like '%secure%'; # 先找到备份路径,找到secure_file_priv路径就是默认导出的路径 |
导入
导入
# 创建库的命令 |
导入CSV
LOAD DATA INFILE '/var/lib/mysql-files/aaa.csv' INTO TABLE users |
MariDB
安装配置
安装
sudo apt install mariadb-server |
安全认证
sudo mysql_secure_installation |
改为密码认证
sudo mysql |
配置文件
# /etc/mysql/mariadb.conf.d/50-server.cnf |
主备服务器(数据库复制)
复制 Replication
Master -> Slave 读/写
限定所有库,指定库,表 进行复制
复制原理
bin-log 二进制日志
所有DB事件先写入bin-log
Slave从Master读取bin-log
用途
- 扩展:Slave分担master负载
- 分析:数据分析不影响Master
- 备份:作为一种数据备份手段
- 分布:异地保存数据副本(也可以实现应用访问本地库)
演示
1.安装两台独立的MariaDB服务器
复制之前用导入导出数据库的方式保持Master/Slave数据一致 |
2.配置 Master
# suo vim /etc/mysql/conf.d/mysql.cnf #增加如下配置 |
3.配置master的mariadb远程访问bind-address 0.0.0.0
4.重启服务
sudo systemctl restart mariadb |
5.配置master
创建用户帐号
#192.168.0.111 是slave的地址, *.*允许复制所有数据库, replicate用户名 |
6.配置Slave
## 1. |
7.登录sql终端
# master_user是master服务器上创建的mysql的用户 |
8.打开master锁unlock tables;
9.查看slave状态
-- slave的sql终端 |
测试效果
# 在master执行 |
Mysqltuner – 配置调优工具包
安装
sudo apt install mysql |
运行sudo Mysqltuner
会生成一堆信息配置调优建议(绿色的表示没问题,其他颜色的可以根据帮助来优化)
Postgresql
下一代关系数据库
配置和修改
高并发
情况下性能
优于MySQL- 侦听端口 TCP
5432
安装
sudo apt install postgresql |
身份认证
- 默认使用IDENT身份认证方式
- 使用与操作系统同名的数据库帐号(
postgres
相当与MySQL中的root)
进入
sudo -u postgres psql |
修改密码
# sql终端 |
配置文件
/etc/postgresql/<version>/main # 配置文件目录 |
网络连接
# 客户端 |
创建帐号
# postgres权限太大,不建议平时使用 |
文档手册
sudo apt install postgresql-doc-10 |
基本指令
创建库
# |
删除库
sudo -u postgres dropedb mydb; |
创建表
create database users |
快捷命令
\c db_name # 切换数据库 (use mydb;) |
NoSQL概览与MongoDB



常见的NoSQL数据库类型
1.键值对类型






Paper
推荐多看看
MongoDB
安装
sudo apt-get install -y mongodb |
客户端
# 本地登录 |
进入库
use mydb; |
输入数据
# 创建文档集 |
查询库
show dbs |
多赋值
db.users.insert({'name':'uuu','uid':123,gid:[111,222,333]}) |
查询
db.users.find(); |
修改记录
db.users.update({'uid':1001}, {$set:{name:'hhh'}}) |
删除记录
db.users.remove({'uid':1001}, ) |
删除collection
db.users.drop() |
删库
db.dropDatabase() |
详细用法参考官方文档……