MySQL మరియు MariaDB: ఇన్స్టాలేషన్ మరియు మీ మొదటి డేటాబేస్
VDSపై డేటాబేస్ సర్వర్ను ఇన్స్టాల్ చేయడం, సురక్షిత ప్రారంభ సెటప్, డేటాబేస్ మరియు యూజర్ సృష్టించడం, కనెక్షన్ తనిఖీ, సాధారణ మొదటి ఎర్రర్లు.
23 ఆగస్టు, 2026న నవీకరించబడింది
MySQL మరియు దాని అనుకూల శాఖ అయిన MariaDB చాలా PHP సైట్లు నడిచే వాటిపైనే ఉంటాయి. వాటి కమాండ్లు మరియు క్లయింట్ ఒకటే; తేడాలు ఫైన్-ట్యూనింగ్లో మొదలవుతాయి.
ఇన్స్టాలేషన్
apt update && apt install -y mariadb-server # Debian, Ubuntu
dnf install -y mariadb-server # AlmaLinux, CentOS Stream
systemctl enable --now mariadb
మీకు ప్రత్యేకంగా Oracle యొక్క MySQL కావాలంటే, దాని అధికారిక రిపాజిటరీ నుండి mysql-server ఇన్స్టాల్ చేయండి. సర్వీస్ పేరు mysql అని ఉంటుంది.
ప్రాథమిక లొసుగులను వెంటనే మూసివేయండి:
mariadb-secure-installation
స్క్రిప్ట్ root పాస్వర్డ్ సెట్ చేయమని, అనామక యూజర్లను తొలగించమని, రిమోట్ root లాగిన్ను నిషేధించమని, టెస్ట్ డేటాబేస్ను డ్రాప్ చేయమని అడుగుతుంది. అన్నింటికీ “అవును” అని సమాధానం ఇవ్వండి.
డేటాబేస్ మరియు యూజర్
మీ అప్లికేషన్ను root గా నడపకండి — ప్రతి ప్రాజెక్ట్కు వేరే యూజర్ను సృష్టించండి:
CREATE DATABASE shop CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'shop'@'localhost' IDENTIFIED BY 'long-random-password';
GRANT ALL PRIVILEGES ON shop.* TO 'shop'@'localhost';
FLUSH PRIVILEGES;
utf8mb4 ఎన్కోడింగ్ తప్పనిసరి: MySQL లోని పాత utf8 ప్రతి అక్షరానికి మూడు బైట్లను మాత్రమే నిల్వ చేస్తుంది మరియు ఎమోజీలు, కొన్ని అక్షరాలపై విఫలమవుతుంది.
తనిఖీ చేయండి:
mariadb -u shop -p shop -e "SELECT 1;"
అనుమతుల గురించి మరింత సమాచారం కోసం, యూజర్లు మరియు గ్రాంట్లు చూడండి.
ప్రారంభ సెటప్
సెట్టింగ్లు /etc/mysql/mariadb.conf.d/50-server.cnf లేదా /etc/my.cnf.d/ లో ఉంటాయి. వెంటనే సరిచేయవలసిన కనీస విషయాలు ఇక్కడ ఉన్నాయి:
[mysqld]
bind-address = 127.0.0.1
innodb_buffer_pool_size = 1G
max_connections = 100
bind-address = 127.0.0.1 డేటాబేస్ను స్థానికంగా మాత్రమే యాక్సెస్ చేయగలిగేలా ఉంచుతుంది. మీ అప్లికేషన్ అదే మెషీన్లో ఉంటే, అది అలాగే ఉండాలి. మీకు బయటి నుండి డేటాబేస్ కావాలంటే, ఏదైనా మార్చే ముందు రిమోట్ యాక్సెస్ చదవండి.
బఫర్ పూల్ సైజు టియర్ ప్రకారం ఎంపిక చేయబడుతుంది — మెమరీ ట్యూనింగ్ చూడండి.
ఎడిట్ చేసిన తర్వాత: systemctl restart mariadb.
సాధారణ లోపాలు
| లక్షణం | కారణం | ఏమి చేయాలి |
|---|---|---|
Access denied for user | తప్పు పాస్వర్డ్ లేదా యూజర్ ఎంట్రీ వేరే హోస్ట్కు బైండ్ చేయబడింది | SELECT user, host FROM mysql.user; తనిఖీ చేయండి |
Can't connect through socket | సర్వీస్ నడుస్తోంది లేదు | systemctl status mariadb, journalctl -u mariadb తనిఖీ చేయండి |
Too many connections | అప్లికేషన్ కనెక్షన్లను మూసివేయడం లేదు | అప్లికేషన్ వైపు పూల్, తర్వాత max_connections |
| అస్పష్టమైన టెక్స్ట్ | డేటాబేస్ మరియు కనెక్షన్కు వేర్వేరు ఎన్కోడింగ్లు | అన్నింటినీ utf8mb4 కు తీసుకురండి |
| రీబూట్ తర్వాత డేటాబేస్ ప్రారంభం కావడం లేదు | సర్వీస్ బూట్లో ప్రారంభం కావడానికి సెట్ చేయబడలేదు | systemctl enable mariadb |
మెషీన్ యొక్క ఆటోమేటిక్ బ్యాకప్లు ఉండవు. మీ మొదటి పని చేసే టేబుల్ తర్వాత వెంటనే డంప్ను సెటప్ చేయండి — డేటాబేస్ బ్యాకప్లు. NVMe డిస్క్ వేగంగా ఉంటుంది, కానీ అది ఒక్కటే ఉంది.