828华为云征文 | 云服务器Flexus X实例:开源数据库 mysql 部署,轻量级数据库

目录

一、MySQL 介绍

1.1 MySQL 优势

二、MySQL 部署

2.1 安装 Docker 

2.2 拉取 MySQL 镜像

 2.3 添加规则

三、MySQL 运行

3.1 运行 MySQL 镜像

3.2 安装 mysql 客户端

3.2 本地连接 mysql 数据库

四、总结


本篇文章介绍在 云服务器Flexus X实例 上安装开源数据库 MySQL,MySQL 是一个非常流行的开源数据库,使用人数非常多。云服务器Flexus X实例 具有易搭建、更实惠、易维护、更安全等优势,集成了主机安全、云监控、云备份。

一、MySQL 介绍

MySQL 是一个全球流行的开源数据库。DB-Engines 的数据显示,MySQL 在全球最受欢迎的数据库排名中高居第二位,仅次于 Oracle Database。

目前,全球访问量最高的流行应用的背后都有 MySQL 的身影,例如 Facebook、Twitter、Netflix、Uber、Airbnb、Shopify 和 Booking.com。

作为一个开源数据库,MySQL 在超过 25 年的发展历程中与全球用户密切合作,推出了众多先进功能,您喜欢的一些应用或编程语言很可能就是由 MySQL Database 提供支持的。

MySQL 中的 "SQL" 指的是“结构化查询语言”,它是访问数据库时最常用的标准化语言。根据您的编程环境,您可以直接输入 SQL 来执行操作(例如生成报告),可以将 SQL 语句嵌入基于其他语言编写的代码中,或使用隐藏了 SQL 语法的特定语言 API。

1.1 MySQL 优势

MySQL 快速、可靠、可扩展、简单易用。它最初是为了快速处理大型数据库而开发的,多年来一直应用于严苛生产环境。 MySQL 的主要优势包括:

(1)简单易用:开发人员可以在数分钟内完成 MySQL 安装,可以轻松管理数据库。

(2)可靠性:MySQL 是最成熟和使用最广泛的数据库之一。自问世 25 年来,它经受住了各种场景考验,旗下用户不乏全球知名的大型企业。

(3)可扩展性:MySQL 可以灵活扩展,满足访问量最高的应用的需求。得益于 MySQL 的原生复制架构,Facebook 等企业能够轻松扩展应用,满足数十亿用户需求。

(4)性能:多项标准行业基准测试(包括 TPC-H、TPC-DS 和 CH-benCHmark)的数据显示,MySQL HeatWave 不仅速度更快,而且成本更低。

(5)高可用性:MySQL 采用了一整套原生、完全集成的复制技术,具有高可用性和灾难恢复能力。

二、MySQL 部署

2.1 安装 Docker 

然后,执行命令安装 docker,如下所示。

root@flexusx-7305:~# sudo apt install docker-ce

 查看 docker 版本。

root@flexusx-7305:~# docker --version
Docker version 27.2.1, build 9e34c9b
root@flexusx-7305:~#

最后,安装 docker-compose,执行如下命令。 

root@flexusx-7305:~# sudo apt install docker-compose
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  redis-server redis-tools
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  python3-cached-property python3-docker python3-dockerpty python3-docopt python3-importlib-metadata python3-jsonschema python3-more-itertools python3-pyrsistent python3-texttable python3-websocket python3-zipp
Suggested packages:
  python-jsonschema-doc
Recommended packages:
  docker.io
The following NEW packages will be installed:
  docker-compose python3-cached-property python3-docker python3-dockerpty python3-docopt python3-importlib-metadata python3-jsonschema python3-more-itertools python3-pyrsistent python3-texttable python3-websocket python3-zipp
0 upgraded, 12 newly installed, 0 to remove and 33 not upgraded.
Need to get 412 kB of archives.
After this operation, 2,414 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://repo.huaweicloud.com/ubuntu focal/universe amd64 python3-cached-property all 1.5.1-4 [10.9 kB]
Get:2 http://repo.huaweicloud.com/ubuntu focal/universe amd64 python3-websocket all 0.53.0-2ubuntu1 [

到这里 Docker 安装完成。 

2.2 拉取 MySQL 镜像

拉取 MySQL 镜像,执行 docker pull 命令拉取,如下所示。

