MySQL විකල්ප පැහැදිලි කිරීම: my.cnf සහ කමාන්ඩ්-ලයින් සැකසුම් සකස් කිරීමේ ක්‍රම

目次

1. MySQL විකල්ප මොනවාද?

MySQL යනු වෙබ් අඩවි සහ යෙදුම් බොහෝමයක් භාවිතා කරන බලවත් දත්ත සමුදාය කළමනාකරණ පද්ධතියකි. එහි බොහෝ විශේෂාංග අතර, “විකල්ප සැකසුම්” යනු කාර්ය සාධනය උපචාරණය සහ ආරක්ෂාව ශක්තිමත් කිරීම සඳහා වැදගත් අංගයකි. මෙම ලිපියේදී, අපි MySQL විකල්ප පියවරෙන් පියවර පැහැදිලි කරන්නෙමු—මූලික සිට උසස් භාවිතයන් දක්වා.

MySQL විකල්ප මොනවාද?

MySQL විකල්ප යනු MySQL සේවාදායකයා සහ සේවාවන්ගේ හැසිරීම පාලනය කිරීම සඳහා භාවිතා කරන සැකසුම් අයිතම වේ. උදාහරණයක් ලෙස, ඔබ සම්බන්ධ වන ප්‍රධාන ගණය හෝ ඔබ භාවිතා කරන පරිශීලක නාමය විශිෂ්ට කිරීම සඳහා විකල්ප ඇත, ඒ වගේම දත්ත සමුදාය කාර්ය සාධනය වැඩිදියුණු කිරීම සඳහා සංරක්ෂණ ප්‍රමාණය වැනි සැකසුම් ද ඇත. මෙම විකල්ප නිවැරදිව සැකසීමෙන්, ඔබට පහත පරිදි ප්‍රතිලාභ ලබා ගත හැක:

  • වැඩිදියුණු කළ කාර්ය සාධනය : සේවාදායක සම්පත් වඩාත් කාර්යක්ෂමව භාවිතා කරන්න.
  • ශක්තිමත් ආරක්ෂාව : අනවසර ප්‍රවේශය වැළැක්වීම.
  • අඩුපාඩු විසඳීම : දෝෂවල හේතුව වේගයෙන් හඳුනා ගැනීම.

MySQL විකල්ප සැකසීමේ ක්‍රම

MySQL විකල්ප ප්‍රධාන වශයෙන් පහත ක්‍රමවලින් සැකසේ:

  1. විධාන පථයේදී ඒවා විශිෂ්ට කිරීම මෙම ක්‍රමයෙන් විකල්ප විධාන පථයේදී සෘජුව විශිෂ්ට කරයි. උදාහරණයක් ලෙස, ඔබට පහත විධානය භාවිතා කරමින් නිශ්චිත ප්‍රධාන ගණයකට සම්බන්ධ විය හැක:
    mysql --host=127.0.0.1 --user=root --password=yourpassword
    
  1. විකල්ප ගොනුවක (my.cnf) ඒවා විශිෂ්ට කිරීම මෙම ක්‍රමයෙන් විකල්ප ගොනුවක සුරකිනු ලැබේ සහ MySQL එය ආරම්භකයේදී කියවයි. මෙය සෑම විටම බහු විධාන-පථ විකල්ප ටයිප් කිරීමේ අවශ්‍යතාවය අඩු කරයි.

ලිපියේ ව්‍යුහය

මෙම ලිපියේදී, අපි MySQL විකල්ප පහත ගලනය භාවිතා කරමින් විස්තර කරන්නෙමු:

  • මූලික විකල්ප සැකසීමේ ක්‍රම
  • ඔබ සැබෑවට භාවිතා කරන ප්‍රායෝගික විකල්ප
  • අඩුපාඩු විසඳීම සහ FAQ

අවසානයේදී, ඔබට MySQL විකල්ප සමඟ වැඩ කිරීම සඳහා මූලික දැනුම සහ ප්‍රායෝගික කුසලතා දෙකම ලැබෙනු ඇත.

2. MySQL විකල්ප මූලික සහ ඒවා සැකසීමේ ක්‍රම

MySQL විකල්ප පද්ධති හැසිරීම සහ කාර්ය සාධනය උපචාරණය කිරීම සඳහා අත්‍යවශ්‍ය වේ. මෙම කොටසේදී, අපි සැබෑ ලෝක තත්ත්වයන්හිදී භාවිතා වන මූලික සැකසුම් ක්‍රම සහ ප්‍රායෝගික උදාහරණ පැහැදිලි කරන්නෙමු.

MySQL විකල්පවල භූමිකාවන් සහ ලක්ෂණ

MySQL විකල්ප යනු සේවාදායකයා සහ සේවාවන් ක්‍රියාත්මක වන ආකාරය අනුවර්තනය කිරීම සඳහා භාවිතා වේ. මෙය ඔබට පහත ඉලක්ක සාක්ෂාත් කර ගැනීමට උපකාරී වේ:

  • සම්බන්ධතා කළමනාකරණය : පරිශීලක නාමය, මුරපදය සහ ප්‍රධාන ගණය වැනි සම්බන්ධතා විස්තර විශිෂ්ට කිරීම.
  • කාර්ය සාධනය ටියුනිං : ප්‍රශ්න සංරක්ෂණ ප්‍රමාණය සහ බෆර් පූල් ප්‍රමාණය වැනි සැකසුම් උපචාරණය කිරීම.
  • ආරක්ෂාව වැඩිදියුණු කිරීම : SSL සැකසුම් කිරීම සහ දූරස්ථ සම්බන්ධතා සීමා කිරීම.

විකල්ප ඔබේ අවශ්‍යතා අනුව නම්‍යශීලීව වෙනස් කළ හැකි බැවින්, ඔබේ පරිසරය සහ මෙහෙයුම් අවශ්‍යතා අනුව උපචාරණ සැකසුම් තෝරා ගැනීම වැදගත් වේ.

සැකසුම් ක්‍රම පැහැදිලි කිරීම

