Puncte:0

serverul nu redă site-ul web după configurarea serverului mysql eșuată

drapel in

Am început să primesc această eroare când am instalat mysql_server pe serverul meu ca root, folosesc ufw, nu știu dacă ar trebui să permit serverul mysql prin ufw dacă ar trebui să o fac, nu știu cum, de asemenea pe serverul meu local primesc această eroare:

intern/module/cjs/loader.js:638
    arunca greseala;
    ^

Eroare: Modulul „mysql” nu poate fi găsit
    la Function.Module._resolveFilename (intern/modules/cjs/loader.js:636:15)
    la Function.Module._load (internal/modules/cjs/loader.js:562:25)
    la Module.require (internal/modules/cjs/loader.js:692:17)
    la cerere (internal/modules/cjs/helpers.js:25:18)
    la Object.<anonymous> (/mnt/c/Users/user/Documents/webdevelopment/projects/FinalYearProject/Black-Anthem-Ltd-Website/app.js:4:13)
    la Module._compile (internal/modules/cjs/loader.js:778:30)
    la Object.Module._extensions..js (intern/modules/cjs/loader.js:789:10)
    la Module.load (intern/modules/cjs/loader.js:653:32)
    la tryModuleLoad (intern/modules/cjs/loader.js:593:12)
    la Function.Module._load (intern/modules/cjs/loader.js:585:3)

în special, spune că nu poate găsi mysql în directoarele mele. Încercam să-mi conectez formularul html la baza mea de date mysql înainte de a instala mysql_server și a început să întâmpin aceste probleme. Acestea sunt codurile mele de formular html: Formularul de abonați la pagina de pornire:

<div class="subsect">
        <div id="subtxt">
            <h1>Subscribe to our Newsletter!</h1>
        </div>
        <div id="subform">
            <form action="/" method="post">
                <div class="ol"><div class="nam" >Name</div><div id="rsik">*</div></div>
                <div class="sd ssd"><input type="text" name="fname" placeholder="First" id="fn">
                <input type="text" name="lname" placeholder="Last" id="ln" ></div>
                <div class="ol"><div class="nam" >E-mail</div><div id="rsik">*</div></div>
                <div class="sd"></span><input type="email" name="email" placeholder="[email protected]" id="email"></div></br>
                <button type="submit">Subscribe</button>
            </form>
        </div>
    </div>

Solicitați formularul paginii de cotație:

<div id="formsection">
                <form action="/RAQ" method="post" id="raqform">
                    <h2>Request A Quote</h2>
                    <div class="ol"><div class="nam" >Name</div><div id="rsik">*</div></div>
                    <div class="sd ssd"><input type="text" name="sfname" placeholder="First" id="fn">
                    <input type="text" name="slname" placeholder="Last" id="ln" ></div>
                    <div class="ol"><div class="nam" >E-mail</div><div id="rsik">*</div></div>
                    <div class="sd"><input type="email" name="semail" placeholder="[email protected]" id="email"></div>
                    <div class="ol"><div class="nam" >Select A Service</div><div id="rsik">*</div></div>
                    <div class="sd">
                        <select name="services" id="ser" class="sd">
                            <option value="RDCCC">Roads, Drainage, Culverts and channels construction</option>
                            <option value="CON">Consultancy</option>
                            <option value="DIC">Dams and irrigation Construction</option>
                            <option value="WMPFC">Warehousing, Marine and port facilities construction</option>
                            <option value="CHEIUPW">Construction of concrete hard surfaces especially in unfriendly polluted water</option>
                            <option value="CBHF">Consultation on buildings and feasibility</option>
                            <option value="CIMS">Calibration, inspection and meter proving services</option>
                            <option value="DCOGPPF">Design and Construction of oil and gas production and processing facilities</option>
                            <option value="DCPS">Design and Construction of pipeline Systems</option>
                            <option value="DCRPP">Design and Construction of refineries and petrochemical plants</option>
                            <option value="ROGF">Rehabilitation of oil and gas facilities (Onshore and Offshore)</option>
                            <option value="DCMTF">Design, Construction and Maintenance of tank farms</option>
                            <option value="DCMUS">Design, Construction and Maintenance of flow stations and underground storage</option>
                            <option value="LIP">Local and international procurement</option>
                            <option value="SSFP">Support services for projects</option>
                            <option value="CMSL">Civil and mechanical equipment supply and leasing</option>
                            <option value="HSEFPSMS">Health and safety environment and fire protection systems materials supply</option>
                            <option value="EFPSMS">Environment and fire protection systems materials supply</option>
                            <option value="SSS">Structural steel supply</option>
                            <option value="POCTG">Pipeline and oil country tubular goods (OCTG) supply </option>
                            <option value="WHCPS">Wellheads and control supply</option>
                            <option value="VFS">Valves and fittings supply</option>
                            <option value="PCFSS">Pumps, Compressor and fluid systems supply</option>
                            <option value="SSMPS">Strategic sourcing and man power supplies</option>
                            <option value="LSM">Logistics and supply chain management</option>
                            <option value="PM">Project Management</option>
                            <option value="FM">Facilities Management</option>
                        </select>
                        <div class="ol"><div class="nam" >Message</div><div id="rsik">*</div></div>
                        <div class="sd"><textarea name="comment" id="" cols="30" rows="10">Type your message here</textarea></div>
                    </div>
                    <button type="submit">Request A Quote</button>
                </form>
            </div>

