கட்டளை வரியிலிருந்து postgresql ஐ துவக்குகிறது. அடிப்படை PostgreSQL கட்டளைகள். தரவு வகைகளை அமைத்தல்

அனைவருக்கும் வணக்கம், இன்று நான் முக்கிய PostgreSQL கட்டளைகளைப் பற்றி ஒரு சிறிய நினைவூட்டல் செய்ய விரும்புகிறேன். நீங்கள் PosgreSQL உடன் ஊடாடுதல் மற்றும் இருந்து வேலை செய்யலாம் கட்டளை வரி. நிரல் psql ஆகும். இந்தப் பட்டியல் உங்களுக்கு மிகவும் பயனுள்ளதாக இருக்கும் மற்றும் பல்வேறு ஆதாரங்களைத் தேடும் நேரத்தை மிச்சப்படுத்தும் என்று நான் நம்புகிறேன். 1986 இல் வெளியிடப்பட்ட போஸ்ட்கிரெஸ் டிபிஎம்எஸ் அடிப்படையில் இது ஒரு திறந்த மூல திட்டம் என்பதை உங்களுக்கு நினைவூட்டுகிறேன், இது உலகளாவிய பிஜிடிஜி டெவலப்பர்களின் குழுவால் உருவாக்கப்பட்டது, முக்கியமாக 5-8 பேர், ஆனால் இது இருந்தபோதிலும், இது மிகவும் தீவிரமாக வளர்ந்து வருகிறது. , புதிய செயல்பாடுகளை அறிமுகப்படுத்துதல் மற்றும் பழைய பிழைகள் மற்றும் பிழைகளை சரிசெய்தல்.

ஊடாடும் பயன்முறையில் அடிப்படை PostgreSQL கட்டளைகள்:

  • \connect db_name – db_name என்ற தரவுத்தளத்துடன் இணைக்கவும்
  • \du – பயனர்களின் பட்டியல்
  • \dp (அல்லது \z) - அட்டவணைகள், காட்சிகள், வரிசைகள், அவற்றுக்கான அணுகல் உரிமைகளின் பட்டியல்
  • \di - குறியீடுகள்
  • \ds – தொடர்கள்
  • \dt - அட்டவணைகளின் பட்டியல்
  • \dt+ - விளக்கங்களுடன் அனைத்து அட்டவணைகளின் பட்டியல்
  • \dt *s* - பெயரில் உள்ள அனைத்து அட்டவணைகளின் பட்டியல்
  • \dv - பிரதிநிதித்துவங்கள்
  • \dS - கணினி அட்டவணைகள்
  • \d+ – அட்டவணை விளக்கம்
  • \o - ஒரு கோப்பிற்கு வினவல் முடிவுகளை அனுப்பவும்
  • \l - தரவுத்தளங்களின் பட்டியல்
  • \i - ஒரு கோப்பிலிருந்து உள்வரும் தரவைப் படிக்கவும்
  • \e – கோரிக்கை இடையகத்தின் தற்போதைய உள்ளடக்கங்களை எடிட்டரில் திறக்கும் (எடிட்டர் மாறியின் சூழலில் குறிப்பிடப்படாவிட்டால், vi இயல்பாகவே பயன்படுத்தப்படும்)
  • \d “table_name” – அட்டவணையின் விளக்கம்
  • \i வெளிப்புற கோப்பிலிருந்து கட்டளையை இயக்குகிறது, எடுத்துக்காட்டாக \i /my/directory/my.sql
  • \pset – வடிவமைப்பு விருப்பங்களை உள்ளமைக்க கட்டளை
  • \echo - ஒரு செய்தியைக் காட்டுகிறது
  • \set - சூழல் மாறியின் மதிப்பை அமைக்கிறது. அளவுருக்கள் இல்லாமல், தற்போதைய மாறிகளின் பட்டியலைக் காட்டுகிறது (\unset - deletes).
  • \? - psql குறிப்பு
  • \help – SQL குறிப்பு
  • \q (அல்லது Ctrl+D) – நிரலிலிருந்து வெளியேறவும்

கட்டளை வரியிலிருந்து PostgreSQL உடன் பணிபுரிதல்:

  • -c (அல்லது –command) – ஊடாடும் பயன்முறையில் செல்லாமல் SQL கட்டளையை இயக்கவும்
  • -f file.sql - file.sql இலிருந்து கட்டளைகளை இயக்கவும்
  • -l (அல்லது –லிஸ்ட்) – கிடைக்கக்கூடிய தரவுத்தளங்களின் பட்டியலைக் காட்டுகிறது
  • -U (அல்லது –பயனர்பெயர்) – பயனர் பெயரைக் குறிப்பிடவும் (உதாரணமாக postgres)
  • -W (அல்லது -கடவுச்சொல்) - கடவுச்சொல் வரியில்
  • -d dbname - dbname தரவுத்தளத்துடன் இணைக்கவும்
  • -h – ஹோஸ்ட் பெயர் (சர்வர்)
  • -s - படிப்படியான பயன்முறை, அதாவது, நீங்கள் அனைத்து கட்டளைகளையும் உறுதிப்படுத்த வேண்டும்
  • –S – ஒற்றை வரி முறை, அதாவது மாறுதல் புதிய கோடுவினவலை இயக்கும் (அதிலிருந்து விடுபடுகிறது; SQL கட்டமைப்பின் முடிவில்)
  • -V – ஊடாடும் பயன்முறையில் நுழையாமல் PostgreSQL இன் பதிப்பு

எடுத்துக்காட்டுகள்:

psql -U postgres -d dbname -c “என்னுடைய அட்டவணையை உருவாக்கு (some_id தொடர் முதன்மை விசை, சில_உரை உரை);” - dbname தரவுத்தளத்தில் ஒரு கட்டளையை செயல்படுத்துதல்.

psql -d dbname -H -c “தேர்வு * என்” -o my.html - வினவல் முடிவை ஒரு html கோப்பில் வெளியிடவும்.