MySQL විකල්ප ප්‍රධාන වශයෙන් දෙකකින් සැකසිය හැක:

1. විධාන පථයේදී විකල්ප සැකසීම

විධාන පථයේදී, ඔබට MySQL සේවාව සමඟ තාවකාලික විකල්ප සැකසුම් සහිතව ආරම්භ කළ හැක. මෙහි සුලබ උදාහරණයක් තිබේ:

mysql --host=127.0.0.1 --user=root --password=yourpassword

මෙම විධානයේ:

  • --host : ඉලක්ක ප්‍රධාන ගණය විශිෂ්ට කරයි
  • --user : පරිශීලක නාමය විශිෂ්ට කරයි
  • --password : මුරපදය විශිෂ්ට කරයි

** සටහන**: විධාන පථයේදී මුරපදය සෘජුව ඇතුළත් කිරීම ආරක්ෂක අවදානම වැඩි කරයි. ඒ වෙනුවට අන්තර්ක්‍රියාකාරීව මුරපදය සඳහන් කිරීමේ ඉල්ලීමක් කිරීම නිර්දේශ කෙරේ.

mysql --host=127.0.0.1 --user=root -p

මෙම ආකෘතියෙන්, ඔබට මුරපදය ඇතුළත් කිරීමට ඉල්ලීමක් ලැබෙනු ඇත.

2. විකල්ප ගොනුවක් (my.cnf) භාවිතා කිරීම

විකල්ප ගොනුවක සුරකිරීම සෑම විටම එකම සැකසුම් ටයිප් කිරීමේ ගැටලුව අඩු කරයි.

my.cnf ගොනුව කොහේ සොයා ගන්නද

  • Linux/Unix: /etc/my.cnf හෝ ~/.my.cnf
  • Windows: %PROGRAMDATA%\MySQL\MySQL Server x.x\my.ini

උදාහරණ සැකසුම් ව්‍යුහය

[client]
host=127.0.0.1
user=root
password=yourpassword
[mysqld]
port=3306 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock innodb_buffer_pool_size=128M query_cache_size=16M

මෙම උදාහරණයේ:

  • [client] කොටස සේවාව සැකසුම් නිර්වචනය කරයි.
  • [mysqld] කොටස සේවාදායක පැත්තේ සැකසුම් නිර්වචනය කරයි.

වින්‍යාස ගොනුව සංස්කරණය කිරීමෙන් පසු, වෙනස්කම් යෙදීමට MySQL සේවාව නැවත ආරම්භ කරන්න.

sudo systemctl restart mysql

ප්‍රායෝගික නියැදි කේත සහ විස්තර

උදාහරණ 1: දුරස්ථ හෝස්ට් එකක් නිරූපණය කිරීම

mysql --host=192.168.1.100 --port=3306 --user=testuser --password=testpass

මෙය විශේෂිත හෝස්ට් සහ පෝට් එකකට සම්බන්ධ වීමේ උදාහරණයකි. බහු සේවාදායක පරිසරයන් අතර වැඩ කිරීමේදී මෙය ප්‍රයෝජනවත් වේ.

උදාහරණ 2: මතක සැකසුම් වෙනස් කිරීම

[mysqld]
innodb_buffer_pool_size=256M

InnoDB බෆර් පූල් ප්‍රමාණය 256MB ලෙස සකස් කිරීම, විශාල පරිමාණ විමසුම් සැකසීම සඳහා උපකාරී වේ.

යෙදූ පසු සැකසුම් තහවුරු කිරීමේ ක්‍රම

ඔබගේ සැකසුම් නිවැරදිව යෙදූ බව තහවුරු කිරීමට, පහත කමාන්ඩ් භාවිතා කරන්න.

ග්‍රාහක පෙරනිමි සැකසුම් පරීක්ෂා කිරීම

mysql --print-defaults

සේවාදායක විචල්‍ය පරීක්ෂා කිරීම

mysqladmin variables

මෙය වත්මන් වින්‍යාස අගයන් පෙන්වයි.

3. ප්‍රවර්ග අනුව සාමාන්‍යයෙන් භාවිතා වන MySQL විකල්ප

MySQL බොහෝ විකල්ප ලබා දේ. මෙහි, අපි ප්‍රවර්ග අනුව සාමාන්‍යයෙන් භාවිතා වන විකල්ප සංවිධානය කර විස්තර කරමු. මෙම සැකසුම් භාවිතා කිරීමෙන්, ඔබට සම්බන්ධතා කළමනාකරණය, කාර්ය සාධන අනුකූල කිරීම, සහ ආරක්ෂාව ශක්තිමත් කිරීමේ හැකියාව ලැබේ.

1. සම්බන්ධතා-සම්බන්ධිත විකල්ප

MySQL වෙත සම්බන්ධ වන විට නිරූපිත විකල්ප, සාමාන්‍යයෙන් භාවිතා වන මූලික සැකසුම් අතර වේ.

OptionDescriptionExample
--host (-h)Specifies the host name or IP address to connect to.mysql -h 127.0.0.1
--port (-P)Specifies the port number used for the connection.mysql -P 3306
--user (-u)Specifies the username used for the connection.mysql -u root
--password (-p)Specifies the password (be careful about security).mysql -p yourpassword
--database (-D)Connects while specifying the initial database.mysql -D testdb
--socketSpecifies the UNIX domain socket file.mysql --socket=/tmp/mysql.sock

ප්‍රධාන කරුණු:

  • උත්පාදන පරිසරයන්හි, IP ලිපින හෝ හෝස්ට් නාම නිරූපණය කිරීම, බහු සේවාදායක පරිසරයන් අතර පරීක්ෂණ සහ දත්ත මාරු කිරීම පහසු කරයි.
  • ආරක්ෂාව සඳහා, මුරපදය සෘජුවම කමාන්ඩ් තුළ ලිවීම වඩාත් අනිවාර්ය නොවේ; ඒ වෙනුවට අන්තර්ක්‍රියාත්මක ඇතුළත් කිරීම භාවිතා කරන්න.