Acesta este fișierul meu app.js:

const express = require('express')
cale const = require('cale')
const app = expres()
var mysql = require('mysql');
var bodyParser = require('body-parser')
const port = 3000

var urlencodedParser = bodyParser.urlencoded({ extins: false })

//Fișiere statice
app.use(express.static(path.resolve(__dirname, 'public')))


//Setați vizualizări
app.set('view engine', 'ejs')

app.set('views', './views')

app.get('/', (req, res) => {
  res.render('Acasă')
})

app.get('/Despre', (req, res) => {
  res.render('Despre')
})

app.get('/Proiecte', (req, res) => {
  res.render('Proiecte')
})

app.get('/RAQ', (req, res) => {
  res.render('RAQ')
})

app.get('/', (req, res) => {
  res.render('acasă', {qs: req.query});
})

app.post('/', urlencodedParser, (req, res) => {
  res.render('acasă', {qs: req.query});
})

app.get('/raq', (req, res) => {
  res.render('raq', {qs: req.query});
})
app.post('/raq', urlencodedParser, (req, res) => {
  res.render('raq', {qs: req.query});
})
var connection = mysql.createConnection({
  gazdă: „https://www.blackanthemltd.site”,
  utilizator: 'abayomi',
  parola : '',
  baza de date: „abonați”
});
 
connection.connect(funcție (eroare){
  if (err) arunc err;
  console.log('conectat..')
});

app.post('/', function(req,res){
  console.log(req.body);

  var sql ="inserați în valorile utilizatorilor('"+req.body.fname+"','"+req.body.lname+"',"+req.body.email+")"
  connection.query(sql, function (eroare, rezultate) {
    if (eroare) eroare de aruncare;
    console.log('Soluția este: ', rezultate[0].soluție);
  });

  res.render('Acasă', { title: 'Date salvate',
  mesaj: „Date salvate cu succes.”})

  connection.end();
})

var connection2 = mysql.createConnection({
  gazdă: „https://www.blackanthemltd.site”,
  utilizator: 'abayomi',
  parola : '',
  baza de date: „Solicitări_de_oferte”
});
 
connection2.connect(funcție (eroare){
  if (err) arunc err;
  console.log('conectat..')
});

app.post('/RAQ', function(req,res){
  console.log(req.body);

  var sql ="inserați în valorile utilizatorilor('"+req.body.sfname+"', '"+req.body.slname+"', '"+req.body.semail+"', '"+req.body.services+ "', "+req.body.comment+")"
  connection2.query(sql, function (eroare, rezultate) {
    if (eroare) eroare de aruncare;
    console.log('Soluția este: ', rezultate[0].soluție);
  });

  res.render('RAQ', { title: 'Date salvate',
  mesaj: „Date salvate cu succes.”})

  connection2.end();
})

app.listen(port, () => {
      console.log(`Exemplu de aplicație care ascultă la http://localhost:${port}`)
})


Acesta este fișierul meu package.json de pe serverul meu de la distanță:

{
  "nume": "balfyp",
  "versiunea": "1.0.0",
  "description": "Proiect pentru anul final",
  „principal”: „app.js”,
  „scripturi”: {
    "test": "echo \"Eroare: nu a fost specificat niciun test\" && ieșire 1",
    „start”: „nodemon app.js”
  },
  "autor": "abayomi",
  "licență": "MIT",
  „dependențe”: {
    "cors": "^2.8.5",
    "ejs": "^3.1.6",
    „express”: „^4.17.1”
  },
  „devDependencies”: {
    "nodemon": "^2.0.12"
  }
}

acesta este fișierul meu package.json de pe serverul meu live:

{
  "nume": "balfyp",
  "versiunea": "1.0.0",
  "description": "Proiect pentru anul final",
  „principal”: „app.js”,
  „scripturi”: {
    "test": "echo \"Eroare: nu a fost specificat niciun test\" && ieșire 1",
    „start”: „nodemon app.js”
  },
  "autor": "abayomi",
  "licență": "MIT",
  „dependențe”: {
    "body-parser": "^1.19.0",
    "cors": "^2.8.5",
    "ejs": "^3.1.6",
    "express": "^4.17.1",
    "mysql": "^2.18.1",
    "nodemailer": "^6.6.3",
    "nodemailer-mailgun-transport": "^2.1.3"
  },
  „devDependencies”: {
    "nodemon": "^2.0.12"
  }
}

