这里说的轻量级服务器上的 mysql 数据库管理,针对的是 nodejs 服务器上的 mysql 数据库管理。
阿里云的轻量级服务器,优 8 个应用镜像,分别为 wordpress、LAMP、Drupal、Nodejs、ECshop、phpwind、ASP.NET、BT-Panel。这里主要说 Nodejs。因为 Nodejs 镜像默认是没有 mysql 数据库的,其他的应该优 mysql 数据库 (因为大多是经典的 php+mysql 应用),不确认,如果没有 mysql,也可以参照 nodejs 镜像的 mysql 操作来管理 mysql。
参考连接:使用数据管理产品连接轻量应用服务器上的数据库
轻量级服务器上的数据库默认不对外提供连接,nodejs 镜像默认没有安装 mysql 数据库,只有 mongodb 数据库。如果希望在 nodejs 应用镜像中使用 mysql,首先需要安装 mysql。
开始时在服务器安装了 8.0 的 mysql,但时在阿里云的 DMS 中连接数据库的时候,总是抱一些错误,原因就是 mysql 的版本太高了,而 DMS 的一些支持不支持那么高的版本,由于对 mysql 不太熟悉,就没有深入的追究,就重新安装了低版本的 mysql,改成了 5.7.25 的,之后再使用阿里云的 DMS 连接 mysql 的时候就没有任何问题了。
# nodejs 镜像的轻量级服务器 mysql 管理主要可以分为下面几个步骤
- 安装 mysql 数据库
- 开通防火墙端口
- 使用 DMS 连接数据库
# 安装 mysql 数据库
轻量级服务器是 centos7.3, 安装及使用 mysql 的基本方法可参考:centos7 中安装 mysql
# 开通防火墙端口
轻量级服务器默认是关闭了 mysql 数据库的网络端口的,默认情况下只开启了 22、80、443 端口,其他的外网端口均为关闭状态,但是用户可以自主选择端口开放范围。
开通防火墙的方法
进入轻量级服务器控制台,进入安全 - 防火墙,
然后点击右上角的 “添加规则” 按钮,弹出防火墙设置规则。
这里我们选择 mysql,然后系统会自动为我们选择好协议和端口范围,点击确定即可。也可以参考防火墙设置规则
# 使用 DMS 连接数据库
前面已经说过了,服务器是安装了 mysql5.x 版本的,如果安装了高版本的,可能会出现一些问题。由于我对 mysql 不太熟悉,也谈不上精通,这里就偷了个懒,直接使用的 mysql5.7 的,配置过程比较顺利。
登录 DMS 控制台,登录之后,有一步需要我们授权的操作,不用想了,直接允许授权吧,不然我们也不能使用这项服务。服务是免费的,不收费。
# 取得 DMS 服务器的 IP
出于安全原因的考虑,不建议将 mysql 服务的对所有的公网 IP 开放连接,因此只是对阿里云的数据库管理产品 (DMS) 的 IP 连接。但是需要我们发起一次连接,DMS 上就会显示 DMS 的 IP 地址。
登录 DMS 的自建库管理界面
这里会出现一个新增数据库的弹层,我们在这个弹层中选择 mysql 数据库,网络类型就用系统默认的即可 “经典网络”。
我这里已经配置好了,不会预期出现 DMS 的 IP 地址了,暂且使用 DMS 系统帮助文档给出的一个图片吧,效果是一样的。
新增数据库的弹层中,我们根据提示填写信息就可以了,最后点击登录的时候,会报错,没有关系,错误提示信息里会有一个 IP 地址,把这个 IP 地址记下来,这个 IP 地址就是 DMS 的 IP 地址,我们需要将这个 IP 地址加入到 MySQL 的允许连接 IP 地址中。
# 将 DMS 服务器的 IP 地址加入到 MySQL 服务允许连接的 IP 中
登录轻量级服务器的控制台,选择进入 “远程连接”,也可以通过命令行终端以 ssh 方式登录服务器,然后进入 mysql 服务:
➜ ~ ssh root@xx.xx.xx.xx | |
Last login: Tue Jan 29 10:18:09 2019 from xx.xx.xx.xx | |
Welcome to Alibaba Cloud Elastic Compute Service ! | |
[root@iz2zeic9ggky8iukigla0fz ~]# mysql -u root -p | |
Enter password: | |
Welcome to the MySQL monitor. Commands end with ; or \g. | |
Your MySQL connection id is 44 | |
Server version: 5.7.25 MySQL Community Server (GPL) | |
Copyright (c) 2000, 2019, 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. | |
mysql> |
登录 mysql 服务之后,通过对 DMS 上的用户赋权允许登录 mysql 服务。
create user 'root'@'DMS的IP地址' identified by '密码'; | |
grant all privileges on *.* to 'root'@'DMS的IP地址' with grant option; | |
flush privileges; |
注意上面两行命令中的 root,都是用户名,可以更改为其他用户名,不一定必须是 root,DMS 的 IP 地址,就是前面新增数据库中提示错误信息中的 IP 地址。
# 使用 DMS 连接数据库
我们还在前面登录的 DMS 页面中的自建库中登录:
我们根据提示填写信息就可以了,登录成功后如下图所示:
到此为止,我们已经完成了通过阿里云的数据库管理产品 DMS 管理轻量级服务器中的数据库了,接下来我们测试下数据库的使用。
# 测试应用和数据库的使用。
在服务器中新建一个 nodejs 应用,应用中新建一个 js 文件,用来测试与数据库的连接:
var mysql = require("mysql"); | |
var conn = mysql.createConnection({ | |
host:'localhost', | |
user:'root', | |
password:'mysql密码', | |
database:'数据库名称' | |
}); | |
conn.connect(function(err){ | |
if(err){ | |
console.log("连接失败"); | |
}else{ | |
console.log("连接成功"); | |
} | |
}); |
测试执行结果:
[root@iz2zeic9ggky8iukigla0fz nodetest]# node db.js | |
连接成功 |
说明,我们在服务器中的应用已经可以使用自建的数据库了。