2. කාර්ය සාධන අනුකූල කිරීමේ විකල්ප

මෙම විකල්ප MySQL කාර්ය සාධනය අනුකූල කිරීමට උපකාරී වේ. උච්ච-භාර පද්ධතිවල, නිසි අනුකූල කිරීම විශේෂයෙන් වැදගත් වේ.

OptionDescriptionExample
innodb_buffer_pool_sizeSpecifies the memory size used for database caching.innodb_buffer_pool_size=256M
query_cache_sizeSets the query cache size. Removed in MySQL 8.0.query_cache_size=16M (MySQL 5.7 and earlier only)
max_connectionsSpecifies the maximum number of concurrent client connections.max_connections=200
thread_cache_sizeSpecifies the size of the thread cache.thread_cache_size=16
sort_buffer_sizeSpecifies the buffer size used during sorting operations.sort_buffer_size=1M

ප්‍රධාන කරුණු:

  • පෙරනිමි සැකසුම් සම්පත් පූර්ණයෙන් භාවිතා නොකරනු ඇත, එබැවින් භාර පරීක්ෂණ කර, අගයන් අනුව අනුකූල කරන්න.
  • innodb_buffer_pool_size යනු InnoDB වගු කාර්ය සාධනය වැඩිදියුණු කිරීම සඳහා අතිශය වැදගත් විකල්පයකි.

3. ආරක්ෂා-සම්බන්ධිත විකල්ප

මෙම විකල්ප දත්ත ගබඩා ආරක්ෂාව ශක්තිමත් කිරීම සඳහා භාවිතා වේ. ආරක්ෂාව වැඩිදියුණු කිරීමට ඒවා සමාලෝචනය කරන්න.

OptionDescriptionExample
skip-networkingDisables network connections (only local connections are allowed).skip-networking
bind-addressSpecifies the IP address allowed to connect.bind-address=127.0.0.1
ssl-caSpecifies the CA file for SSL certificates.ssl-ca=/etc/mysql/ca.pem
require_secure_transportAllows only encrypted connections.require_secure_transport=ON
default_authentication_pluginSpecifies the authentication plugin.default_authentication_plugin=caching_sha2_password

ප්‍රධාන කරුණු:

  • අන්තර්ජාල-අධාරිත ප්‍රවේශය අවශ්‍ය නොවේ නම්, skip-networking සක්‍රිය කර අනුමත නොකළ බාහිර ප්‍රවේශය වැළැක්වන්න.
  • SSL සම්බන්ධතා අවශ්‍ය කිරීම, ගමන් මගින් දත්ත සංකේතනය ශක්තිමත් කරයි.

4. අනෙකුත් ප්‍රයෝජනවත් විකල්ප

පහත දැක්වෙන්නේ තවත් ප්‍රයෝජනවත් විකල්ප කිහිපයකි.

OptionDescriptionExample
log-errorSpecifies the error log file.log-error=/var/log/mysql/error.log
slow_query_logEnables a log that records slow queries.slow_query_log=1
long_query_timeSets the threshold (in seconds) for what counts as a slow query.long_query_time=2
general_logLogs all queries (recommended for development).general_log=1
expire_logs_daysSpecifies how many days to keep binary logs.expire_logs_days=7

ප්‍රධාන කරුණු:

  • උත්පාදන හෝ දෝෂ නිරාකරණයේ, general_log සක්‍රිය කර විමසුම් ඉතිහාසය සමාලෝචනය කළ හැක, නමුත් නිෂ්පාදන පරිසරයේ කාර්ය සාධන බලපෑම ගැන සැලකිල්ලෙන් සිටින්න.
  • ලොග් කළමනාකරණය, දෝෂ නිරාකරණය සහ පරීක්ෂණ පථ සඳහා අතිශය ප්‍රයෝජනවත් වේ.

4. විකල්ප ප්‍රමුඛත්වය සහ වැදගත් සටහන්

MySQL විකල්ප බහු විධි වලින් වින්‍යාස කළ හැකි බැවින්, ඉහළම ප්‍රමුඛත්වය ලබා ගන්නා සැකසුම් තේරුම් ගැනීම වැදගත් වේ. මෙම කොටසේ, විකල්ප යෙදෙන ක්‍රම, ගැටළු ඇති වූ විට MySQL කෙසේ හැසිරේද, සහ ගැටළු වැළැක්වීමට ප්‍රධාන අවධානයන් පැහැදිලි කරමු.

1. විකල්ප සැකසුම් යෙදෙන ක්‍රමය

MySQL ආරම්භ වන විට, වින්‍යාස ගොනු බහු ස්ථානවලින් කියවයි. එකම විකල්ප බහු ස්ථානවලින් නිරූපිත නම්, කුමන සැකසුම ඉහළ ප්‍රමුඛත්වය ගනීදැයි ඔබට දැනගත යුතුය.

වින්‍යාස ප්‍රමුඛත්වය (ප්‍රමුඛතා ක්‍රමය)

  1. කමාන්ඩ්-ලයින් විකල්ප
  • MySQL ආරම්භ කරන විට සෘජුවම නිරූපිත විකල්ප, ඉහළම ප්‍රමුඛත්වය ගනී.
  • Example: bash mysql --host=127.0.0.1 --user=root --port=3306
  1. පරිශීලක-විශේෂිත වින්‍යාස ගොනුව (~/.my.cnf)
  • තනි පරිශීලක සැකසුම් සඳහා ගොනුවකි.
  • දේශීය පරිසරයන් සහ පුද්ගලික සැකසුම් සඳහා ප්‍රයෝජනවත්.
  1. පද්ධති-පරාස වින්‍යාස ගොනුව (/etc/my.cnf හෝ /etc/mysql/my.cnf)
  • සම්පූර්ණ පද්ධතියට යෙදෙන පෙරනිමි සැකසුම් කළමනාකරණය කරයි.
  • සේවාදායක මෙහෙයුම් අතර ගෝලීය සැකසුම් කළමනාකරණයට භාවිතා වේ.
  1. පෙරනිමි සැකසුම්
  • පැහැදිලිව වින්‍යාස නොකළහොත්, MySQL හි අන්තර්ගත පෙරනිමි අගයන් භාවිතා වේ.