Va rog cu ce am gresit? Am făcut câteva modificări la baza mea de cod. Pagina mea web a încetat să mai afișeze eroare și s-a încărcat bine, ceea ce înseamnă că mysql s-a conectat cu succes, dar făcând clic pe butonul de trimitere de pe formularul meu după ce l-am completat, am primit eroarea:

Nu se poate POST /

iată modificările pe care le-am făcut bazei de cod, în special numai fișierului meu app.js:

const express = require('express')
    cale const = require('cale')
    const app = expres()
    var mysql = require('mysql');
    var bodyParser = require('body-parser')
    const port = 3000
    
    var urlencodedParser = bodyParser.urlencoded({ extins: false })
    
    //Fișiere statice
    app.use(express.static(path.resolve(__dirname, 'public')))
    
    
    //Setați vizualizări
    app.set('view engine', 'ejs')
    
    app.set('views', './views')
    
    app.get('/', (req, res) => {
      res.render('Acasă')
    })
    
    app.get('/Despre', (req, res) => {
      res.render('Despre')
    })
    
    app.get('/Proiecte', (req, res) => {
      res.render('Proiecte')
    })
    
    app.get('/RAQ', (req, res) => {
      res.render('RAQ')
    })
    
    app.get('/', (req, res) => {
      res.render('acasă', {qs: req.query});
    })
    
    app.post('/', urlencodedParser, (req, res) => {
      res.render('acasă', {qs: req.query});
    })
    var connection = mysql.createConnection({
      gazdă: „https://www.blackanthemltd.site”,
      utilizator: „rădăcină”,
      parola: „Mynameisabayomi1.”,
      baza de date: 'bal'
    });
     
    connection.connect(funcție (eroare){
      if (err) arunc err;
      console.log('conectat..')
    });
    app.post('/', function(req,res){
      console.log(req.body);
    
      var sql ="inserați în valorile utilizatorilor('"+req.body.fn+"','"+req.body.ln+"',"+req.body.email+")"
      connection.query(sql, function (eroare, rezultate) {
        if (eroare) eroare de aruncare;
        console.log('Soluția este: ', rezultate[0].soluție);
      });
    
      res.render('Acasă', { title: 'Date salvate',
      mesaj: „Date salvate cu succes.”})
    
      connection.end();
    })
    app.listen(port, () => {
          console.log(`Exemplu de aplicație care ascultă la http://localhost:${port}`)
    })

vă rog, cum pot să nu mai primesc această eroare.

drapel in
MySQL este pe același server cu gazda web? Sau MySQL rulează pe un server separat?
Abayomi Usman avatar
drapel in
Este pe același server cu gazda web
Puncte:0
drapel in

Dacă MySQL rulează pe aceeași mașină cu serverul web, atunci nu trebuie să modificați nimic cu UFW.În schimb, veți dori să vă schimbați setările de conexiune:

var connection = mysql.createConnection({
    gazdă: „127.0.0.1”,
    utilizator: „myWebApp”,
    parola: 'superSecretPassword!123.',
    baza de date: 'bal'
});

Note:

  1. The gazdă valoarea este în general 127.0.0.1 sau gazdă locală când baza de date se află pe același sistem cu serverul web.
  2. Nu puteți (cu ușurință) să utilizați rădăcină Mai contează MySQL pentru aplicații web, așa că veți dori să creați un cont nou care să aibă acces la baza de date pe care o utilizați:
    1. Conectați-vă la MySQL pe server
      sudo mysql -u root
      
      Notă: Acesta este modul în care rădăcină Contul MySQL este accesat acum. trebuie sa ai sudo privilegii pe server. Aceasta este o caracteristică de securitate și unul dintre numeroasele motive pentru care serverele web nu pot utiliza rădăcină mai cont.
    2. Creați un cont nou și acordați-i acces complet numai la baza de date de care are nevoie site-ul:
      CREAȚI UTILIZATOR 'baluser'@'localhost' IDENTIFICAT CU mysql_native_password DE 'superSecretPassword!123';
      Acordați totul pe `bal`.* LA 'baluser'@'localhost';
      

Acest lucru ar trebui să vă ofere ceea ce aveți nevoie pentru a începe.

Abayomi Usman avatar
drapel in
Ok, lasă-mă să încerc asta, sper să funcționeze
Abayomi Usman avatar
drapel in
Ok, lasă-mă să încerc asta, sper să funcționeze

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.