root@flexusx-7305:~# docker pull registry.cn-hangzhou.aliyuncs.com/fastgpt/mysql:8.0.36
8.0.36: Pulling from fastgpt/mysql
Digest: sha256:c57363379dee26561c2e554f82e70704be4c8129bd0d10e29252cc0a34774004
Status: Image is up to date for registry.cn-hangzhou.aliyuncs.com/fastgpt/mysql:8.0.36
registry.cn-hangzhou.aliyuncs.com/fastgpt/mysql:8.0.36
root@flexusx-7305:~#

如上所示,镜像 mysql 已经存在,如果没有的话,可以通过 docker pull 拉取。

 2.3 添加规则

pgvector 对应的端口是 3307,需要将 3307 端口加入到准入规则中。

首先,在基本信息中,找到安全组,点击进入安全组,如下所示。

 然后,点击 配置规则 配置 3307 端口,如下所示。

设置优先级,然后在协议端口中添加端口,点击确定,如下所示。 

可以看到 3307 端口已经被加入到安全规则中,如下所示。

三、MySQL 运行

3.1 运行 MySQL 镜像

首先,查看一下本地 MySQL 镜像,执行如下命令。

root@flexusx-7305:~# docker images
REPOSITORY                                                            TAG       IMAGE ID       CREATED         SIZE
registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox             latest    0f26cf6654ad   2 weeks ago     315MB
registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt                     v4.8.9    bc394a806301   6 weeks ago     356MB
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/gitea/gitea        1.22.1    b3de72970178   2 months ago    167MB
registry.cn-hangzhou.aliyuncs.com/fastgpt/one-api                     v0.6.6    40efbc4449c7   4 months ago    79.5MB
registry.cn-hangzhou.aliyuncs.com/fastgpt/pgvector                    v0.7.0    6e0cb183450e   5 months ago    429MB
registry.cn-hangzhou.aliyuncs.com/fastgpt/mysql                       8.0.36    f5f171121fa3   6 months ago    603MB
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/justsong/one-api   v0.6.0    36bd98ce5a7c   7 months ago    48.4MB
registry.cn-hangzhou.aliyuncs.com/fastgpt/mongo                       5.0.18    021e1bd71d92   16 months ago   662MB
daocloud.io/library/mysql                                             8         26d0ac143221   3 years ago     546MB
daocloud.io/library/mysql                                             latest    8457e9155715   3 years ago     546MB
root@flexusx-7305:~# 

如上所示,mysql 镜像已经存在本地(registry.cn-hangzhou.aliyuncs.com/fastgpt/mysql:8.0.36)。

然后,执行 docker run 命令运行 mysql 容器,并指定 mysql 登录密码以及端口,如下所示。

root@flexusx-7305:~# docker run -d --name=mysql-server-test -p 3307:3306 -e MYSQL_ROOT_PASSWORD=mysql registry.cn-hangzhou.aliyuncs.com/fastgpt/mysql:8.0.36
2ef1bc06d47dc093952571b949973e75bea2789296075178293ce8a6e1a5641b
root@flexusx-7305:~# docker ps
CONTAINER ID   IMAGE                                                                        COMMAND                  CREATED             STATUS             PORTS                                                    NAMES
2ef1bc06d47d   registry.cn-hangzhou.aliyuncs.com/fastgpt/mysql:8.0.36                       "docker-entrypoint.s…"   15 seconds ago      Up 15 seconds      33060/tcp, 0.0.0.0:3307->3306/tcp, [::]:3307->3306/tcp   mysql-server-test
982a9ed73524   registry.cn-hangzhou.aliyuncs.com/fastgpt/pgvector:v0.7.0                    "docker-entrypoint.s…"   About an hour ago   Up About an hour   0.0.0.0:54333->5432/tcp, [::]:54333->5432/tcp            pgvectorface
68a1f9a73e58   registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.8.9                     "sh -c 'node --max-o…"   11 days ago         Up 11 days         0.0.0.0:3000->3000/tcp, :::3000->3000/tcp                fastgpt
b57af8cd1b6b   registry.cn-hangzhou.aliyuncs.com/fastgpt/one-api:v0.6.6                     "/one-api"               11 days ago         Up 11 days         0.0.0.0:3001->3000/tcp, [::]:3001->3000/tcp              oneapi
2de37c379c6a   registry.cn-hangzhou.aliyuncs.com/fastgpt/mysql:8.0.36                       "docker-entrypoint.s…"   11 days ago         Up 11 days         0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp     mysql
9d7906452f26   registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:latest             "docker-entrypoint.s…"   11 days ago         Up 11 days                                                                  sandbox
6f9c7f088d9d   registry.cn-hangzhou.aliyuncs.com/fastgpt/mongo:5.0.18                       "bash -c 'openssl ra…"   11 days ago         Up 11 days         0.0.0.0:27017->27017/tcp, :::27017->27017/tcp            mongo
3867cf7f6df9   registry.cn-hangzhou.aliyuncs.com/fastgpt/pgvector:v0.7.0                    "docker-entrypoint.s…"   11 days ago         Up 11 days         0.0.0.0:5432->5432/tcp, :::5432->5432/tcp                pg
89bb9f7a3dd1   swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/justsong/one-api:v0.6.0   "/one-api"               12 days ago         Up 11 days         0.0.0.0:3002->3000/tcp, [::]:3002->3000/tcp              one-api
65fe1c102df6   daocloud.io/library/mysql:8                                                  "docker-entrypoint.s…"   2 weeks ago         Up 11 days         3306/tcp, 33060/tcp                                      root_db_1
root@flexusx-7305:~#