උදාහරණය:
/etc/my.cnf හි පෝට් 3307 ලෙස සකස් කර ඇත්නම් නමුත් command line හි 3306 දක්වා ඇත්නම්, command-line වටිනාකම (3306) ප්‍රමුඛත්වය ලබයි。

2. සැකසුම් ගැටලු වලදී හැසිරීම සහ සැලකිලිමත් වීම්

එකම විකල්පය බහු ස්ථානවල සකස් කර ඇත්නම්, MySQL ප්‍රමුඛත්වය අනුව වටිනාකම් overwrite කරයි. නමුත්, සැකසුම් ගැටලු අනපේක්ෂිත හැසිරීම් ඇති කළ හැකි බැවින්, පහත දේවල් මතක තබා ගන්න.

සටහන 1: Command-Line ප්‍රමුඛත්වය තේරුම් ගන්න

Command line සැකසුම් ගොනු override කරන බැවින්, එය තාවකාලික වෙනස්කම් සඳහා පහසු වුවත්, දිගුකාලීන මෙහෙයුම්වලදී කළමනාකරණය අපහසු විය හැක. මෙහෙයුම් නීති ස්ථාපිත කරන්න.

සටහන 2: සැකසුම් ගොනු සැලකිල්ලෙන් කළමනාකරණය කරන්න

  • සැකසුම් ගොනු මධ්‍යගතව කළමනාකරණය කරන්න සහ බහු ගොනු අනුව විසිරීම වළක්වන්න.
  • සැකසුම් වෙනස් කිරීමේදී, බැකප් ගන්න සහ පද්ධතිය පුනර්ස්ථාපනය කළ හැකි තත්ත්වයක තබා ගන්න.

සටහන 3: සැකසුම් දෝෂ පරීක්ෂා කරන්න

සැකසුම් ගොනුවක දෝෂ තිබේ නම්, MySQL ආරම්භ කිරීමට අසමත් විය හැක. පහත command එකකින් පූර්ව පරීක්ෂාවක් කරන්න:

mysqld --verbose --help | grep -A 1 "Default options"

මෙම command එක සැකසුම් නිවැරදිව කියවනු ලැබේදැයි තහවුරු කිරීමට උපකාරී වේ.

3. සැකසුම් යෙදීමේදී ගැටලු විසඳීම

සැකසුම් වෙනස්කම් යෙදූ පසු ගැටලු ඇති වුවහොත් ගන්නා පියවර මෙසේය.

1. සැකසුම් යෙදූ බව තහවුරු කරන්න

විකල්ප යෙදෙන ආකාරය නිවැරදිදැයි පරීක්ෂා කරන්න.

mysqladmin variables

අපේක්ෂිත වටිනාකම් පිළිබිඹු වන බව output පරීක්ෂා කරන්න.

2. දෝෂ log පරීක්ෂා කරන්න

සැකසුම් දෝෂයක් ඇති වුවහොත්, දෝෂ log පරීක්ෂා කරන්න.

cat /var/log/mysql/error.log

මෙම log එක ආරම්භක දෝෂ සහ සැකසුම් දෝෂ හේතු ලියා තබයි.

3. මුල් තත්ත්වයට පුනර්ස්ථාපනය කරන්න

සැකසුම් දෝෂයක් නිසා MySQL ආරම්භ නොවුනහොත්, මෙම පියවර භාවිතා කර මූලික තත්ත්වයට පුනර්ස්ථාපනය කරන්න:

  1. බැකප් එකකින් සැකසුම් ගොනුව පුනර්ස්ථාපනය කරන්න.
  2. සේවාදායකය නැවත ආරම්භ කරන්න.
    sudo systemctl restart mysql
    

4. සැකසුම් සැකසුම් යෙදීමේ හොඳම පිළිවෙත්

1. පළමුව විභාග පරිසරයක තහවුරු කරන්න

සැකසුම් වෙනස් කිරීමට පෙර, සැමවිටම විභාග පරිසරයක හැසිරීම තහවුරු කරන්න. විශේෂයෙන්ම නිෂ්පාදනයේදී, පෙර තහවුරුකිරීමකින් තොරව වෙනස්කම් යෙදීම වළක්වන්න.

2. සම්පූර්ණයෙන්ම බැකප් ගන්න

සැකසුම් ගොනු සංස්කරණයට පෙර, සැමවිටම බැකප් එකක් ගන්න.

cp /etc/my.cnf /etc/my.cnf.backup

3. සැකසුම් කළමනාකරණ මෙවලම් භාවිතා කරන්න

බහු සැකසුම් ගොනු තිබේ නම්, version control මෙවලමක් (උදා: Git) භාවිතා කර ඉතිහාසය ලුහුබඳින්නෙමින් audit කිරීම සහ වෙනස්කම් trace කිරීම පහසු වේ.

5. විකල්ප සැකසුම් සඳහා හොඳම පිළිවෙත්

MySQL විකල්ප සැකසුම් optimize කිරීමෙන්, කාර්ය සාධනය සහ ආරක්ෂාව සැලකිය යුතු ලෙස වැඩි දියුණු කළ හැක. මෙම කොටසේදී, අපි පරිසර-විශේෂිත උදාහරණ සහ නිශ්චිත මෙහෙයුම් ක්‍රියාවිරිති පැහැදිලි කරමු, සහ ප්‍රායෝගික හොඳම පිළිවෙත් හඳුන්වා දෙමු.

1. පරිසර-විශේෂිත සැකසුම් උදාහරණ

MySQL සැකසුම් ඔබේ පරිසරයේ අවශ්‍යතා අනුව tailor කළ යුතුය. මෙහිදී, විකාශන පරිසර සහ නිෂ්පාදන පරිසර සඳහා නිර්දේශිත සැකසුම් හඳුන්වා දෙමු.

විකාශන පරිසර සඳහා නිර්දේශිත සැකසුම්

විකාශන පරිසරවලදී, පරීක්ෂණ සහ debugging කාර්යක්ෂමව පවතින ලෙස flexible සැකසුම් අවශ්‍යය.

OptionExample SettingDescription
general_loggeneral_log=1Logs all queries. Useful for debugging.
slow_query_logslow_query_log=1Records slow queries to identify performance issues.
long_query_timelong_query_time=1Sets the slow-query threshold to 1 second to capture shorter queries too.
max_connectionsmax_connections=50Limits maximum connections to reduce resource consumption.
innodb_buffer_pool_sizeinnodb_buffer_pool_size=64MKeeps memory usage smaller for lightweight environments.

මූලික කරුණු: විකාශන පරිසරවලදී, දත්ත loss අවදානම අඩු කිරීමට නිතිපතා බැකප් ගන්න. තවද, logs disk space භාවිතා කළ හැකි බැවින්, නිතිපතා cleanup කරන්න.

නිෂ්පාදන පරිසර සඳහා නිර්දේශිත සැකසුම්

නිෂ්පාදන පරිසරවලදී, ස්ථායිතාව සහ කාර්ය සාධනය ඉහළින්ම ප්‍රමුඛත්වය ලබා දෙන්න.

OptionExample SettingDescription
innodb_buffer_pool_sizeinnodb_buffer_pool_size=1GAllocates a larger buffer pool for large-scale data processing.
max_connectionsmax_connections=200Increases connections to handle higher traffic.
thread_cache_sizethread_cache_size=32Improves connection efficiency by caching threads.
query_cache_sizequery_cache_size=0 (recommended OFF)Not recommended in MySQL 8.0. Optimize the InnoDB buffer instead.
log_binlog_bin=mysql-binEnables binary logging to simplify recovery after failures.
expire_logs_daysexpire_logs_days=7Limits disk usage by keeping binary logs for fewer days.

මූලික කරුණු: නිෂ්පාදනයේදී, strict ආරක්ෂා සැකසුම් enforce කරන්න සහ කාර්ය සාධනය නිතිපතා monitor කරන්න. Binary logs enable කිරීම incidents සිදු වූ විට වේගයෙන් recover කිරීමට උපකාරී වේ.

2. සැකසුම් වෙනස් කිරීමේදී ආරක්ෂිත ක්‍රියාවිරිති

1. වෙනස්කම්ට පෙර සූදානම

  1. බැකප් සාදන්න සැකසුම් ගොනුව සහ database යන දෙකෙහිම full බැකප් සාදන්න.
    mysqldump -u root -p --all-databases > backup.sql
    cp /etc/my.cnf /etc/my.cnf.bak
    
  1. පරීක්ෂණ පරිසරයක වලංගු කිරීම නව සැකසුම් නිෂ්පාදනයට යෙදීමට පෙර, පරීක්ෂණ පරිසරයක හැසිරීම තහවුරු කරන්න.

2. සැකසුම් යෙදීමේ පියවර

  1. සැකසුම් ගොනුව සංස්කරණය කරන්න.
    sudo nano /etc/my.cnf
    
  1. වෙනස්කම් යෙදීම සඳහා සේවාදායකය නැවත ආරම්භ කරන්න.
    sudo systemctl restart mysql
    
  1. සැකසුම් යෙදා ඇති බව තහවුරු කරන්න.
    mysqladmin variables
    

3. ගැටලු වැළැක්වීම සඳහා හොඳම පිළිවෙත්

  1. ලොග් කළමනාකරණය සවිස්තරව ගැටලුවල මුල් ලක්ෂණ හඳුනා ගැනීම සඳහා දෝෂ ලොග් සහ මන්දගාමී ප්‍රශ්න ලොග් නිතිපතා පරීක්ෂා කරන්න.
  2. ප්‍රවේශ පාලනය ශක්තිමත් කරන්න
  • නිශ්චිත IP ලිපිනවලින් පමණක් සම්බන්ධතා ඉඩදීම.
  • අනවශ්‍ය දුරස්ථ ප්‍රවේශය අවහිර කරන්න.
  1. නිරීක්ෂණ මෙවලම් භාවිතා කරන්න Percona Monitoring and Management (PMM) වැනි මෙවලම් භාවිතා කරමින් කාර්ය සාධනය සහ බර real time හි නිරීක්ෂණය කරන්න.
  2. නිතිපතා නඩත්තුව සිදු කරන්න
  • අනවශ්‍ය දත්ත සමුදායන් සහ පරිශීලකයින් ඉවත් කරන්න.
  • පැරණි ලොග් සහ කැෂ් හිස් කරන්න.
  • සුඛලිඛිත optimize කරන්න.

6. ගැටලු විසඳීම: දෝෂ විසඳුම මාර්ගෝපදේශය

MySQL විකල්ප සැකසුම් සමඟ, වැරදි සැකසුම් හෝ පරිසර-විශේෂිත ගැටලු නිසා දෝෂ සිදු විය හැක. මෙම කොටසේදී, අපි සාමාන්‍ය MySQL දෝෂ සහ ඒවා නිවැරදි කරන්නේ කෙසේදැයි පැහැදිලි කරමු. ගැටලු ඇති වූ විට භාවිතා කළ හැකි ප්‍රායෝගික ගැටලු විසඳීමේ පියවර අපි සපයමු.

1. සම්බන්ධතා දෝෂ ගැටලු විසඳීම

දෝෂ 1: පරිශීලකයා ‘root’@’localhost’ සඳහා ප්‍රවේශය අනුමත නොවේ

උදාහරණ දෝෂ පණිවිඩය

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

කාරණය

  • වැරදි පරිශීලක නාමය හෝ මුරපදය.
  • බලපත්‍ර සැකසුම් වැරදි ය.

විසඳුම

  1. මුරපදය තහවුරු කර නැවත සකසන්න
    mysql -u root -p
    

මුරපදය නොදන්නා නම්, පහත පියවර භාවිතා කර නැවත සකසන්න.

  1. මුරපදය නැවත සකසන ක්‍රියාවලිය
  2. ආරක්ෂිත ආකාරයෙන් MySQL ආරම්භ කරන්න. bash sudo systemctl stop mysql sudo mysqld_safe --skip-grant-tables &
  3. නව මුරපදයක් සකසන්න. sql UPDATE mysql.user SET authentication_string=PASSWORD('newpassword') WHERE User='root'; FLUSH PRIVILEGES;
  4. සේවාදායකය නැවත ආරම්භ කරන්න. bash sudo systemctl restart mysql

දෝෂ 2: ‘localhost’ (10061) හි MySQL සේවාදායකයට සම්බන්ධ විය නොහැක

කාරණය

  • MySQL සේවාව ක්‍රියාත්මක නොවේ.
  • පෝර්ට් අංකය හෝ සොකට් සැකසුම් වැරදි ය.

විසඳුම

  1. සේවා තත්ත්වය පරීක්ෂා කරන්න
    sudo systemctl status mysql
    
  1. සේවාව නැවත ආරම්භ කරන්න
    sudo systemctl restart mysql
    
  1. සොකට් ගොනු මාර්ගය පරීක්ෂා කරන්න සැකසුම් ගොනුවේ සොකට් ගොනු ස්ථානය පරීක්ෂා කරන්න.
    grep socket /etc/my.cnf
    

2. කාර්ය සාධන ගැටලු විසඳීම

දෝෂ 3: සම්බන්ධතා ඕනෑවට වඩා

උදාහරණ දෝෂ පණිවිඩය

ERROR 1040 (08004): Too many connections

කාරණය

  • සමකාලීන සම්බන්ධතා සංඛ්‍යාව සීමාව ඉක්මවා ගියේ ය.

විසඳුම

  1. වර්තමාන සම්බන්ධතා සංඛ්‍යාව පරීක්ෂා කරන්න
    SHOW STATUS LIKE 'Threads_connected';
    
  1. උපරිම සම්බන්ධතා සංඛ්‍යාව වැඩි කරන්න සැකසුම් ගොනුවේ පහත විකල්පය වෙනස් කරන්න.
    [mysqld]
    max_connections=500
    

සැකසුම වෙනස් කළ පසු, MySQL නැවත ආරම්භ කරන්න.

sudo systemctl restart mysql

දෝෂ 4: ප්‍රශ්න ක්‍රියාකාරීකරණ කාලය ඕනෑවට වඩා මන්දගාමී ය

කාරණය

  • ප්‍රශ්න optimize කර නැත.
  • මතකය හෝ කැෂ් සැකසුම් නිසි නොවේ.

විසඳුම

  1. මන්දගාමී ප්‍රශ්න ලොග් පරීක්ෂා කරන්න මන්දගාමී ප්‍රශ්න හඳුනා ගැනීම සඳහා මන්දගාමී ප්‍රශ්න ලොග් සක්‍රිය කරන්න.
    [mysqld]
    slow_query_log=1
    long_query_time=2
    slow_query_log_file=/var/log/mysql-slow.log
    
  1. ක්‍රියාකාරීකරණ සැලැස්ම සමාලෝචනය කරන්න ප්‍රශ්න ක්‍රියාකාරීකරණ සැලැස්ම සමාලෝචනය කර සුඛලිඛිත optimize කරන්න.
    EXPLAIN SELECT * FROM orders WHERE customer_id = 1;
    

3. සැකසුම් ගොනු ගැටලු විසඳීම

දෝෂ 5: නොදන්නා විචල්‍ය ‘query_cache_size’

උදාහරණ දෝෂ පණිවිඩය

ERROR 1193 (HY000): Unknown system variable 'query_cache_size'

කාරණය

  • ඔබගේ MySQL අනුවාදය සඳහා ඉවත් කරන ලද විකල්පයක් සකසා ඇත (MySQL 8.0 හි query_cache_size ඉවත් කර ඇත).

විසඳුම

  1. ඔබගේ අනුවාදය පරීක්ෂා කරන්න
    mysql --version
    
  1. වින්‍යාස විකල්ප යාවත්කාලීන කරන්න
  • අත්හිටුවා ඇති විකල්ප ඉවත් කර, වෙනත් සැකසුම් භාවිතා කරන්න.
  • උදාහරණය: query_cache_size වෙනුවට InnoDB බෆරය විස්තාරණය කරන්න.
    innodb_buffer_pool_size=512M
    

4. දත්ත ගබඩා අස්ථි‍රතාව සඳහා ප්‍රතිසාධන ක්‍රියාමාර්ග

දෝෂය 6: ‘tablename’ වගුව බිඳී ඇතැයි සලකුණු කර ඇත, එය අලුත්වැඩියා කළ යුතුය

උදාහරණ දෝෂ පණිවුඩය

ERROR 145 (HY000): Table './dbname/tablename' is marked as crashed and should be repaired

හේතුව

  • සේවාදායකය නවතා තිබූ අතර වගුව අස්ථි‍ර වී ඇත.

විසඳුම

  1. වගුව අලුත්වැඩියා කිරීමේ විධානයක් ක්‍රියාත්මක කරන්න
    REPAIR TABLE tablename;
    
  1. MyISAM පරීක්ෂණ මෙවලමක් භාවිතා කරන්න
    myisamchk /var/lib/mysql/dbname/tablename.MYI
    
  1. InnoDB සඳහා ප්‍රතිසාධන පියවරයන් InnoDB සඳහා, පහත පියවර භාවිතා කර ප්‍රතිසාධනය කරන්න.
    sudo systemctl stop mysql
    sudo mysqld_safe --innodb_force_recovery=1 &
    

7. නිතර අසන ප්‍රශ්න (FAQ)

ආචාරික මෙහෙයුම් වල MySQL විකල්ප සැකසුම් සමඟ වැඩ කරන විට, ඔබට විවිධ ප්‍රශ්න සහ ගැටළු මුහුණ දිය හැක. මෙම කොටසේ, අපි නිතර අසන ප්‍රශ්න සහ විසඳුම් FAQ ආකාරයෙන් සාරාංශ කර ඇත.