PosgreSQL பயன்பாடுகள் (நிரல்கள்):

  • Createb மற்றும் dropdb - ஒரு தரவுத்தளத்தை உருவாக்குதல் மற்றும் கைவிடுதல் (முறையே)
  • கிரியேட்யூசர் மற்றும் டிராப்யூசர் - உருவாக்கம் மற்றும் பயனர் (முறையே)
  • pg_ctl – பொதுவான கட்டுப்பாட்டுப் பணிகளைத் தீர்க்க வடிவமைக்கப்பட்ட ஒரு நிரல் (தொடங்குதல், நிறுத்துதல், அளவுருக்கள் அமைத்தல் போன்றவை)
  • போஸ்ட்மாஸ்டர் - பல பயனர் PostgreSQL சர்வர் தொகுதி (பிழைத்திருத்த நிலைகள், போர்ட்கள், தரவு கோப்பகங்களை உள்ளமைத்தல்)
  • initdb – புதிய PostgreSQL கிளஸ்டர்களை உருவாக்குகிறது
  • initlocation – இரண்டாம் நிலை தரவுத்தள சேமிப்பிற்கான கோப்பகங்களை உருவாக்குவதற்கான ஒரு நிரல்
  • vacuumdb - உடல் மற்றும் பகுப்பாய்வு தரவுத்தள ஆதரவு
  • pg_dump - தரவை காப்பகப்படுத்துதல் மற்றும் மீட்டமைத்தல்
  • pg_dumpall – காப்புமுழு PostgreSQL கிளஸ்டர்
  • pg_restore – காப்பகங்களிலிருந்து தரவுத்தள மறுசீரமைப்பு (.tar, .tar.gz)

காப்புப்பிரதிகளை உருவாக்குவதற்கான எடுத்துக்காட்டுகள்:

சுருக்கப்பட்ட வடிவத்தில் mydb தரவுத்தளத்தின் காப்புப்பிரதியை உருவாக்குதல்

Pg_dump -h localhost -p 5440 -U சில பயனர் -F c -b -v -f mydb.backup mydb

mydb தரவுத்தளத்தின் காப்புப்பிரதியை உருவாக்குதல், வழக்கமான உரைக் கோப்பின் வடிவத்தில், தரவுத்தளத்தை உருவாக்குவதற்கான கட்டளை உட்பட

Pg_dump -h லோக்கல் ஹோஸ்ட் -p 5432 -U சில பயனர் -C -F p -b -v -f mydb.backup mydb

mydb தரவுத்தளத்தின் காப்புப்பிரதியை, சுருக்கப்பட்ட வடிவத்தில், பெயரில் பணம் செலுத்தும் அட்டவணைகளை உருவாக்குதல்

Pg_dump -h localhost -p 5432 -U சில பயனர் -F c -b -v -t *பணம்* -f payment_tables.backup mydb

ஒரு குறிப்பிட்ட அட்டவணையில் இருந்து தரவை டம்ப் செய்யவும். பல அட்டவணைகள் காப்புப் பிரதி எடுக்கப்பட வேண்டும் என்றால், ஒவ்வொரு அட்டவணைக்கும் -t சுவிட்சைப் பயன்படுத்தி அட்டவணைப் பெயர்கள் பட்டியலிடப்படும்.

Pg_dump -a -t table_name -f file_name database_name

உருவாக்கம் காப்பு பிரதி gz இல் சுருக்கத்துடன்

Pg_dump -h லோக்கல் ஹோஸ்ட் -O -F p -c -U postgres mydb | gzip -c > mydb.gz

பொதுவாகப் பயன்படுத்தப்படும் விருப்பங்களின் பட்டியல்:

  • -h ஹோஸ்ட் - ஹோஸ்ட், குறிப்பிடப்படவில்லை என்றால், லோக்கல் ஹோஸ்ட் அல்லது PGHOST சூழல் மாறியில் இருந்து மதிப்பு பயன்படுத்தப்படும்.
  • -p port - port; குறிப்பிடப்படவில்லை என்றால், 5432 அல்லது PGPORT சூழல் மாறியில் இருந்து மதிப்பு பயன்படுத்தப்படும்.
  • -u - பயனர், குறிப்பிடப்படவில்லை எனில், தற்போதைய பயனர் பயன்படுத்தப்படுகிறார், மதிப்பை PGUSER சூழல் மாறியிலும் குறிப்பிடலாம்.
  • -a, -data-only - டம்ப் மட்டும் டேட்டா; முன்னிருப்பாக, தரவு மற்றும் ஸ்கீமா சேமிக்கப்படும்.
  • -b - பெரிய பொருட்களை (வலைப்பதிவுகள்) குப்பையில் உள்ளிடவும்.
  • -s, -schema-only - ஸ்கீமாவை மட்டும் டம்ப் செய்யவும்.
  • -C, -create - ஒரு தரவுத்தளத்தை உருவாக்க ஒரு கட்டளையை சேர்க்கிறது.
  • -c - பொருள்களை (அட்டவணைகள், காட்சிகள், முதலியன) நீக்க (துள்ளி) கட்டளைகளைச் சேர்க்கிறது.
  • -O - ​​ஒரு பொருளின் உரிமையாளரை அமைக்க கட்டளைகளைச் சேர்க்க வேண்டாம் (அட்டவணைகள், காட்சிகள், முதலியன).
  • -F, -format (c|t|p) - டம்ப் அவுட்புட் வடிவம், தனிப்பயன், தார் அல்லது எளிய உரை.
  • -t, -table=TABLE - டம்ப்பிற்கான ஒரு குறிப்பிட்ட அட்டவணையைக் குறிப்பிடவும்.
  • -v, -verbose - வெளியீடு விரிவான தகவல்.
  • -D, -attribute-inserts - சொத்து பெயர்களின் பட்டியலுடன் INSERT கட்டளையைப் பயன்படுத்தி டம்ப்.

