Bootstrap

Linux 安装数据库

本文安装的数据库文件有:mysql5.7,sqlserver,oracle 以及 Redis 。

Linux 安装好了之后设置网络

使用如下语句进行网卡查询

  1. ip addr
    如果查不到 ip,则查看ens33网卡的配置,输入vi /etc/sysconfig/network-scripts/ifcfg-ens33(vi后加空格)
    将 ONBOOT 的权限改为 yes
  2. 保存 按 Esc 退出,再输入:wq,再按 Enter 。

使用 yum 下载内容的时候出现没有安装组信息文件的错误异常
在这里插入图片描述
通过如下两条命令即可解决:
解决方法:yum clean all
然后再运行 yum -y groupinstall Development tools
在这里插入图片描述

Linux 的配置

Centos7 安装图形化桌面

在安装的时候没有注意选择时,默认是"Minimal Install",
在这里插入图片描述
在这里插入图片描述
安装GNOME桌面:
1)输入命令
# yum -y groups install "GNOME Desktop"
2)完成安装后输入
# startx
3)启动GNOME桌面环境

Docker 的安装与使用。

在这里插入图片描述

  • Docker:解决了运行环境和配置问题软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的 CentOS 版本是否支持 Docker 。访问 docker 的所有镜像
    1、通过 uname -r 命令查看你当前的内核版本 。
    2、使用 root 权限登录 Centos。确保 yum 包更新到最新。sudo yum update。
    3、安装需要的软件包, yum-util 提供 yum-config-manager 功能,另外两 devicemapper 驱动依赖的 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 。
    4、设置 yum 源 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    5、删除 docker,执行 yum remove docker-*。修改了很多关于 Docker 的配置。我还是默默的采取了重新安装 Docker 。
    在这里插入图片描述
    yum install docker .
    在这里插入图片描述
    systemctl start docker
    在这里插入图片描述
    最后通过 ,docker -v 或者 docker version 查看版本。
    将 image 文件从仓库抓取到本地一直报错,错误信息如下:
[root@archlinux ~]# docker image pull library/hello-world 
Using default tag: latest 
Error response from daemon: Get https://registry-1.docker.io/v2/library/hello-world/manifests/latest: dial tcp 52.20.146.203:443: i/o timeout

1、通过dig @114.114.114.114 registry-1.docker.io找到可用IP。
2、尝试修改/etc/hosts(vim /etc/hosts) 强制docker.io相关的域名解析到其它可用IP
3、添加一个可用IP:52.22.185.86 registry-1.docker.io

安装数据库

Linux 安装 Redis 数据库。

讲述了安装 Redis 数据库的过程

  • 现在需要我们去用过 Windows 上的 Redis Desk Manager 去连接Linux 的Redis。
  1. Redis服务默认是前台运行,需要修改为后台运行。修改redis.conf配置文件。找到daemonize(守护进程)配置,默认no。修改为:daemonize yes
  2. 注掉 redis.conf 中的 #bind 127.0.0.1
  3. 80行的 protected-mode yes修改为:protected-mode no
  4. 对防火墙进行操作
[root@localhost ~]# firewall-cmd --state		// 查看防火墙的状态
running
[root@localhost ~]# systemctl stop firewalld.service	// 关闭防火墙
[root@localhost ~]# firewall-cmd --state
not running
[root@localhost ~]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]#

Linux 安装 MySql 数据库。

  • 使用 Docker 命令安装 MySql 数据库。
    1、首先,执行 docker 命令:docker search mysql 。我们可以看到 MySql 5.7 database server 以及 MySql 5.6 SQL database server 。当然这没有说明目前版本最高的是 5.7 。
    在这里插入图片描述
    2、拉取 MySql 容器:docker pull mysql:5.7,最新版本是 8.0.16的,不是 5.7 的。我是删除镜像之后重新下载的 5.7 的。
    在这里插入图片描述
    执行成功的样子。
    在这里插入图片描述
    3、添加镜像,加入容器,开启mysql。
// 在本地镜像列表中查看repository为mysql的镜像
docker images | grep mysql 	
// 创建并启动MySQL容器 
docker run --name mysql --rm -e MYSQL_ROOT_PASSWORD=root  -p 3306:3306 -d mysql
// 查看容器运行状态
docker ps -a
//  进入mysql 容器
docker exec -it mysql bash
// 连接MySQL数据库
mysql -u root -p

在这里插入图片描述
还可以通过 select version() 查看数据库的版本。whereis mysql 的命令查看安装目录。

  1. 解释:docker run --name mysql --rm -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql
字符意义
–name(两个横杠)为新建的容器命名
-e配置信息,MYSQL_ROOT_PASSWORD配置MySQL的root用户的登录密码
-p端口映射,此处映射主机3306端口到容器的3306端口
-d以后台守护进程方式运行,成功启动容器后输出容器的完整ID
-v将宿主机中MySQL配置挂载到容器中MySQL配置中
mysqlMySQL镜像名称
  1. 因为之前下载错了版本,所以先停 MySql 服务,再删除容器,再删镜像的步骤,是要认识到的。
