0
点赞
收藏
分享

微信扫一扫

docker容器技术实战-2

cnlinkchina 2023-09-18 阅读 23

目录

数据库分类

关系型数据库

非关系型数据库

数据库编译安装

MySQL中的SQL语句


数据库分类

数据库分为关系型数据库和非关系型数据库

关系型数据库

关系型数据库的结构是二维表格,二维表格中每一行是一个记录,每一列是一个属性;每一个记录用来描述一个对象的完整信息,每一个属性用来描述对象关系(如:一个人为对象,这个人的身高,姓名,年龄,性别等都是这个人的属性)。

优点:
1、易于维护:都是使用表结构,格式一致;
2、使用方便:SQL语言通用,可用于复杂查询;
3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。
缺点:
1、读写性能比较差,尤其是海量数据的高效率读写;
2、固定的表结构,灵活度稍欠;
3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。

非关系型数据库

非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等。

优点:
1、格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、
图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。
2、速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘;
3、高扩展性;
4、成本低:nosql数据库部署简单,基本都是开源软件。

缺点:
1、不提供sql支持,学习和使用成本较高;
2、无事务处理;
3、数据结构相对复杂,复杂查询方面稍欠。

数据库编译安装

#安装编译环境
yum -y install gcc gcc-c++ cmake bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel   ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel

#创建mysql管理用户
useradd -M -s /sbin/nologin  mysql

#提前导入mysql的压缩安装包,并切换到导入的目录,安装包已上传,可自行下载
cd /opt

#解压mysql的压缩安装包
tar zxvf mysql-boost-5.7.20.tar.gz

#切换到解压后的安装包中
cd /opt/mysql-5.7.20/

#编译mysql
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1

#安装mysql
make -j2 && make install

#修改配置文件
vim /etc/my.cnf
#文件内容全删,并添加如下内容
[client]
port = 3306
socket=/usr/local/mysql/mysql.sock
[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

#给mysql安装目录修改属主和属组
chown -R mysql:mysql /usr/local/mysql/
#给mysql配置文件修改属主和属组
chown mysql:mysql /etc/my.cnf

#修改PATH环境
echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile	
#重新加载
source /etc/profile

#切换到mysql启动目录下
cd /usr/local/mysql/bin/
#初始化数据库
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

#将mysql数据库服务添加到systemd中管理
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service  /usr/lib/systemd/system/

#重新加载systemd管理
systemctl daemon-reload
#启动mysql数据库
systemctl start mysqld.service

#创建mysql远程登录用户和密码
mysqladmin -u root -p password "123123"

#远程登录mysql
mysql -u root -p

MySQL中的SQL语句

查看有哪些数据库

创建数据库

切换数据库

删除数据库

查看数据库中有哪些数据表

创建数据表

删除数据表

向数据表中插入数据

查询数据表中的数据

修改数据表中数据

删除数据表中数据

修改数据表名

在数据表中添加字段

修改数据表中的字段

删除数据表中字段

克隆数据表



清空数据表中的数据


创建临时表

给数据表添加主键

给数据表添加外键

创建mysql的登录用户

查看当前登录的用户

重命名用户

删除用户

修改当前用户登录密码

修改其他用户的登录密码

忘记密码数据库登录密码,如何解决?

给用户授权

查看用户的权限

收回授予用户的权限

举报

相关推荐

0 条评论