قم بإعداد NFS Share على دبيان
NFS هو نظام ملفات قائم على الشبكة يسمح لأجهزة الكمبيوتر بالوصول إلى الملفات عبر شبكة الكمبيوتر. يوضح هذا الدليل كيف يمكنك فضح المجلدات عبر NF
يحتوي MySQL على ميزة رائعة تُعرف باسم "طرق العرض". المشاهدات هي استعلامات مخزنة. اعتبرها اسمًا مستعارًا لاستعلام طويل. في هذا الدليل ، سأوضح لك كيفية استخدام طرق العرض لتنظيم البيانات بشكل أكثر كفاءة.
تثبيت MySQL على Debian 7.x سهل للغاية. أولاً ، نحتاج إلى التأكد من تحديث مصادرنا من خلال تنفيذ:
sudo apt-get update
بعد ذلك ، يمكننا تثبيت خادم MySQL:
sudo apt-get install -y mysql-server
سيتم عرض مربع حوار يطالبك بإنشاء كلمة مرور للمستخدم "الجذر". تأكد من أنك تتذكر كلمة المرور هذه.
دعونا نصلح أمان التثبيت الخاص بنا من خلال تنفيذ:
sudo mysql_secure_installation
بعد التنفيذ ، ستظهر لك سلسلة من المطالبات. يتم عرض كل الإجابات التي يجب عليك تحديدها أدناه.
...
Enter current password for root (enter for none):
OK, successfully used password, moving on...
...
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
...
Remove anonymous users? [Y/n] y
... Success!
...
Disallow root login remotely? [Y/n] y
... Success!
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
...
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
في هذه المرحلة ، ليس لدينا بيانات على الخادم لتجربتها. في هذا البرنامج التعليمي ، سنستخدم قاعدة بيانات الموظفين لأنه من السهل العمل معها ومتاحة مجانًا من موقع MySQL.
sudo wget https://launchpad.net/test-db/employees-db-1/1.0.6/+download/employees_db-full-1.0.6.tar.bz2
نحتاج إلى التثبيت bzip2
حتى نتمكن من استخراج الملف.
sudo apt-get install bzip2
استخرج قاعدة البيانات. الملف كبير إلى حد ما ، لذلك قد يستغرق بضع لحظات.
sudo bzip2 -dfv employees_db-full-1.0.6.tar.bz2
sudo tar -xf employees_db-full-1.0.6.tar
بمجرد استخراج الملف ، سيكون لديك مجلد بعنوان employees_db
. نحتاج إلى الانتقال إلى هذا الدليل لتثبيت قاعدة البيانات.
cd employees_db
ls -l
سيبدو الإخراج كما يلي:
-rw-r--r--. 1 501 games 752 Mar 30 2009 Changelog
-rw-r--r--. 1 501 games 6460 Oct 9 2008 employees_partitioned2.sql
-rw-r--r--. 1 501 games 7624 Feb 6 2009 employees_partitioned3.sql
-rw-r--r--. 1 501 games 5660 Feb 6 2009 employees_partitioned.sql
-rw-r--r--. 1 501 games 3861 Nov 28 2008 employees.sql
-rw-r--r--. 1 501 games 241 Jul 30 2008 load_departments.dump
-rw-r--r--. 1 501 games 13828291 Mar 30 2009 load_dept_emp.dump
-rw-r--r--. 1 501 games 1043 Jul 30 2008 load_dept_manager.dump
-rw-r--r--. 1 501 games 17422825 Jul 30 2008 load_employees.dump
-rw-r--r--. 1 501 games 115848997 Jul 30 2008 load_salaries.dump
-rw-r--r--. 1 501 games 21265449 Jul 30 2008 load_titles.dump
-rw-r--r--. 1 501 games 3889 Mar 30 2009 objects.sql
-rw-r--r--. 1 501 games 2211 Jul 30 2008 README
-rw-r--r--. 1 501 games 4455 Mar 30 2009 test_employees_md5.sql
-rw-r--r--. 1 501 games 4450 Mar 30 2009 test_employees_sha.sql
نفّذ الأمر التالي للاتصال بخادم MySQL وإنشاء قاعدة البيانات واستيراد البيانات:
sudo mysql -h localhost -u root -p -t < employees.sql
ستظهر مطالبة تطلب كلمة مرور الجذر الخاصة بك. هذه هي كلمة المرور التي قمت بتعيينها في الخطوة الأولى.
نظرًا لأن قاعدة البيانات كبيرة جدًا ، فمن المحتمل أن يستغرق استيراد البيانات بالكامل من 1 إلى 3 دقائق. إذا تم تنفيذ كل شيء بشكل صحيح ، فسترى الناتج التالي.
+-----------------------------+
| INFO |
+-----------------------------+
| CREATING DATABASE STRUCTURE |
+-----------------------------+
+------------------------+
| INFO |
+------------------------+
| storage engine: InnoDB |
+------------------------+
+---------------------+
| INFO |
+---------------------+
| LOADING departments |
+---------------------+
+-------------------+
| INFO |
+-------------------+
| LOADING employees |
+-------------------+
+------------------+
| INFO |
+------------------+
| LOADING dept_emp |
+------------------+
+----------------------+
| INFO |
+----------------------+
| LOADING dept_manager |
+----------------------+
+----------------+
| INFO |
+----------------+
| LOADING titles |
+----------------+
+------------------+
| INFO |
+------------------+
| LOADING salaries |
+------------------+
الآن ، يمكننا تسجيل الدخول إلى MySQL وعرض البيانات المستوردة.
sudo mysql -h localhost -u root -p
أدخل كلمة مرور الجذر التي قمت بتعيينها في القسم السابق.
تحقق من قائمة قواعد البيانات لقاعدة بيانات الموظفين التي تم إنشاؤها حديثًا .
show databases;
سيبدو الإخراج كما يلي:
+--------------------+
| Database |
+--------------------+
| information_schema |
| employees |
| mysql |
| performance_schema |
+--------------------+
4 rows in set (0.01 sec)
دعونا نستخدم قاعدة بيانات الموظفين .
use employees;
تحقق من الجداول داخله.
show tables;
سيؤدي هذا إلى إخراج:
+---------------------+
| Tables_in_employees |
+---------------------+
| departments |
| dept_emp |
| dept_manager |
| employees |
| salaries |
| titles |
+---------------------+
6 rows in set (0.01 sec)
في هذه الخطوة ، ستتعلم كيفية إنشاء طرق العرض واستخدامها. لقد قسمت هذه الخطوة إلى أقسام أصغر لمطابقة البيانات وجمع البيانات للمؤسسة. حان الوقت لبدء التفاعل مع بيانات الاختبار الخاصة بنا.
أدناه ، لدي استفسار يعرض جميع الموظفين الذين لديهم راتب سنوي يساوي أو يزيد عن 50000 دولار.
select * from salaries where salary >= 50000;
الإخراج (مبتور):
+--------+--------+------------+------------+
| emp_no | salary | from_date | to_date |
+--------+--------+------------+------------+
| 10001 | 60117 | 1986-06-26 | 1987-06-26 |
| 10001 | 62102 | 1987-06-26 | 1988-06-25 |
| 10001 | 66074 | 1988-06-25 | 1989-06-25 |
| 10001 | 66596 | 1989-06-25 | 1990-06-25 |
| 10001 | 66961 | 1990-06-25 | 1991-06-25 |
(...)
كما ترى ، يعرض هذا فقط أرقام الموظفين. قد يكون مصدر إزعاج عند محاولة التعرف على موظف بسرعة. لحسن الحظ ، يمكننا إنشاء طريقة عرض ستخزن استعلامًا طويلًا إلى حد ما يمكنه مطابقة أرقام الموظفين بأسماء الموظفين عن طريق سحب البيانات ومطابقتها من جداول متعددة. الاستعلام مبين أدناه.
select employees.first_name,employees.last_name,employees.emp_no,salaries.salary,salaries.to_date,salaries.from_date from employees, salaries where employees.emp_no = salaries.emp_no;
لاحظ كيف حذفت >= 50000
من الاستعلام. سنستخدم هذه القيمة بعد إنشاء وجهة نظرنا.
لإنشاء العرض ، نقوم ببساطة بإلحاق create view view_name as
الاستعلام. في هذه الحالة ، سوف أقوم بإنشاء طريقة عرض تسمى المسماة_الرواتب .
create view named_salaries as select employees.first_name,employees.last_name,employees.emp_no,salaries.salary,salaries.to_date,salaries.from_date from employees, salaries where employees.emp_no = salaries.emp_no;
نحن نعرض البيانات من طريقة عرض بنفس الطريقة التي نعرض بها البيانات من جدول.
select * from named_salaries
إذا تم إنشاء العرض بشكل صحيح ، فسترى الناتج التالي (تم اقتطاع البيانات):
+------------+-----------+--------+--------+------------+------------+
| first_name | last_name | emp_no | salary | to_date | from_date |
+------------+-----------+--------+--------+------------+------------+
| Georgi | Facello | 10001 | 60117 | 1987-06-26 | 1986-06-26 |
| Georgi | Facello | 10001 | 62102 | 1988-06-25 | 1987-06-26 |
| Georgi | Facello | 10001 | 66074 | 1989-06-25 | 1988-06-25 |
| Georgi | Facello | 10001 | 66596 | 1990-06-25 | 1989-06-25 |
| Georgi | Facello | 10001 | 66961 | 1991-06-25 | 1990-06-25 |
| Georgi | Facello | 10001 | 71046 | 8 1992-06-24 | 1991-06-25 |
(...)
نظرًا لأنه يمكننا التفاعل مع طرق العرض بنفس الطريقة التي يمكننا التفاعل بها مع الجدول ، فمن الممكن أن نأخذ >= 50000
من الاستعلام الأصلي ونطبقه على طريقة العرض.
select * from named_salaries where salary >= 50000;
الإخراج (مبتور):
+------------+-----------+--------+--------+------------+------------+
| first_name | last_name | emp_no | salary | to_date | from_date |
+------------+-----------+--------+--------+------------+------------+
| Georgi | Facello | 10001 | 60117 | 1987-06-26 | 1986-06-26 |
(...)
| Bezalel | Simmel | 10002 | 65828 | 1997-08-03 | 1996-08-03 |
(...)
| Chirstian | Koblick | 10004 | 50594 | 1992-11-29 | 1991-11-30 |
(...)
| Kyoichi | Maliniak | 10005 | 78228 | 1990-09-12 | 1989-09-12 |
(...)
| Anneke | Preusig | 10006 | 53747 | 1998-08-03 | 1997-08-03 |
(...)
+------------+-----------+--------+--------+------------+------------+
كما ترى ، تعامل الاستعلام مع العرض تمامًا مثل جدول تقليدي.
دعنا نستخدم طريقة عرض في مثال آخر. أدناه ، لدي استعلام مطول إلى حد ما يسرد مدراء الأقسام وأسماءهم الأولى / الأخيرة وأرقام الموظفين وأسماء الأقسام وأرقام الأقسام. يقوم الاستعلام بتجميع البيانات من عدة جداول مختلفة.
select employees.first_name,employees.last_name,employees.emp_no,dept_manager.to_date,dept_manager.from_date,departments.dept_name,departments.dept_no from employees, dept_manager, departments where employees.emp_no = dept_manager.emp_no AND departments.dept_no = dept_manager.dept_no;
الإخراج (مبتور):
+-------------+--------------+--------+------------+------------+--------------------+---------+
| first_name | last_name | emp_no | to_date | from_date | dept_name | dept_no |
+-------------+--------------+--------+------------+------------+--------------------+---------+
| Tonny | Butterworth | 111692 | 1988-10-17 | 1985-01-01 | Customer Service | d009 |
| Marjo | Giarratana | 111784 | 1992-09-08 | 1988-10-17 | Customer Service | d009 |
| Xiaobin | Spinelli | 111877 | 1996-01-03 | 1992-09-08 | Customer Service | d009 |
| Yuchang | Weedman | 111939 | 9999-01-01 | 1996-01-03 | Customer Service | d009 |
| DeForest | Hagimont | 110511 | 1992-04-25 | 1985-01-01 | Development | d005 |
| Leon | DasSarma | 110567 | 9999-01-01 | 1992-04-25 | Development | d005 |
(...)
كما ترى ، سيكون من غير المناسب إلى حد ما كتابة هذا الاستعلام في كل مرة تحتاج فيها إلى جلب قائمة بمديري الأقسام. لنقم بإنشاء طريقة عرض لتسهيل الأمر. سأدعو وجهة النظر "الإدارة".
create view management as select employees.first_name,employees.last_name,employees.emp_no,dept_manager.to_date,dept_manager.from_date,departments.dept_name,departments.dept_no from employees, dept_manager, departments where employees.emp_no = dept_manager.emp_no AND departments.dept_no = dept_manager.dept_no;
الآن ، يمكننا ببساطة الكتابة select * from management;
لاسترداد نفس البيانات. بالطبع ، يمكننا أيضًا تطبيق معلمات إضافية على ذلك - تمامًا مثل الجدول التقليدي. على سبيل المثال ، لنفترض أننا أردنا فقط عرض مديري الأقسام لـ "خدمة العملاء".
select * from management where dept_name = 'Customer Service';
انتاج:
+------------+-------------+--------+------------+------------+------------------+---------+
| first_name | last_name | emp_no | to_date | from_date | dept_name | dept_no |
+------------+-------------+--------+------------+------------+------------------+---------+
| Tonny | Butterworth | 111692 | 1988-10-17 | 1985-01-01 | Customer Service | d009 |
| Marjo | Giarratana | 111784 | 1992-09-08 | 1988-10-17 | Customer Service | d009 |
| Xiaobin | Spinelli | 111877 | 1996-01-03 | 1992-09-08 | Customer Service | d009 |
| Yuchang | Weedman | 111939 | 9999-01-01 | 1996-01-03 | Customer Service | d009 |
+------------+-------------+--------+------------+------------+------------------+---------+
أو ربما نريد "خدمة العملاء" و "الموارد البشرية":
select * from management where dept_name = 'Customer Service' OR dept_name = 'Human Resources';
انتاج:
+------------+--------------+--------+------------+------------+------------------+---------+
| first_name | last_name | emp_no | to_date | from_date | dept_name | dept_no |
+------------+--------------+--------+------------+------------+------------------+---------+
| Tonny | Butterworth | 111692 | 1988-10-17 | 1985-01-01 | Customer Service | d009 |
| Marjo | Giarratana | 111784 | 1992-09-08 | 1988-10-17 | Customer Service | d009 |
| Xiaobin | Spinelli | 111877 | 1996-01-03 | 1992-09-08 | Customer Service | d009 |
| Yuchang | Weedman | 111939 | 9999-01-01 | 1996-01-03 | Customer Service | d009 |
| Shirish | Ossenbruggen | 110183 | 1992-03-21 | 1985-01-01 | Human Resources | d003 |
| Karsten | Sigstam | 110228 | 9999-01-01 | 1992-03-21 | Human Resources | d003 |
+------------+--------------+--------+------------+------------+------------------+---------+
يعد حذف طريقة عرض أمرًا بسيطًا للغاية. على غرار إزالة جدول ، يمكنك الكتابة drop view view_name;
. على سبيل المثال، إذا أردنا أن حذف named_salaries الرأي، فإن الأمر على النحو التالي: drop view named_salaries;
.
NFS هو نظام ملفات قائم على الشبكة يسمح لأجهزة الكمبيوتر بالوصول إلى الملفات عبر شبكة الكمبيوتر. يوضح هذا الدليل كيف يمكنك فضح المجلدات عبر NF
مقدمة: التأليف والإصدار الموزع على الويب (WebDAV) هو امتداد HTTP يوفر إطار عمل لإنشاء الملفات وتعديلها عن بُعد على
ستعلمك هذه المقالة كيفية إعداد سجن سريع على دبيان. أفترض أنك تستخدم Debian 7.x. إذا كنت تقوم بتشغيل دبيان 6 أو 8 ، فقد يعمل هذا ، ولكن
مقدمة طريقة سهلة لإعداد خادم VPN على دبيان هي PiVPN. PiVPN هو أداة تثبيت وغلاف لـ OpenVPN. يخلق أوامر بسيطة لك
استخدام نظام مختلف؟ Brotli هو طريقة ضغط جديدة مع نسبة ضغط أفضل من Gzip. يتم استضافة رمز المصدر الخاص به علانية على Github. ثي
استخدام نظام مختلف؟ Neos عبارة عن منصة تطبيق محتوى مع CMS وإطار تطبيق في جوهرها. سيوضح لك هذا الدليل كيفية التثبيت
مقدمة Cacti هي أدوات مراقبة ورسوم بيانية مفتوحة المصدر تعتمد بالكامل على بيانات RRD. من خلال Cacti ، يمكنك مراقبة أي نوع من أنواع الأجهزة تقريبًا
Go (تُعرف أيضًا باسم Golang) هي لغة برمجة مكتوبة بشكل ثابت ومجمعة على شكل حرف C تم تطويرها بواسطة Google. جعلت البساطة وتعدد الاستخدامات ب
استخدام نظام مختلف؟ InvoicePlane هو تطبيق فواتير مجاني ومفتوح المصدر. يمكن العثور على رمز المصدر الخاص به في مستودع Github هذا. هذا الدليل
استخدام نظام مختلف؟ Reader Self 3.5 هو قارئ RSS بسيط ومرن ومفتوح ومفتوح المصدر ومستضاف ذاتيًا وبديل Google Reader. القارئ سيل
استخدام نظام مختلف؟ BookStack عبارة عن نظام أساسي بسيط وسهل الاستخدام لتنظيم المعلومات وتخزينها. BookStack مجاني تمامًا ومفتوح
مقدمة FFmpeg هي أداة سطر أوامر مفتوحة المصدر لتشفير / فك تشفير الفيديو والصوت. ميزاته الرئيسية هي سرعة عالية وجودة وفيل صغير
استخدام نظام مختلف؟ TermRecord هو أداة بسيطة مفتوحة المصدر مكتوبة بلغة Python ، تسمح بحفظ الجلسات النهائية إلى مشاركة ذاتية سهلة المشاركة
استخدام نظام مختلف؟ Matomo (Piwik سابقًا) هو نظام أساسي مفتوح المصدر للتحليلات ، وهو بديل مفتوح لبرنامج Google Analytics. مصدر Matomo مستضاف
تقدم هذه المقالة ملخصًا موجزًا لأنظمة تشغيل الخادم المقدمة كنماذج على Vultr. CentOS CentOS هو إصدار مفتوح المصدر من RHEL (Re
استخدام نظام مختلف؟ X-Cart هي منصة تجارة إلكترونية مفتوحة المصدر مرنة للغاية مع الكثير من الميزات والتكاملات. كود مصدر X-Cart مضيف
Munin عبارة عن أداة مراقبة لمسح العمليات والموارد في جهازك وتقديم المعلومات في الرسوم البيانية من خلال واجهة الويب. استخدم ما يلي
استخدام نظام مختلف؟ Tiny Tiny RSS Reader هو قارئ ومجمّع أخبار مستوحى ذاتيًا ومفتوح المصدر ومستضاف على الويب (RSS / Atom) ، مصمم خصيصًا
مقدمة في هذا البرنامج التعليمي ، سنغطي عملية إضافة نطاق IP / شبكة فرعية كاملة إلى خادم Linux يعمل بنظام CentOS أو Debian أو Ubuntu. الموكيز
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".
هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.
اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.
اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.
لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟
مع تطور العلم بمعدل سريع ، واستلام الكثير من جهودنا ، تزداد أيضًا مخاطر تعريض أنفسنا إلى تفرد غير قابل للتفسير. اقرأ ، ماذا يمكن أن يعني التفرد بالنسبة لنا.
ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!
ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.
أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد