虚拟化容器,大数据,DBA,中间件,监控。

迁移SpringCloude微服务 安装和配置数据存储仓库MySQL

19 05月
作者:admin|分类:容器虚拟化
安装和配置数据存储仓库 MySQL
1.MySQL 简介
2.MySQL 特点
3.安装和配置 MySQL
4.在 MySQL 数据库导入数据
5.对 MySQL 数据库进行授权

 

1.MySQL 简介


MySQL 是一款安全、跨平台、高效的,并与 PHP、Java 等主流编程语言紧密结合的数据库系统。该数据 库系统是由瑞典的 MySQL AB 公司开发、发布并支持,由 MySQL 的初始开发人员 David Axmark 和Michael Monty Widenius 于 1995 年建立的。MySQL 的象征符号是一只名为 Sakila 的海豚,代表着MySQL 数据库的速度、能力、精确和优秀本质。

MySQL logo:

目前 MySQL 被广泛地应用在 Internet 上的中小型网站中。由于其体积小、速度快、总体拥有成本低, 尤其是开放源码这一特点,使得很多公司都采用 MySQL 数据库以降低成本。
MySQL 数据库可以称得上是目前运行速度最快的 SQL 语言数据库之一。除了具有许多其他数据库所不具 备的功能外,MySQL 数据库还是一种完全免费的产品,用户可以直接通过网络下载MySQL 数据库,而 不必支付任何费用
 
 

2.MySQL 特点


1) 功能强大

MySQL 中提供了多种数据库存储引擎,各引擎各有所长,适用于不同的应用场合,用户可以选择最合适 的引擎以得到最高性能,可以处理每天访问量超过数亿的高强度的搜索 Web 站点。MySQL5 支持事务、 视图、存储过程、触发器等。
2) 支持跨平台
MySQL 支持至少 20 种以上的开发平台,包括 Linux、Windows、FreeBSD 、IBMAIX、AIX、FreeBSD 等。这使得在任何平台下编写的程序都可以进行移植,而不需要对程序做任何的修改。
3) 运行速度快
高速是 MySQL 的显著特性。在 MySQL 中,使用了极快的 B 树磁盘表(MyISAM)和索引压缩;通过使用优化的单扫描多连接,能够极快地实现连接;SQL 函数使用高度优化的类库实现,运行速度极快。
4) 支持面向对象
PHP 支持混合编程方式。编程方式可分为纯粹面向对象、纯粹面向过程、面句对象与面向过程混合 3 种方式。
5) 安全性高
灵活和安全的权限与密码系统,允许基本主机的验证。连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码的安全。
6) 成本低
MySQL 数据库是一种完全免费的产品,用户可以直接通过网络下载。
7) 支持各种开发语言
MySQL 为各种流行的程序设计语言提供支持,为它们提供了很多的 API 函数,包括 PHP、ASP.NET、Java、Eiffel、Python、Ruby、Tcl、C、C++、Perl 语言等。
8) 数据库存储容量大
MySQL 数据库的最大有效表尺寸通常是由操作系统对文件大小的限制决定的,而不是由 MySQL 内部限制决定的。InnoDB 存储引擎将 InnoDB 表保存在一个表空间内,该表空间可由数个文件创建,表空间的最大容量为 64TB,可以轻松处理拥有上千万条记录的大型数据库。
9) 支持强大的内置函数
PHP 中提供了大量内置函数,几乎涵盖了 Web 应用开发中的所有功能。它内置了数据库连接、文件上传等功能,MySQL 支持大量的扩展库,如 MySQLi 等,可以为快速开发 Web 应用提供便利。

 

3.安装 MySQL


 后面在k8s里面部署的项目是需要用到数据库的,需要将用到的一些数据存放在数据库当中,因为后面部署的项目是有订单项目,库存数据库,这些都需要存放在MySQL里面,这些模块都是需要存储数据的。

下载安装MySQL

[root@mysql ~]# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
[root@mysql ~]# rpm -ivh mysql-community-release-el7-5.noarch.rpm
[root@mysql ~]# yum install mysql-server -y

