Pai in primul rand trebuie sa ai acces la server sa instalezi serverul e mysql daca hostingul nu iti pune la dispozitie deja un server de mysql.
Apoi phpmyadmin este doar o interfata prin care poti interoga datele din serverul de mysql. Trebuie sa il conectezi la acel server daca asta te intereseaza pe tine si anume sa vezi datele din phpmyadmin.
Pe apache sau nginx trebuie sa modifici websiteul astfel incat sa acceseze baza de date.
In primul rand websiteul trebuie sa fie public. Verifica faptul ca websiteul e accesibil de catre altii. In al doilea rand trebuie sa scrii cod care face operatiuni cu baza de date. Nu poti cupla direct un website care nu cunoaste baze de date la un server mysql. Adica nu-l poti cupla fara a modifica nimic din website.
Daca faci asta in php, atunci trebuie sa scrii cod php care este "vizibil" pe website (publicat in cadrul websiteului, prin interpretor, desi aia care-l acceseaza habar n-au de asta).
Deci serverul trebuie sa aiba apache/nginx, php si mysql. Nu merge in mod magic (taca-paca) ai instalat php si mysql iar websiteul afla singur de ele. Daca nu scrii cod php si nu-l publici pe website, websiteul nu afla ca ele exista pe server. Adica browserul alora care-ti acceseaza websiteul trebuie sa citeasca de pe website cod care trimite la serverul (procesul) php. Browserul nu intelege php, el citeste doar rezultatul oferit de procesul php. Codul php este interpretat pe server, iar rezultatul interpretarii este trimis la browser.
Deci websiteul trebuie sa redea rezultatul interpretorului de php. Posibilitatea pentru asta trebuie inserata in html.
Pe scurt: codul html din procesul apache/nginx trimite la procesul php, iar procesul php trimite mai departe la procesul mysql. Browserul alora nu vede decat ce-i trimite apache/nginx.
Un proces care ruleaza pe fundal se numeste demon. Deci poti sa-i zici proces sau demon, tot aia e.
In.php sunt puse datele bazei mysql, este site-ul asta care ofera baza de date mysql gratis si am pus in.php datele bazei mysql care sunt apar aici pe site-ul asta si nu, nu merge, nu da nicio eroare
https://www.freesqldatabase.com/freemysqldatabase/
Si? De unde stie apache/nginx ca ai instalat php? Trebuie sa scrii cod html care trimite la procesul php.
Dar ce cod trebuie?
Eu ti-am explicat legatura intre apache/nginx, php si mysql, la nivel de administrator de sistem (ca la asta ma pricep). Dar eu n-am scris niciodata cod html care cheama php, asa ca la asta nu ma pricep. Adica stiu ca trebuie sa-l scrii, dar nu ma pricep cum sa-l scrii. Cauta pe Google.
De exemplu e o diferenta intre "Stiu ca trebuie sa ti se faca o injectie" si "Stiu sa fac injectii".
Pentru php adresa e 127.0.0.1 iar portul este 8000.
Pentru mysql adresa e 127.0.0.1 iar portul este 3306.
Site-ul este public il poate accesa lumea
Nu poți intra în baza de date dintr-un browser extern, ca să accesezi baza de date ai nevoie de un server care "ascultă" metode de GET, POST.
Pe linux trebuie să instalezi un serviciu de baze de date( mongo de exemplu), și apoi trebuie să pornești un server (de exemplu express). Pe acel server pornit, ai metode de get post. Când tu faci un request de pe un browser extern, serverul îți răspunde.
Dacă vrei de fapt altceva, fi mai coerent.
Tot vei avea nevoie de un server, nu poți conecta nimic dacă nu ai un server. Poate să fie unul făcut de tine, cum am mai spus express, sau instalezi un xamp.
Orice metodă alegi tot ai nevoie să scrii cod pentru operațiuni CRUD direct în server.
Eu așa mă conectez la mongo din server:
let db;
client
. connect()
. then(() => {
db = client.db("nume_baza-de_date");
console.log("Connected to MongoDB!");
})
. catch((err) => {
console.error("Failed to connect to MongoDB", err);
});
După ce sunt conectat îți dau un exemplu de rută pe care faci request:
app.get("/getUserInfo", async (req, res) => {
try {
const token = req.headers.authorization? split(" ")[1]; // Get token from the Authorization header
if (! token) {
return res.status(403).json({ message: "No token provided" });
}
const decoded = jwt.verify(token, process.env. JWT_SECRET);
const userId = new ObjectId(decoded.userId);
const user = await db.collection("users").findOne({ _id: userId });
if (! user) {
return res.status(404).json({ message: "User not found" });
}
res.status(200).json({ user });
} catch (err) {
console.error("Error fetching user info:", err);
res.status(500).json({ message: "Server error" });
}
});
Faci request pe localhost3000/getUserInfo, și serverul se bagă în baza de date și îți scoate informațiile utilizatorilor, și ți le întoarce ca response. Ca exemplu.
Eu folosesc MariaDB (fork free and open source al lui mysql). Se intaleaza folosind 'sudo apt install mariadb-client mariadb-server', daca folosesti o distributie care foloseste apt, cum sunt cele bazate pe Debian/Ubuntu.
Cum pot sa folosesc o baza de date mysql pe Linux?
Iti recomand tuturialul mysql de pe w3schools. Sau daca vrei ceva scurt si concis, cauta mysql cheat sheet pe internet.
Salut, e chiar simplu. Un exemplu pentru ubuntu ar fi "apt install mysql sau apt install mariadb"
Apoi apt install phpmyadmin pentru phpmyadmin. Also trebuie sa te asiguri ca ai apache sau nginx instalat ca sa ti se poata afisa pagina.
Https://dev.mysql.com/doc/refman/8.4/en/using-encrypted-connections.html