1. වින්‍යාස ගොනු පිළිබඳ ප්‍රශ්න

Q1. මට MySQL වින්‍යාස ගොනුව (my.cnf) සොයාගත නොහැක. එය කොහේද?
A. වින්‍යාස ගොනුවේ ස්ථානය ඔබේ පරිසරය අනුව වෙනස් වේ, නමුත් පහත විධානය භාවිතා කර පරීක්ෂා කළ හැක:

mysql --help | grep my.cnf

පොදු වින්‍යාස ගොනු ස්ථාන ඇතුළත් වේ:

  • Linux: /etc/my.cnf හෝ /etc/mysql/my.cnf
  • Windows: %PROGRAMDATA%\MySQL\MySQL Server X.X\my.ini
  • macOS: /usr/local/etc/my.cnf

Q2. වින්‍යාස ගොනුව සංස්කරණය කිරීමෙන් පසු, වෙනස්කම් ක්‍රියාත්මක නොවේ. මට මොකද කළ යුතුද?
A. වින්‍යාස ගොනුව සංස්කරණය කිරීමෙන් පසු, MySQL සේවාදායකය නැවත ආරම්භ කළ යුතුය. පහත විධානය භාවිතා කරන්න:

sudo systemctl restart mysql

අදාළ සැකසුම් තහවුරු කිරීමට, ධාවනය කරන්න:

mysqladmin variables

2. ආරක්ෂාව සහ සත්‍යාපනය පිළිබඳ ප්‍රශ්න

Q3. මට මුරපද සත්‍යාපන දෝෂයක් ලැබේ. මට මොකද කළ යුතුද?
A. මුරපද සත්‍යාපන දෝෂයන් අවසර සැකසුම් හෝ මුරපද ආකෘති වෙනස්කම් නිසා සිදුවිය හැක. පහත පියවර පරීක්ෂා කරන්න:

  1. පරිශීලක අවසර පරීක්ෂා කරන්න
    SELECT user, host FROM mysql.user;
    
  1. මුරපදය නැවත සකසන්න
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
    FLUSH PRIVILEGES;
    
  1. MySQL 8.0 සහ ඊට පසු, සත්‍යාපන ප්ලග්-ඉන් caching_sha2_password වෙත වෙනස් වී ඇත. ඔබ පැරණි ග්‍රාහකයක් භාවිතා කරන්නේ නම්, අනුකූලතාව ගැටළු ඇති විය හැක. එවැනි අවස්ථාවක, පහත සැකසුම භාවිතා කර සත්‍යාපන ක්‍රමය වෙනස් කළ හැක:
    ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY 'newpassword';
    FLUSH PRIVILEGES;
    

Q4. පිටත සිට සම්බන්ධතා සීමා කිරීමට මොකද කළ යුතුද?
A. පිටත සම්බන්ධතා සීමා කිරීමට, වින්‍යාස ගොනුවේ පහත විකල්පය එක් කරන්න:

[mysqld]
bind-address=127.0.0.1

මෙය localhost හැර වෙනත් සියලු සම්බන්ධතා අවහිර කරයි. ඔබට ජාල සම්බන්ධතා සම්පූර්ණයෙන් අක්‍රිය කිරීමට අවශ්‍ය නම්, මෙය සකසන්න:

skip-networking

සැකසුම වෙනස් කිරීමෙන් පසු නැවත ආරම්භ කරන්න.

sudo systemctl restart mysql

3. කාර්ය සාධනය පිළිබඳ ප්‍රශ්න

Q5. දත්ත ගබඩා කාර්ය සාධනය වැඩිදියුණු කිරීමට කුමන සැකසුම් උපකාරීද?
A. කාර්ය සාධන වැඩිදියුණු කිරීම සඳහා ප්‍රධාන සැකසුම් ඇතුළත් වේ:

SettingRecommended ExampleDescription
innodb_buffer_pool_sizeinnodb_buffer_pool_size=1GSpeeds up query processing by increasing memory usage.
query_cache_sizequery_cache_size=0 (removed)Removed in MySQL 8.0; strengthen InnoDB instead.
thread_cache_sizethread_cache_size=16Improves connection efficiency by reusing threads.
tmp_table_sizetmp_table_size=64MIncreases the size limit for temporary tables.
max_connectionsmax_connections=200Improves load handling by increasing concurrent connections.

Q6. මට මන්දගාමී විමසුම් හඳුනාගෙන ඒවාට විසඳුම් ලබා දීමට අවශ්‍යයි. කෙසේද?
A. ගැටළු ඇති විමසුම් හඳුනා ගැනීමට මන්දගාමී විමසුම් ලොග් සක්‍රිය කරන්න.

  1. වින්‍යාස ගොනුව සංස්කරණය කරන්න.
    [mysqld]
    slow_query_log=1
    long_query_time=2
    slow_query_log_file=/var/log/mysql/slow.log
    
  1. සැකසුම යෙදීමට සේවාදායකය නැවත ආරම්භ කරන්න.
    sudo systemctl restart mysql
    
  1. මන්දගාමී විමසුම් ලොග් පරීක්ෂා කරන්න.
    cat /var/log/mysql/slow.log
    

4. අනෙකුත් සාමාන්‍ය ප්‍රශ්න

Q7. සැකසුම් පෙරනිමි තත්වයට නැවත සකස් කිරීමේ ක්‍රමයක් තිබේද?
A. සැකසුම් නැවත සකස් කිරීමට, වින්‍යාස ගොනුව පෙරනිමි තත්වයට පසුබැසීම හෝ නව වින්‍යාස ගොනුවක් සාදන්න. මෙන්න උදාහරණ ක්‍රියාවලිය:

  1. වත්මන් සැකසුම් පිටපත් ගන්න.
    cp /etc/my.cnf /etc/my.cnf.bak
    
  1. පෙරනිමි වින්‍යාස ගොනුව පසුබැසීම.
    sudo cp /usr/share/mysql/my-default.cnf /etc/my.cnf
    
  1. සේවාදායකය නැවත ආරම්භ කරන්න.
    sudo systemctl restart mysql
    