通过 docker ps 命令查看当前正在运行的容器,如上所示,mysql容器已经正常运行。

3.2 安装 mysql 客户端

连接 mysql 需要先安装 mysql 客户端,执行 apt-get 命令安装 mysql-client 客户端,命令如下所示。

root@flexusx-7305:~# apt-get install mysql-client
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libcgi-fast-perl libcgi-pm-perl libencode-locale-perl libevent-core-2.1-7 libevent-pthreads-2.1-7 libfcgi-perl libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl libhttp-date-perl libhttp-message-perl libio-html-perl
  liblwp-mediatypes-perl libmecab2 libtimedate-perl liburi-perl mecab-ipadic mecab-ipadic-utf8 mecab-utils mysql-server-core-8.0 redis-server redis-tools
Use 'apt autoremove' to remove them.
The following NEW packages will be installed:
  mysql-client
0 upgraded, 1 newly installed, 0 to remove and 61 not upgraded.
Need to get 9,364 B of archives.
After this operation, 35.8 kB of additional disk space will be used.
Get:1 http://repo.huaweicloud.com/ubuntu focal-updates/main amd64 mysql-client all 8.0.39-0ubuntu0.20.04.1 [9,364 B]
Fetched 9,364 B in 0s (315 kB/s)         
Selecting previously unselected package mysql-client.
(Reading database ... 123509 files and directories currently installed.)
Preparing to unpack .../mysql-client_8.0.39-0ubuntu0.20.04.1_all.deb ...
Unpacking mysql-client (8.0.39-0ubuntu0.20.04.1) ...
Setting up mysql-client (8.0.39-0ubuntu0.20.04.1) ...
root@flexusx-7305:~#

如上所示,mysql-client 软件包安装成功,下面开始连接 mysql 数据库。

3.2 本地连接 mysql 数据库

执行 mysql 命令连接本地 mysql 数据库,如下所示。

root@flexusx-7305:~# mysql -h 0.0.0.0 -u root -P 3307 -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.36 MySQL Community Server - GPL

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

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.

mysql> 

-P 参数是指定端口,如果本地有多个 mysql 服务,可以通过指定 -P 端口来访问指定的数据库,如果不指定端口,可能报错,如下所示。

root@flexusx-7305:~# mysql -h 127.0.0.1 -u root -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'172.19.0.1' (using password: YES)

 

四、总结

通过在 云服务器Flexus X实例 上部署开源数据库 MySQL,验证了 云服务器Flexus X实例 的安全和稳定性,完全可以支持开源数据库 MySQL 的部署。Flexus云服务器X实例 简化了购买ECS过程中的配置,并且功能接近ECS, 同时还具备独有特点,例如Flexus云服务器X实例具有更灵活的vCPU内存配比、支持热变配不中断业务变更规格、支持性能模式等。Flexus云服务器X实例相较于Flexus应用服务器L实例规格配置和功能使用更为灵活,限制较少,赶紧用起来吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linux猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值