// 停服务
docker stop mysql
// 查看容器运行状态
docker ps -a
// 查看镜像
docker images
// 删除镜像
docker rmi [image]
docker image rm [image]
	支持的子命令如下:
		-f, -force: 强制删除镜像,即便有容器引用该镜像;
		-no-prune: 不要删除未带标签的父镜像;

在这里插入图片描述
3. 开启 MySql 的远程服务连接。
3.1、查看 MySQL 数据库版本 select version()
3.2、查看 MySQL 配置文件:whereis mysql
在这里插入图片描述
cd /etc/mysql && ls -alih
在这里插入图片描述
3.3、查看 MySQL 著配置文件:cat my.conf
在这里插入图片描述
3.4、查看 MySql 的日志内容。docker logs mysql01
在这里插入图片描述

远程连接 MySQL(Windows 系统访问 Linux 上的数据库)

我使用的是 Navicat Premium 12 ,通过如图所示的主机名称,与密码即可连接。如果不能够连接,可能是需要创建一个远程的账户。
在这里插入图片描述

  1. MySQL 创建远程连接账户 。
mysql> CREATE USER 'robertchao'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
Query OK, 0 rows affected (0.01 sec)

mysql> GRANT ALL PRIVILEGES ON *.* TO 'robertchao'@'%';
Query OK, 0 rows affected (0.00 sec)
  1. 在通过 本地 Windows 系统使用 Navicat 连接测试。
    在这里插入图片描述

对于数据库,我们还需要认识几个文件夹

  • 主配置文件 /etc/mysql/my.cnf
  • 配置文件夹 /etc/mysql/conf.d/
  • 数据文件夹 /var/lib/mysql
    在宿主机上建立的目录如下:
  • /share/mysql/my.cnf
  • /share/mysql/conf.d/
  • /share/mysql/data/

Linux 安装 Oracle 数据库。

  1. 拉取镜像docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
    在这里插入图片描述
    在这里插入图片描述
  2. 查看镜像docker images
    在这里插入图片描述
  3. 创建容器docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g。创建成功能会返回容器id 。
    注意:命令后面的地址是下载的镜像地址,也是拉取镜像名字,否则会出现名字已存在等问题。
    在这里插入图片描述
    黑框的内容如下:/usr/bin/docker-current: Error response from daemon: driver failed programming external connectivity on endpoint oracle11g (784d88a7215f787d58c14ecee332ee5841fab86c60c6a89f4dc701bb962da34e): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 1521 -j DNAT --to-destination 172.17.0.3:1521 ! -i docker0: iptables: No chain/target/match by that name.
    (exit status 1)). 大概意思是说有名字相同的容器。如果没有冲突的容器存在,则可以忽略此信息。因为之前动过防火墙,关闭防火墙,使得 Redis 数据库能够访问,采用 systemctl restart docker 方法即可。很多人说 执行 service restart docker,这样的 service 会提示出来,建议使用 systemctl 。
  4. 启动容器docker start oracle11g
    在这里插入图片描述
  5. 进入镜像进行配置
    5.1、docker exec -it oracle11g bash,进入 oracle 的环境。
    5.2、sqlplus /nolog ,执行进入软连接。第一次运行是进不去的。
    5.3、 su root ,切换到管理员登录,默认密码是:helowin。
    5.4、编辑 profile 文件(vi /etc/profile)配置 ORACLE 环境变量 (如下的环境变量)。
    export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
    export ORACLE_SID=helowin
    export PATH= O R A C L E H O M E / b i n : ORACLE_HOME/bin: ORACLEHOME/bin:PATH
    5.5、创建软连接。ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
    5.6、切换到 oracle 用户 su - oracle,一定要写中间的内条 - 必须要,否则软连接无效 。
    在这里插入图片描述
    5.7、登录sqlplus并修改sys、system用户密码
  • sqlplus /nolog 不使用管理员账户登录
  • conn /as sysdba 连接系统数据库管理员
    在这里插入图片描述
## 设置 system 用户的密码
alter user system identified by system;

## 设置 sys 用户的密码
alter user sys identified by sys;

## 
Alter profile default limit PASSWORD_LIFE_TIME UNLIMITED;

## 创建 oracle 的用户 robertchao 账号与密码
create user robertchao identified by robertchao;

## 授予 连接、资源、数据库管理员的权限。
grant connect,resource,dba to robertchao;

## 退出 SQL 控制台
exit;

在这里插入图片描述6. Navicat 连接。这里的服务名通过 lsnrctl status 查看,可以通过lsnrctl start 启动监听。

  • 连接名自拟
  • 连接类型 一般都是 Basic
  • 主机地址,通过 ip addr 查看虚拟机的地址。
  • 端口默认的 1521
  • 服务名需要注意的 这里的服务名为 helowin
    在这里插入图片描述

Linux 安装 SqlServer 数据库。

;