因为我的mysql是直接在云服务器上装的,所以自己想直接连接云上的mysql数据库。
按照网上的教程,走到了nodejs引入mysql模块,采用连接池(也就是const pool=mysql.createPool({ host:'1.11.11.111',
user:'shujukudeyonghuming',
password:'shujukudemima',
port:'3306',
database:'shujukudemingzi'})这样的形式)来连接的。但是中间死活连不上服务器,我之前玩儿react的时候也是碰到了连接的问题,只好曲线救国,采用ssh先连接服务器,再用'localhost'这样的主机名来连接数据库才得以成功的。为此还特地在云服务器上把ssh连接的端口号打开。
不过这一回,事情有了转机。我知道我云服务器的端口在安全策略组里是允许了3306端口的,但是仍旧连不上,我就在想,问题会不会出在宝塔面板上,结果跑去宝塔面板,试探性质地把那个放行端口添加上3306.没想到还真就成了。搞了半天是因为宝塔的二次拦截,导致前面的云服务器本身虽然走通了端口,但在这宝塔的安全防火墙面前被拦住了。
于是,我顺理成章地从外部连上了云服务器里的mysql数据库,既没有输服务器本身的用户名,也没输服务器的实例密码。单单只是输入了数据库的相关连接信息,就成功拿到了数据。

我还试了用DBeaver这样的数据库管理软件连接,也不再需要ssh就能成功连接上数据库了。