pg_dumpal கட்டளையைப் பயன்படுத்தி அனைத்து தரவுத்தளங்களையும் காப்புப் பிரதி எடுக்கவும்.

Pg_dumpall > all.sql

காப்புப்பிரதிகளிலிருந்து அட்டவணைகளை மீட்டமைத்தல்:

psql - வழக்கமான முறையில் சேமிக்கப்படும் காப்புப்பிரதிகளை மீட்டமைத்தல் உரை கோப்பு(சாதாரண எழுத்து);
pg_restore - சுருக்கப்பட்ட காப்புப்பிரதிகளை மீட்டமைத்தல் (தார்);

பிழைகளைப் புறக்கணிக்கும் போது முழு காப்புப்பிரதியையும் மீட்டமைத்தல்

Psql -h localhost -U சில பயனர் -d dbname -f mydb.sql

முழு காப்புப்பிரதியையும் மீட்டெடுக்கிறது, முதல் பிழையை நிறுத்துகிறது

Psql -h லோக்கல் ஹோஸ்ட் -யு சில யூசர் -செட் ON_ERROR_STOP=on -f mydb.sql

தார் காப்பகத்திலிருந்து மீட்டமைக்க, முதலில் CREATE DATABASE mydb ஐப் பயன்படுத்தி ஒரு தரவுத்தளத்தை உருவாக்க வேண்டும்; (காப்புப்பிரதியை உருவாக்கும் போது -C விருப்பம் குறிப்பிடப்படவில்லை என்றால்) மற்றும் மீட்டமைக்கவும்

Pg_restore -dbname=mydb -jobs=4 -verbose mydb.backup

gz-சுருக்கப்பட்ட தரவுத்தள காப்புப்பிரதியை மீட்டமைக்கிறது

psql -U postgres -d mydb -f mydb

postgresql தரவுத்தளம் இப்போது உங்களுக்குப் புரியும் என்று நினைக்கிறேன். இந்த PostgreSQL கட்டளைகளின் பட்டியல் உங்களுக்கு பயனுள்ளதாக இருக்கும் என நம்புகிறேன்.

யாராவது தரவுத்தளத்தை அணுகுவதற்கு முன், நீங்கள் தரவுத்தள சேவையகத்தைத் தொடங்க வேண்டும். சேவையக நிரல் போஸ்ட்கிரெஸ் என்று அழைக்கப்படுகிறது. இந்த நிரல் வேலை செய்ய வேண்டிய தரவை எங்கு கண்டுபிடிப்பது என்பதை அறிந்திருக்க வேண்டும். இதைச் செய்ய, -D விருப்பத்தைப் பயன்படுத்தவும். எனவே சேவையகத்தைத் தொடங்க எளிதான வழி:

$ postgres -D /usr/local/pgsql/data

இந்த வழக்கில், சேவையகம் இவ்வாறு தொடங்கப்படும் செயலில் செயல்முறை(பின்னணியில் இல்லை). இது PostgreSQL பயனர் கணக்கிலிருந்து செய்யப்பட வேண்டும். -D விருப்பம் இல்லாமல், PGDATA சூழல் மாறியிலிருந்து கோப்பகத்தில் உள்ள தரவைப் பார்க்க சர்வர் முயற்சிக்கும். இந்த மாறி இல்லை என்றால், சர்வர் தொடங்காது.

சேவையகத்தை பின்னணியில் இயக்குவது பொதுவாக மிகவும் வசதியானது. இதைச் செய்ய, சாதாரண யூனிக்ஸ் ஷெல் தொடரியல் பயன்படுத்தவும்:

$ postgres -D /usr/local/pgsql/data >logfile 2>&1 &

மேலே காட்டப்பட்டுள்ளபடி, சர்வர் வெளியீடு மற்றும் பிழை வெளியீட்டை எங்காவது சேமிப்பது மிகவும் முக்கியம். இது சிக்கல்களைக் கண்டறிய உதவும். (பதிவு கோப்புகளை செயலாக்குவது பற்றிய தகவலுக்கு பிரிவு 23.3 ஐப் பார்க்கவும்.)

Postgres நிரல் கட்டளை வரி விருப்பங்களையும் ஏற்றுக்கொள்கிறது. இது postgres man பக்கம் மற்றும் அத்தியாயம் 18 இல் இன்னும் விரிவாக விவாதிக்கப்பட்டுள்ளது.

இருப்பினும், இந்த ஷெல் கட்டளைகள் விரைவாக சலிப்பை ஏற்படுத்தும். எனவே, ஒரு ரேப்பர் நிரல் pg_ctl உள்ளது, இது அதே காரியத்தைச் செய்ய உங்களை அனுமதிக்கிறது, ஆனால் மிகவும் எளிமையானது. உதாரணத்திற்கு

pg_ctl start -l logfile

பொதுவாக உங்கள் கணினியை துவக்கும்போது தரவுத்தள சேவையகத்தைத் தொடங்க வேண்டும். ஆட்டோரன் ஸ்கிரிப்டுகள் கணினியைப் பொறுத்தது. பங்களிப்பு/தொடக்க-ஸ்கிரிப்ட் கோப்பகத்தில் சில விருப்பங்களைக் காணலாம். அவற்றை நிறுவுவதற்கு சூப்பர் யூசர் உரிமைகள் தேவைப்படலாம்.

துவக்கத்தில் டீமனைத் தொடங்க வெவ்வேறு அமைப்புகள் வெவ்வேறு நிபந்தனைகளைக் கொண்டுள்ளன. பல கணினிகளில் ஒரு கோப்பு /etc/rc.local அல்லது /etc/rc.d/rc.local உள்ளது. மற்ற அமைப்புகள் init.d அல்லது rc.d கோப்பகங்களைப் பயன்படுத்துகின்றன. இருப்பினும், சர்வர் PostgreSQL பயனராக இயக்கப்பட வேண்டும், மேலும் சார்பாக அல்லசூப்பர் யூசர் அல்லது மற்றொரு பயனர். எனவே su -c "..." postgres கட்டளையின் இந்த படிவத்தை நீங்கள் பயன்படுத்த வேண்டும். உதாரணத்திற்கு:

su -c "pg_ctl start -D /usr/local/pgsql/data -l serverlog" postgres

வெவ்வேறு OS க்கான சில அனுமானங்கள் இங்கே உள்ளன (எதுவாக இருந்தாலும், நீங்கள் சரியான நிறுவல் கோப்புறை மற்றும் பயனர்பெயரை குறிப்பிடுவதை உறுதிப்படுத்திக் கொள்ளுங்கள்):

  • FreeBSDமூல கோப்புறையில் உள்ள /contrib/start-scripts/freebsd கோப்பைப் பார்க்கவும்
  • OpenBSDபின்வரும் வரிகளை /etc/rc.local இல் சேர்க்கவும்
என்றால் [ -x /usr/local/pgsql/bin/pg_ctl -a -x /usr/local/pgsql/bin/postgres ]; பிறகு su - -c "/usr/local/pgsql/bin/pg_ctl start -l /var/postgresql/log -s" postgres echo -n "postgresql" fi
  • லினக்ஸ்கூட்டு
  • /usr/local/pgsql/bin/pg_ctl start -l logfile -D /usr/local/pgsql/data
  • NetBSDவிருப்பத்தைப் பொறுத்து FreeBSD அல்லது Linux அணுகுமுறையைப் பயன்படுத்தவும்
  • சோலாரிஸ்பின்வரும் வரியுடன் /etc/init.d/postgresql என்ற கோப்பை உருவாக்கவும்
  • su - postgres -c "/usr/local/pgsql/bin/pg_ctl start -l logfile -D /usr/local/pgsql/data"

    சர்வர் இயங்கும் போது, ​​அதன் PID தரவு கோப்பகத்தில் postmaster.pid இல் சேமிக்கப்படும். ஒரே தரவு கோப்பகத்தில் பல சேவையக நிகழ்வுகள் இயங்கவில்லை என்பதை உறுதிப்படுத்த இது பயன்படுகிறது. சேவையகத்தை நிறுத்தவும் இதைப் பயன்படுத்தலாம்.

    17.3.1 சேவையக தொடக்கப் பிழைகள்

    பல பொதுவான பிழைகள் இருப்பதால், சர்வர் தொடங்காமல் போகலாம். பிழைச் செய்திகளுக்கு சேவையகப் பதிவைச் சரிபார்க்கவும் அல்லது அதை கைமுறையாக இயக்கவும் (நிலையான வெளியீடு அல்லது பிழை வெளியீட்டைத் திருப்பிவிடாமல்). மிகவும் பொதுவான சில பிழை செய்திகளை கீழே விளக்குகிறோம்:

    பதிவு: IPv4 சாக்கெட்டை பிணைக்க முடியவில்லை: முகவரி ஏற்கனவே பயன்பாட்டில் உள்ளது

    குறிப்பு: மற்றொரு போஸ்ட் மாஸ்டர் ஏற்கனவே போர்ட் 5432 இல் இயங்குகிறாரா? இல்லையெனில், சில வினாடிகள் காத்திருந்து மீண்டும் முயற்சிக்கவும்.

    அபாயகரமானது: TCP/IP கேட்கும் சாக்கெட்டை உருவாக்க முடியவில்லை

    இது பொதுவாக என்ன சொல்கிறதோ அதையே குறிக்கிறது: மற்றொரு சேவையகம் ஏற்கனவே இயங்கிக்கொண்டிருக்கும் அதே போர்ட்டில் மற்றொரு சேவையகத்தைத் தொடங்க முயற்சிக்கிறீர்கள். இருப்பினும், துறைமுகம் பயன்பாட்டில் இல்லை என்றால், காரணம் வேறுபட்டிருக்கலாம். எடுத்துக்காட்டாக, முன்பதிவு செய்யப்பட்ட போர்ட்டில் சேவையகத்தைத் தொடங்க முயற்சிப்பதும் இதேபோன்ற பிழைக்கு வழிவகுக்கும்.

    $ postgres -p 666

    பதிவு: IPv4 சாக்கெட்டை பிணைக்க முடியவில்லை: அனுமதி மறுக்கப்பட்டது

    குறிப்பு: மற்றொரு போஸ்ட் மாஸ்டர் ஏற்கனவே போர்ட் 666 இல் இயங்குகிறாரா? இல்லையெனில், சில வினாடிகள் காத்திருந்து மீண்டும் முயற்சிக்கவும்.

    அபாயகரமானது: TCP/IP கேட்கும் சாக்கெட்டை உருவாக்க முடியவில்லை

    போன்ற செய்தி

    FATAL: பகிரப்பட்ட நினைவகப் பகுதியை உருவாக்க முடியவில்லை: தவறான வாதம்

    விவரம்: சிஸ்டம் அழைப்பு தோல்வியடைந்தது shmget (விசை=5440001, அளவு=4011376640, 03600).

    பொதுவாக கர்னல் பகிரப்பட்ட நினைவக வரம்பு PostgreSQL பணியிடம் உருவாக்க முயற்சிப்பதை விட குறைவாக உள்ளது (எங்கள் எடுத்துக்காட்டில் 4011376640 பைட்டுகள்). அல்லது சிஸ்டம்-வி பாணி பகிர்ந்த நினைவகத்தை ஆதரிக்க உங்கள் கர்னல் கட்டமைக்கப்படவில்லை என்று அர்த்தம். "ஊன்றுகோலாக" நீங்கள் குறைவான இடையகங்களுடன் () சேவையகத்தைத் தொடங்க முயற்சி செய்யலாம். இறுதியில், அனுமதிக்கப்பட்ட பகிர்ந்த நினைவகத்தின் அளவை அதிகரிக்க கர்னலை மறுகட்டமைக்க வேண்டும். கூடுதலாக, ஒரே கணினியில் பல சேவையக நிகழ்வுகளை இயக்க முயற்சிக்கும்போது, ​​அவற்றின் மொத்த நினைவகத் தேவைகள் கர்னல் வரம்புகளை மீறினால், இந்தச் செய்தியைப் பார்க்கலாம்.

    போன்ற பிழை

    மரணம்: செமாஃபோர்களை உருவாக்க முடியவில்லை: சாதனத்தில் இடமில்லை

    விவரம்: சிஸ்டம் அழைப்பு தோல்வியடைந்தது (5440126, 17, 03600).

    இல்லைஉங்கள் வட்டு இடம் தீர்ந்து விட்டது என்று அர்த்தம். இதன் பொருள் சிஸ்டம் V செமாஃபோர்களின் எண்ணிக்கையில் உள்ள கர்னல் வரம்பு எத்தனை PostgreSQL உருவாக்க விரும்புகிறது என்பதை விட குறைவாக உள்ளது. முந்தைய வழக்கைப் போலவே, நீங்கள் "ஊன்றுகோல்" ஐப் பயன்படுத்தலாம் மற்றும் அனுமதிக்கப்பட்ட இணைப்புகளின் (max_connections) குறைக்கப்பட்ட எண்ணிக்கையுடன் சேவையகத்தைத் தொடங்கலாம், ஆனால் இறுதியில் நீங்கள் உங்கள் கர்னலை மறுகட்டமைப்பீர்கள்.

    நீங்கள் பிழையைப் பெற்றால் " சட்டவிரோத அமைப்பு அழைப்பு", பின்னர் பெரும்பாலும் பகிரப்பட்ட நினைவகம் மற்றும் செமாஃபோர்கள் உங்கள் கர்னலால் ஆதரிக்கப்படாது. இந்த விஷயத்தில், இந்த அம்சங்களுக்கான ஆதரவை இயக்க கர்னலை மறுகட்டமைப்பதே உங்கள் ஒரே விருப்பம்.

    17.3.2 கிளையன்ட் இணைப்பில் உள்ள சிக்கல்கள்

    கிளையன்ட் பக்க இணைப்புப் பிழைகள் வெவ்வேறு காரணங்களைக் கொண்டிருந்தாலும், குறிப்பிட்ட பயன்பாட்டைப் பொறுத்தது என்றாலும், அவற்றில் சில சர்வர் இயங்குகிறதா என்பதுடன் நேரடியாக தொடர்புடையவை. கீழே பட்டியலிடப்பட்டுள்ள பிழைகளைத் தவிர மற்ற பிழைகள் குறிப்பிட்ட பயன்பாட்டின் மூலம் தீர்க்கப்பட வேண்டும்.

    psql: சேவையகத்துடன் இணைக்க முடியவில்லை: இணைப்பு மறுக்கப்பட்டது

    ஹோஸ்ட் "server.joe.com" இல் சர்வர் இயங்கி ஏற்றுக்கொள்கிறதா

    போர்ட் 5432 இல் TCP/IP இணைப்புகள் உள்ளதா?

    இது நிலையான "நான் பேச வேண்டிய சேவையகத்தை என்னால் கண்டுபிடிக்க முடியவில்லை" பிழை. இது TCP/IP பற்றி மேலே உள்ள பிழையைப் போன்றது. பெரும்பாலும் அவர்கள் TCP/IP இணைப்புகளை ஏற்க சர்வரை உள்ளமைக்க மறந்துவிட்டார்கள்.

    கூடுதலாக, இணைக்க முயற்சிக்கும்போது இந்த பிழையை நீங்கள் காணலாம் உள்ளூர் சர்வர்யுனிக்ஸ் சாக்கெட்டுகள் வழியாக:

    psql: சேவையகத்துடன் இணைக்க முடியவில்லை: அத்தகைய கோப்பு அல்லது அடைவு இல்லை

    சர்வர் உள்நாட்டில் இயங்கி ஏற்றுக்கொள்கிறதா

    Unix டொமைன் சாக்கெட் "/tmp/.s.PGSQL.5432" இல் இணைப்புகள் உள்ளதா?

    கடைசி வரியின் மூலம், வாடிக்கையாளர் சரியான இடத்திற்கு இணைக்க முயற்சிக்கிறார் என்பதை நீங்கள் சரிபார்க்கலாம். உண்மையில் அங்கு சர்வர் இல்லை என்றால், கர்னலில் இருந்து பிழை செய்தி ஒன்று வரும் இணைப்பு மறுக்கப்பட்டதுஅல்லது அத்தகைய கோப்பு அல்லது அடைவு இல்லைஎங்கள் உதாரணத்தில் உள்ளது போல. (கவனிக்க வேண்டியது அவசியம் இணைப்பு மறுக்கப்பட்டதுஇந்த வழக்கில், சேவையகம் உங்கள் இணைப்பு கோரிக்கையைப் பெற்று அதை நிராகரித்தது என்று அர்த்தமல்ல. இந்தச் சூழ்நிலையில் பிரிவு 19.4 இல் காட்டப்பட்டுள்ளபடி மற்றொரு பிழைச் செய்தி வரும்). போன்ற பிற பிழை செய்திகள் இணைப்பின் நேரம் முடிந்ததுநெட்வொர்க் தாமதங்கள் போன்ற மிகவும் தீவிரமான சிக்கல்களைக் குறிக்கலாம்.

    இந்த கட்டுரையில் நான் 15 ஐக் காண்பிப்பேன் பயனுள்ள கட்டளைகள்ஓட்டுவதற்கு postgreSQL.

    1. PostgreSQL இல் ரூட் கடவுச்சொல்லை மாற்றுவது எப்படி?

    $ /usr/local/pgsql/bin/psql postgres postgresகடவுச்சொல்: (பழைய கடவுச்சொல்) # கடவுச்சொல் 'tmppassword' உடன் மாற்று பயனர் இடுகைகள்; $ /usr/local/pgsql/bin/psql postgres postgresகடவுச்சொல்: (tmppassword)

    வழக்கமான பயனருக்கான கடவுச்சொல்லை மாற்றுவது அதே வழியில் நிகழ்கிறது. ரூட் பயனர் எந்த பயனருக்கும் கடவுச்சொல்லை மாற்ற முடியும்.

    # கடவுச்சொல் 'tmppassword' உடன் மாற்று பயனர் பெயர்;

    2. PostgreSQL ஐ ஆட்டோஸ்டார்ட்டில் நிறுவுவது எப்படி?

    $ su - ரூட் # tar xvfz postgresql-8.3.7.tar.gz # cd postgresql-8.3.7 # cp contrib/start-scripts/linux /etc/rc.d/init.d/postgresql # chmod a+x / etc/rc.d/init.d/postgresql

    3. சர்வர் நிலையை சரிபார்க்கவும்

    $ /etc/init.d/postgresql நிலைகடவுச்சொல்: pg_ctl: சர்வர் இயங்குகிறது (PID: 6171) /usr/local/pgsql/bin/postgres “-D” “/usr/local/pgsql/data” [ கருத்து: இந்தச் செய்தி சர்வர் இயங்குகிறது மற்றும் சாதாரணமாக இயங்குகிறது என்பதைக் குறிக்கிறது] $ /etc/init.d/postgresql நிலைகடவுச்சொல்: pg_ctl: சர்வர் இயங்கவில்லை [ கருத்து: இந்தச் செய்தி சர்வர் இயங்கவில்லை என்பதைக் குறிக்கிறது]

    4. PostgreSQL ஐ எவ்வாறு தொடங்குவது, நிறுத்துவது, மறுதொடக்கம் செய்வது?

    # சேவை postgresql நிறுத்தம் PostgreSQL ஐ நிறுத்துகிறது: சர்வர் நிறுத்தப்பட்டது சரி # சேவை postgresql தொடக்கம் PostgreSQL ஐ தொடங்குகிறது: சரி # சேவை postgresql மறுதொடக்கம் PostgreSQL ஐ மறுதொடக்கம் செய்கிறது: சர்வர் சரியில்லை

    5. PostgreSQL இன் எந்தப் பதிப்பு இயங்குகிறது என்பதை நான் எப்படிப் பார்ப்பது?

    $ /usr/local/pgsql/bin/psql சோதனை PostgreSQL இன்டராக்டிவ் டெர்மினலான psql 8.3.7க்கு வரவேற்கிறோம். வகை: \\ விநியோக விதிமுறைகளுக்கான பதிப்புரிமை \h SQL கட்டளைகளுக்கான உதவிக்கு \? psql கட்டளைகளின் உதவிக்கு \g அல்லது வினவலை செயல்படுத்த அரைப்புள்ளியுடன் முடிக்கவும் \q சோதனையை விட்டு வெளியேறவும்=# பதிப்பு ();பதிப்பு ———————————————————————————————— PostgreSQL 8.3.7 i686-pc-linux-gnu இல், தொகுக்கப்பட்டது GCC gcc (GCC) 4.1.2 20071124 (Red Hat 4.1.2-42) (1 வரிசை) சோதனை=#

    5. PostgreSQL இல் ஒரு பயனரை எவ்வாறு உருவாக்குவது?

    இதற்கு இரண்டு முறைகள் உள்ளன..

    முறை 1: CREATE USER கட்டளையைப் பயன்படுத்தி PSQL ஷெல்லைப் பயன்படுத்தி ஒரு பயனரை உருவாக்குகிறோம்.

    # கடவுச்சொல் 'tmppassword' மூலம் பயனர் ரமேஷை உருவாக்கவும்;பாத்திரத்தை உருவாக்கவும்

    முறை2: createuser shell கட்டளையைப் பயன்படுத்தி ஒரு பயனரை உருவாக்குகிறோம்.

    $ /usr/local/pgsql/bin/createuser sathiyaபுதிய பாத்திரம் ஒரு சூப்பர் யூசராக இருக்க வேண்டுமா? (y/n) n புதிய பங்கு தரவுத்தளங்களை உருவாக்க அனுமதிக்கப்படுமா? (y/n) n புதிய பாத்திரம் மேலும் புதிய பாத்திரங்களை உருவாக்க அனுமதிக்கப்படுமா? (y/n) n பாத்திரத்தை உருவாக்கு

    6. PostgreSQL இல் தரவுத்தளத்தை எவ்வாறு உருவாக்குவது?

    இதற்கு 2 முறைகள் உள்ளன.

    முறை1: CREATE DATABASE கட்டளையைப் பயன்படுத்தி PSQL ஷெல் மூலம் ஒரு தரவுத்தளத்தை உருவாக்குகிறோம்.

    # உரிமையாளர் ரமேஷுடன் டேட்டாபேஸ் மைடிபியை உருவாக்கவும்;தரவுத்தளத்தை உருவாக்கவும்

    முறை2: Createb கட்டளையைப் பயன்படுத்துகிறோம்.

    $ /usr/local/pgsql/bin/createdb mydb -O ரமேஷ்தரவுத்தளத்தை உருவாக்கவும்

    7. Postgresql இல் உள்ள அனைத்து தரவுத்தளங்களின் பட்டியலைப் பெறுகிறோமா?

    # \lதரவுத்தளங்களின் பட்டியல் பெயர் | உரிமையாளர் | குறியாக்கம் ———-+———-+——- காப்பு | postgres | UTF8 mydb | ரமேஷ் | UTF8 postgres | postgres | UTF8 டெம்ப்ளேட்0 | postgres | UTF8 டெம்ப்ளேட்1 | postgres | UTF8

    8. PostgreSQL இல் ஒரு தரவுத்தளத்தை எவ்வாறு நீக்குவது?

    # \lதரவுத்தளங்களின் பட்டியல் பெயர் | உரிமையாளர் | குறியாக்கம் ———-+———-+——- காப்பு | postgres | UTF8 mydb | ரமேஷ் | UTF8 postgres | postgres | UTF8 டெம்ப்ளேட்0 | postgres | UTF8 டெம்ப்ளேட்1 | postgres | UTF8# டிராப் டேட்டாபேஸ் mydb;தரவுத்தளத்தை கைவிடவும்

    9. கட்டளைகளுக்கு உள்ளமைக்கப்பட்ட உதவியைப் பயன்படுத்தவும்

    குழு \? PSQL கட்டளைக்கான உதவி வரியைக் காண்பிக்கும். \h CREATE ஆனது CREATE உடன் தொடங்கும் அனைத்து கட்டளைகளுக்கும் உதவியைக் காண்பிக்கும்.

    # \? # \h உருவாக்கவும் # \h குறியீட்டை உருவாக்கவும்

    10. Postgresql இல் கொடுக்கப்பட்ட தரவுத்தளத்தில் உள்ள அனைத்து அட்டவணைகளின் பட்டியலை எவ்வாறு பெறுவது?

    # \d

    வெற்று தரவுத்தளத்திற்கு, "தொடர்புகள் எதுவும் இல்லை" என்ற செய்தியைப் பெறுவீர்கள்.

    11. கோரிக்கை நிறைவேற்றும் நேரத்தை நான் எப்படிக் கண்டுபிடிப்பது?

    # \time - இந்த கட்டளையை இயக்கிய பிறகு, ஒவ்வொரு அடுத்த கோரிக்கையும் செயல்படுத்தும் நேரத்தைக் காண்பிக்கும்.

    # \நேரம்நேரம் இயக்கத்தில் உள்ளது. # pg_catalog.pg_attribute இலிருந்து * தேர்ந்தெடுக்கவும்;நேரம்: 9.583 எம்.எஸ்

    12. PostgreSQL இல் தரவுத்தளங்கள் மற்றும் அட்டவணைகளை காப்புப் பிரதி எடுப்பது மற்றும் மீட்டெடுப்பது எப்படி?

    இந்தக் கேள்வி மிகப் பெரியது, அதை ஒரு தனிக் கட்டுரையில் பின்னர் வெளியிடுகிறேன்.

    13. PostgreSQL இல் உள்ள செயல்பாடுகளின் பட்டியலை எவ்வாறு பார்ப்பது?

    கிடைக்கக்கூடிய செயல்பாடுகளின் பட்டியலைப் பெற, \df+ எனக் கூறவும்

    # \df # \df+

    14. எடிட்டரில் PostgreSQL வினவலை எவ்வாறு திருத்துவது?

    # \e

    \e ஒரு எடிட்டரைத் திறக்கும், அங்கு நீங்கள் வினவலைத் திருத்தலாம் மற்றும் அதைச் சேமிக்கலாம்.

    15. postgreSQL வரலாற்றுக் கோப்பை நான் எங்கே காணலாம்?

    ~/.bash_history கோப்பைப் போலவே, postgreSQL ஆனது அனைத்து sql கட்டளைகளையும் ~/.psql_history கோப்பில் சேமிக்கிறது.

    $ பூனை ~/.psql_historyகடவுச்சொல் 'tmppassword' மூலம் பயனர் போஸ்ட்கிரேஸை மாற்றவும்; \h மாற்று பயனர் தேர்வு பதிப்பு(); ‘tmppassword’ என்ற கடவுச்சொல்லுடன் பயனர் ரமேஷை உருவாக்கவும்; pg_catalog.pg_attribute இலிருந்து \நேரத்தைத் தேர்ந்தெடுக்கவும்;

    தரவுத்தளத்தை நிறுவ வேண்டிய அவசியமின்றி Windows இல் PostgreSQL இன் குறைந்தபட்ச அமைப்பு விவரிக்கப்பட்டுள்ளது. பேட் கோப்பு மூலம் தொடங்கப்பட்டது. ஃபிளாஷ் டிரைவ் அல்லது போர்ட்டபிள் ஹார்ட் டிரைவிலிருந்து வேலை செய்யலாம்.

    விண்டோஸுக்கான பைனரிகளைப் பதிவிறக்கவும்

    பதிவிறக்கம்/விண்டோஸ் பிரிவில் உள்ள PosgreSQL இணையதளத்திற்குச் சென்று இணைப்பைக் கிளிக் செய்யவும் zip காப்பகம்க்கான பத்தியில் மேம்பட்ட பயனர்கள். விரும்பிய பதிப்பைத் தேர்ந்தெடுத்து மேலே செல்லவும்.

    கோப்புகளை காப்பகத்திலிருந்து விரும்பிய கோப்பகத்திற்கு பிரித்தெடுக்கிறோம், எடுத்துக்காட்டாக:
    D:\psql

    நிறுவல் இல்லாமல் PostgreSQL ஐ இயக்குகிறது

    பேட் ஸ்கிரிப்ட் நிறுவப்படாமல் விண்டோஸில் இயங்க:


    @எக்கோ ஆன்
    @REM PostgreSQL க்கான சூழல் மாறிகளை அமைக்கவும்
    @SET PATH=”%CD%\bin”;%PATH%
    @SET PGDATA=%CD%\data
    @SET PGDATABASE=postgres
    @SET PGUSER=postgres
    @SET PGPORT=5432
    @REM முதல் ஓட்டத்தில் மட்டுமே ரஷ்ய குறியாக்கத்துடன் புதிய DB ஐ உருவாக்கவும்
    @rem %CD%\bin\initdb -U postgres -A Trust -E UTF8 —locale=russian_russia
    @REM முதல் ஓட்டத்தில் மட்டுமே ஆங்கில குறியாக்கத்துடன் புதிய DB ஐ உருவாக்கவும்
    %CD%\bin\initdb -U postgres -A Trust -E UTF8 —locale=american_usa
    @%CD%\bin\pg_ctl -D %CD%/data -l logfile தொடக்கம்
    @ECHO சேவையகத்தை நிறுத்த Enter ஐ அழுத்தவும்
    @இடைநிறுத்தம்
    @%CD%\bin\pg_ctl -D %CD%/தரவு நிறுத்தம்

    PostgreSQL அமைந்துள்ள கோப்பகத்தின் மூலத்தில் ஸ்கிரிப்டை வைக்கிறோம், எடுத்துக்காட்டாக:
    D:\psql\pg.bat

    PostgreSQL பதிப்பைப் புதுப்பிக்கிறது

    உங்கள் PostgreSQL பதிப்பைப் புதுப்பிக்க வேண்டும் என்றால், நீங்கள் சில எளிய வழிமுறைகளை எடுக்க வேண்டும். காப்பகத்தைப் பதிவிறக்கவும் புதிய பதிப்பு, அதை ஒரு தனி கோப்பகத்தில் பிரித்தெடுத்து தரவுத்தளத்தை துவக்கவும். மேலே விவரிக்கப்பட்ட.

    தரவு பரிமாற்றம் விரிவாக விவரிக்கப்பட்டுள்ளது. சுருக்கமாக, சமீபத்திய பதிப்பின் பின் கோப்பகத்திலிருந்து ஸ்கிரிப்டை இயக்க வேண்டும்:

    cd D:\psql-new\bin
    pg_upgrade.exe --username=postgres
    --old-datadir "D:\pgsql-old\data"
    --new-datadir "D:\pgsql-new\data"
    --old-bindir "D:\pgsql-old\bin"
    --new-bindir "D:\pgsql-new\bin"

    PostgreSQL இன் இடத்தை மாற்றுகிறது

    மொழிபெயர்க்கப்பட்ட செய்திகள் மற்றும் pgAdmin3 இடைமுகம் உங்களுக்குப் பிடிக்கவில்லை என்றால், நீங்கள் முதலில் அதைத் தொடங்கும் போது விரும்பிய தரவுத்தள குறியாக்கத்தை அமைக்க வேண்டும்.

    இருப்பினும், இல் விண்டோஸ் நிறுவல்கணினியிலிருந்து வேறுபட்ட குறியாக்கம் என்பது ஒரு மர்மம், அது தீர்க்கப்பட வேண்டும். கணினி நிலையான குறியாக்கப் பெயர்களைப் புரிந்து கொள்ளவில்லை, மேலும் அது புரிந்துகொண்டவற்றைக் கண்டுபிடிப்பது அவ்வளவு எளிதானது அல்ல.

    குறியாக்கத்தை அமைக்க " en_US.UTF-8அமெரிக்கன்_அமெரிக்கா» கட்டளை:
    initdb -U postgres -A Trust -E UTF8 —locale=american_usa

    குறியாக்கத்தை அமைக்க " ru_RU.UTF-8"தரவுத்தளத்தை லோகேலுடன் துவக்குவது அவசியம்" ரஷ்ய_ரஷ்யா» கட்டளை:
    initdb -U postgres -A Trust -E UTF8 —locale=russian_russia

    மற்ற குறியாக்கங்களுக்கு, MSDN இல் பின்வரும் ஆதாரங்களைப் பயன்படுத்தி நீங்களே சேர்க்கைகளைத் தேர்ந்தெடுக்க வேண்டும்:

    பயனுள்ள கட்டளைகள்

    PostgreSQL கட்டளை வரி மூலம் உள்ளிட வேண்டிய SQL வினவல்கள் கீழே உள்ளன. கட்டளையுடன் அதைத் தொடங்குகிறோம்:
    D:\pgsql\bin\psql —username=postgres

    அல்லது pgAdmin3 GUI வழியாக:
    D:\pgsql\bin\pgAdmin3.exe

    பதிப்பு சரிபார்ப்பு:
    பதிப்பு ();

    தற்போதைய செயல்முறைகள்:
    pg_stat_activity இலிருந்து datname, pid, வினவலைத் தேர்ந்தெடுக்கவும்;

    தரவுத்தள உருவாக்கம்:
    டேட்டாபேஸ் டெஸ்ட்_டேட்டாபேஸை உருவாக்கவும்;

    ஒரு பயனரை உருவாக்குதல் மற்றும் மாற்றுதல்:
    கடவுச்சொல் '123456' மூலம் பயனர் டெவலப்பரை உருவாக்கவும்;
    கடவுச்சொல் '654321' உடன் மாற்று பயனர் டெவலப்பர்;

    சூப்பர் யூசரை உருவாக்கவும்:
    ஆல்டர் ரோல் டெவலப்பர் சூப்பர்சர்;

    பயனர் உரிமைகள்:
    டெவலப்பருக்கு டேட்டாபேஸ் டெஸ்ட்_டேட்டாபேஸில் உள்ள அனைத்து சலுகைகளையும் வழங்கவும்;

    டம்ப்பில் இருந்து இறக்குமதி:
    துப்பாக்கி - சி test_database.sql.gz| psql test_database

    மலைப்பாம்பு

    துப்பாக்கி - சி test_database.sql.gz| psql test_database-யு பயனர்-h உள்ளூர் ஹோஸ்ட்

    துப்பாக்கி சிப்< em >test_database. சதுர லி. gz< / em >| psql< em >test_database< / em >- யு< em >பயனர்< / em >-h< em >உள்ளூர் ஹோஸ்ட்< / em >


    psql test_database test_user< dump_file.sql

    ஒரு அட்டவணையை உருவாக்குதல்:

    மலைப்பாம்பு

    வரிசை post_idகளை உருவாக்கவும்; /* அட்டவணைக்கான கவுண்டர் */ அட்டவணை இடுகைகளை உருவாக்கவும் (ஐடி INTEGER முதன்மை விசை இயல்புநிலை அடுத்தது("post_ids"), தலைப்பு CHAR(64), உள்ளடக்க உரை);