启动MySQL

[root@mysql ~]# chown mysql:mysql -R /var/lib/mysql
[root@mysql ~]# systemctl start mysqld
[root@mysql ~]# systemctl  status mysqld
?.mysqld.service - MySQL Community Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2021-06-03 09:21:56 CST; 16min ago
  Process: 10478 ExecStartPost=/usr/bin/mysql-systemd-start post (code=exited, status=0/SUCCESS)
  Process: 10409 ExecStartPre=/usr/bin/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 10477 (mysqld_safe)
   CGroup: /system.slice/mysqld.service
           ?..10477 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
           ?..10645 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var...

设置密码

#mysql 安装成功后,默认的 root 用户密码为空,你可以使用以下命令来创建 root 用户的密码,密码设置
成 111111

[root@mysql ~]# mysqladmin -u root password "111111"
Warning: Using a password on the command line interface can be insecure.
[root@mysql ~]# mysql -h 127.0.0.1 -u root -P 3306 -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.6.51 MySQL Community Server (GPL)

Copyright (c) 2000, 2021, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
创建数据库 tb_order、tb_product、tb_stock
mysql> create database tb_product;
Query OK, 1 row affected (0.00 sec)

mysql> create database tb_stock;
Query OK, 1 row affected (0.00 sec)

mysql> create database tb_order;
Query OK, 1 row affected (0.00 sec)

 

4.在 Mysql 数据库导入数据


把相应的 sql 语句上传到 mysql 机器的 root 目录下,sql 文件分别是 order.sql、product.sql、stock.sql,按如下方法导入:
mysql> use tb_order
Database changed
mysql> source /mysql/order.sql
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)


mysql> use tb_stock
Database changed
mysql> source /mysql/stock.sql
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)

mysql> use tb_product
Database changed
mysql> source /mysql/product.sql
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)


mysql> show tables;
+----------------------+
| Tables_in_tb_product |
+----------------------+
| product              |
+----------------------+
1 row in set (0.00 sec)

mysql> desc product;
+--------------+--------------+------+-----+---------+----------------+
| Field        | Type         | Null | Key | Default | Extra          |
+--------------+--------------+------+-----+---------+----------------+
| id           | int(11)      | NO   | PRI | NULL    | auto_increment |
| product_name | varchar(100) | YES  |     | NULL    |                |
| price        | double(15,3) | YES  |     | NULL    |                |
+--------------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

 

 

5.对 MySQL 数据库授权


其他机器不允许MySQL连接,现在允许几个段可以访问,一个是pod可以访问mysql,一个是pod所在的节点可以访问,最后一个就是对所有网段的权限都放开。这里是实验,所以都放开

[root@master ~]# kubectl get pod -o wide -n ingress-nginx
NAME                             READY   STATUS    RESTARTS   AGE    IP            NODE    NOMINATED NODE   READINESS GATES
nginx-ingress-controller-hj7pn   1/1     Running   0          134m   192.168.0.4   node2   <none>           <none>
nginx-ingress-controller-km8gv   1/1     Running   0          134m   192.168.0.3   node1   <none>           <none>

[root@master ~]# kubectl get pod -o wide
NAME                                     READY   STATUS    RESTARTS   AGE   IP             NODE    NOMINATED NODE   READINESS GATES
nfs-client-provisioner-cb667d665-x9nhf   1/1     Running   0          13d   10.233.90.16   node1   <none>           <none>
[root@tools1 ~]# mysql -h 192.168.0.1X -u root -P 3306 -p
Enter password: 
ERROR 1130 (HY000): Host '192.168.0.1X' is not allowed to connect to this MySQL server


mysql> grant all on *.* to 'root'@'10.233.%.%' identified by '111111';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all on *.* to 'root'@'192.168.%.%' identified by '111111';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all on *.* to 'root'@'%' identified by '111111';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

 

浏览508 评论0
返回
目录
返回
首页
微服务 SpringCloud是什么以及和k8s关系 应用存储和持久化数据卷:存储快照与拓扑调度