8. Summary

මෙම ලිපියේ, MySQL විකල්ප සැකසුම් පිළිබඳව මූලික සිට උසස් භාවිතය දක්වා සවිස්තරාත්මකව ආවරණය කර ඇත. වින්‍යාස ක්‍රම, විශේෂිත විකල්ප, දෝෂ නිරාකරණය සහ අනෙකුත් ප්‍රායෝගික දැනුම පියවරෙන් පියවර ගෙන ගොඩනැගිල්ලක් ලෙස ඉදිරිපත් කර ඇත. මෙහිදී, ප්‍රධාන කරුණු සාරාංශ කරමින් MySQL විකල්ප සැකසුම් වැදගත් වීමේ හේතු නැවත සලකා බලමු.

1. Key Takeaways

Basics

  • අපි MySQL විකල්පයන්ගේ දළ විශ්ලේෂණය සහ භූමිකාව ඉගෙන ගත්තා, සහ විධාන පේළිය සහ වින්‍යාස ගොනු භාවිතා කරමින් මූලික වින්‍යාස ක්‍රම.

Practical Use

  • ප්‍රචලිතව භාවිතා වන විකල්ප පිළිබඳ ප්‍රවර්ග-අධාරිත විස්තරය තුළ, සම්බන්ධතා කළමනාකරණය, කාර්ය සාධන සැකසුම්, සහ ආරක්ෂා තදබද කිරීම සඳහා උදාහරණ සැකසුම් හඳුන්වා දුන්නෙමු.
  • ගැටුම් සිදුවන විට ප්‍රමුඛත්වය සහ අවධානම් ගැන අවබෝධය ලබා ගැනීම, වින්‍යාස දෝෂ වැළැක්වීමට සහ කාර්යක්ෂම මෙහෙයුම් සඳහා උපකාරී වන බව අපි පැහැදිලි කළෙමු.

Advanced Use

  • පරිසර-විශේෂිත වින්‍යාස උදාහරණ සහ හොඳ පුරුදු පිළිබඳව, සංවර්ධන සහ නිෂ්පාදන පරිසර සඳහා සුදුසු සැකසුම් උදාහරණ සහ වෙනස්කම් යෙදීමේ ආරක්ෂිත ක්‍රියාවලීන් ලබා දුන්නෙමු.
  • දෝෂ නිරාකරණය සහ නිතර අසන ප්‍රශ්න (FAQ) තුළ, සාමාන්‍ය මෙහෙයුම් ගැටළු සහ විස්තරාත්මක විසඳුම් පැහැදිලි කළෙමු.

2. Why MySQL Option Settings Are Important

Performance Optimization

නිසි විකල්ප සැකසුම් සමඟ, ඔබට සම්පත් කාර්යක්ෂමව භාවිතා කර, විමසුම් සැකසුම් වේගය වැඩි කළ හැක. විශාල දත්ත ගබඩා සහ උච්ච-පැටිය පරිසරවල, කාර්ය සාධන අනුකූල කිරීම සම්පූර්ණ පද්ධති කාර්යක්ෂමතාවයට සෘජු බලපෑමක් කරයි.

Security Hardening

බාහිර ප්‍රවේශ සීමා කිරීම, SSL වැනි නිවැරදි සැකසුම් මගින්, අනිසි ප්‍රවේශය සහ දත්ත රහස්‍යතා උල්ලංඝනය වීම වැළැක්විය හැක. ඔබේ මෙහෙයුම් පරිසරයට අනුකූල ආරක්ෂා සැකසුම් අත්‍යවශ්‍ය වේ.

Better Incident Response

ලොග් කළමනාකරණය සහ දෝෂ පණිවුඩ විශ්ලේෂණය මගින්, ගැටළු සිදුවූ විට වේගවත් ප්‍රතිචාර ලබා ගත හැක. පෙර සැකසුම් නිවැරදිව කර තිබීම, සිදුවීම් සිදුවීමට පෙර වැළැක්වීමට උපකාරී වේ.

3. Next Action Plan

Review and Optimize Your Settings

  • ඔබේ වත්මන් MySQL සැකසුම් සමාලෝචනය කර, මෙම ලිපියේ හඳුන්වා දුන් හොඳ පුරුදු භාවිතා කරමින් අනුකූල කරන්න.

Use a Test Environment

  • නිෂ්පාදනයට යොදීමට පෙර, පරීක්ෂණ පරිසරයක නව සැකසුම් සහ වෙනස්කම් පරීක්ෂා කර, අවදානම අඩු කරන්න.

Create Documentation and Records

  • වින්‍යාස වෙනස්කම් සහ දෝෂ නිරාකරණ ක්‍රියාවලීන් ලේඛනය කර, අනාගත මෙහෙයුම් සහ කණ්ඩායමේ දැනුම් බෙදා ගැනීම සඳහා සහාය වන්න.

4. Final Notes

MySQL විකල්ප සැකසුම් දත්ත ගබඩා පරිපාලනයේ අත්‍යවශ්‍ය භූමිකාවක් ගනී. ඔබේ පද්ධතිය විශාල වීමත් සමඟ, මෙම සැකසුම් සහ ඒවායේ කළමනාකරණය කාර්ය සාධනය සහ ආරක්ෂාවට වැඩි බලපෑමක් කරයි.

මෙම ලිපිය ඔබේ මෙහෙයුම් පරිසරයට ගැළපෙන සැකසුම් සකස් කිරීමේ මාර්ගෝපදේශයක් ලෙස භාවිතා කර, ස්ථාවර පද්ධතියක් ගොඩනඟන්න. සැකසුම් නිතර සමාලෝචනය කර, නවතම හොඳ පුරුදු අනුගමනය කිරීමෙන්, ඔබට වඩා ශක්තිමත් සහ කාර්යක්ෂම දත්ත ගබඩා මෙහෙයුම් ලබා ගත හැක.