VueプロジェクトでVPS上のMySQLからデータを取得するためには、以下の手順と必要なツール、チェックリストを確認しながら進めるとスムーズです。ここでは、フロントエンドのVueとバックエンドをNode.jsやExpressを使って構成し、VPSのMySQLデータベースからデータを取得する方法を説明します。
必要なもの
Vueプロジェクト(フロントエンド)
VPSサーバー(Ubuntu)
MySQL(VPS上にインストール)
Node.jsとExpress(バックエンドAPIとして)
MySQLドライバ(バックエンドでMySQLに接続するため)
NginxまたはApache(VPSでリバースプロキシの設定)
セキュリティ設定(SSH、MySQLアクセス制限、ファイアウォール設定)
手順
1. VPS上にMySQLのセットアップ
MySQLをUbuntuにインストールし、必要なデータベースとテーブルを作成します。
bash sudo apt update
sudo apt install mysql-server
MySQLの設定(リモートアクセスが必要な場合は設定を変更)
/etc/mysql/mysql.conf.d/mysqld.cnf の bind-address を 0.0.0.0 に変更することで、外部からのアクセスを許可します。
MySQLユーザーの作成とリモートアクセス許可
sql CREATE USER 'username'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'%';
FLUSH PRIVILEGES;
2. VPSにNode.jsとExpressをセットアップ
Node.jsとExpressをVPSにインストールし、MySQLに接続するためのAPIを作成します。
bash sudo apt install nodejs
sudo apt install npm
ExpressでバックエンドAPIを作成し、MySQLに接続する。
javascript
3. フロントエンド(Vue)でAPIを呼び出す
Vueプロジェクトで、作成したAPIを使ってデータを取得します。
javascript const express = require('express');
const mysql = require('mysql2');
const cors = require('cors');
const app = express();
app.use(cors());
const db = mysql.createConnection({
host: 'your_vps_ip_address', // または 'localhost' (ローカルアクセスのみの場合)
user: 'username',
password: 'password',
database: 'database_name'
});
db.connect(err => {
if (err) {
console.error('Database connection failed: ' + err.stack);
return;
}
console.log('Connected to database.');
});
app.get('/api/data', (req, res) => {
db.query('SELECT * FROM your_table', (error, results) => {
if (error) {
return res.status(500).json({ error });
}
res.json(results);
});
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
<template>
<div>
<h1>MySQL Data</h1>
<ul>
<li v-for="item in data" :key="item.id">{{ item.name }}</li>
</ul>
</div>
</template>
<script>
export default {
data() {
return {
data: []
};
},
mounted() {
fetch('http://your_vps_ip_address:3000/api/data')
.then(response => response.json())
.then(data => {
this.data = data;
})
.catch(error => {
console.error('Error fetching data:', error);
});
}
};
</script>
ここから先は
¥ 1,500
Amazonギフトカード5,000円分が当たる
この記事が気に入ったらチップで応援してみませんか?