MySQL trên Raspberry Pi không

Tôi thích loay hoay với cơ sở dữ liệu sách của riêng mình, cơ sở dữ liệu hiện được phát triển bằng cơ sở dữ liệu MySQL (sử dụng MariaDB cao cấp) và Laravel (khung PHP MVC). Tôi có nó đang chạy "trong sản xuất" trên Raspberry Pi bằng Apache. Nếu bạn cũng muốn có một ngăn xếp AMP (Apache, MySQL và PHP) trên Raspberry Pi của mình, hãy đọc tiếp

Đây là cách giả định rằng bạn có Raspberry Pi (phiên bản không thực sự quan trọng, mặc dù tôi không chắc Raspberry Pi Zero có thể xử lý ngăn xếp này tốt như thế nào, tôi chưa bao giờ thử nó) và bạn có hệ điều hành Raspberry Pi . Bạn sẽ có thể chạy các lệnh dòng lệnh, thông qua SSH hoặc trên chính thiết bị

Lưu ý, điều này sẽ giúp máy chủ web cục bộ thiết lập và chạy. Máy chủ web này sẽ không thể truy cập được từ bên ngoài mạng của bạn. Thiết lập chuyển tiếp cổng trên bộ định tuyến của bạn không quá khó, nhưng hãy lưu ý các rủi ro bảo mật. Ngay khi bạn mở các cổng được sử dụng nhiều nhất, những kẻ tấn công sẽ bắt đầu cố gắng xâm nhập. Tôi không cảm thấy rằng mình đủ hiểu biết về các vấn đề bảo mật nên tôi thậm chí không thử

Chuẩn bị

Trước khi bắt đầu, trước tiên hãy đảm bảo rằng Raspberry Pi của chúng ta đã được cập nhật hoàn toàn

sudo apt update
sudo apt upgrade -y

Cài đặt Apache

Nếu bạn muốn biết thêm thông tin cơ bản về cài đặt Apache trên Raspberry Pi, bạn có thể kiểm tra

Cài đặt Apache có thể được thực hiện bằng cách

sudo apt install apache2 -y

Bây giờ Apache sẽ tự động khởi động và cũng sẽ khởi động khi hệ thống khởi động lại

Khi quá trình cài đặt hoàn tất, bạn có thể truy cập http://localhost/ trên chính Raspberry Pi hoặc tới


        Require all denied

0 (với địa chỉ IP của Raspberry Pi) từ một máy tính khác trong mạng của bạn

Chúng tôi sẽ thiết lập Apache sau khi chúng tôi đã cài đặt MySQL và PHP

Cài đặt MariaDB

MariaDB là một nhánh của máy chủ cơ sở dữ liệu MySQL nổi tiếng hơn. Nó bám sát các bản phát hành MySQL, nhưng thường nhanh hơn với các bản cập nhật và sửa lỗi. MariaDB sẽ ổn khi thay thế cho MySQL, tôi chưa bao giờ gặp vấn đề gì. Chúng tôi sẽ sử dụng điều này để lưu trữ cơ sở dữ liệu của chúng tôi trên

Để cài đặt MariaDB


        Require all denied

1

Thao tác này sẽ cài đặt và khởi động MariaDB (và nó cũng sẽ khởi động lại khi hệ thống khởi động lại)

Cài đặt MySQL/MariaDB mặc định khá không an toàn, hãy khắc phục ngay


        Require all denied

2

Nó sẽ hỏi mật khẩu


        Require all denied

3, theo mặc định là không có (vì vậy hãy nhấn

        Require all denied

4)

Nhập


        Require all denied

5 và đặt mật khẩu gốc (và đừng quên mật khẩu này. ). Đồng thời nói

        Require all denied

5 để xóa người dùng ẩn danh, không cho phép truy cập root từ xa, xóa cơ sở dữ liệu thử nghiệm và tải lại đặc quyền

Bây giờ bạn có thể kết nối với cơ sở dữ liệu bằng cách sử dụng


        Require all denied

7

Tuy nhiên, sử dụng


        Require all denied

8 chỉ để kết nối với cơ sở dữ liệu không an toàn lắm và điều này cũng sẽ không hoạt động đối với các chương trình khác. Vì vậy, hãy tạo một người dùng không phải root (có thể kết nối mà không cần sử dụng

        Require all denied

8)

Trong


    DirectoryIndex index.php index.html



    SetHandler application/x-httpd-php

0 làm


    DirectoryIndex index.php index.html



    SetHandler application/x-httpd-php

1 (hãy thay thế tên người dùng và mật khẩu)


    DirectoryIndex index.php index.html



    SetHandler application/x-httpd-php

2 (thay thế tên người dùng)


    DirectoryIndex index.php index.html



    SetHandler application/x-httpd-php

3

Sử dụng


    DirectoryIndex index.php index.html



    SetHandler application/x-httpd-php

0, bạn có thể thực thi các lệnh MySQL (như tạo cơ sở dữ liệu và bảng, chèn, cập nhật và xóa dữ liệu cũng như thực hiện các truy vấn. )

Xin lưu ý, chỉ chạy lệnh


    DirectoryIndex index.php index.html



    SetHandler application/x-httpd-php

0 trên Raspberry Pi (không cung cấp cho người dùng

    DirectoryIndex index.php index.html



    SetHandler application/x-httpd-php

6) sẽ cố gắng sử dụng người dùng đang sử dụng thiết bị đầu cuối (có thể là

    DirectoryIndex index.php index.html



    SetHandler application/x-httpd-php

7) và người dùng này không tồn tại (theo mặc định) trên MySQL. Bạn luôn có thể cung cấp người dùng hoặc tạo người dùng

    DirectoryIndex index.php index.html



    SetHandler application/x-httpd-php

7 trong MySQL

Cài đặt PHP

Để có thể chạy PHP, chúng ta sẽ cần cài đặt PHP trên Raspberry Pi và thêm mô-đun PHP vào Apache

Hãy cài đặt


    DirectoryIndex index.php index.html



    SetHandler application/x-httpd-php

9

Và tải mô-đun PHP trong Apache


        AllowOverride None
        Require all granted

0

Khởi động lại Apache để kích hoạt cấu hình mới


        AllowOverride None
        Require all granted

1

Thiết lập Apache

Chúng ta sẽ cần thực hiện thêm một chút thiết lập trên Apache, để làm cho nó hoạt động và làm cho nó hoạt động tốt hơn

Hãy cũng tải phần viết lại cần thiết để viết lại các URL được yêu cầu


        AllowOverride None
        Require all granted

2

Hiện tại Apache chưa được thiết lập cho người dùng

Chúng tôi cũng sẽ cần thêm một chút vào cấu hình để kích hoạt PHP


        AllowOverride None
        Require all granted

3

Cuộn cho đến khi bạn thấy một cái gì đó giống như


        Require all denied

Thêm vào bên dưới này


    DirectoryIndex index.php index.html



    SetHandler application/x-httpd-php

Tôi cũng thêm thư mục của riêng mình để lưu trữ các trang web của mình. Tôi không bao giờ sử dụng vị trí mặc định, bởi vì tôi không bao giờ có thể nhớ nó. May mắn thay, chúng tôi có thể thêm một trang khác để chúng tôi có một nơi thuận tiện hơn để lưu trữ trang web của mình

Cuộn cho đến khi bạn thấy một cái gì đó giống như


        AllowOverride None
        Require all granted

Đây là vị trí mặc định cho trang web của bạn. Vị trí ưa thích của tôi là một thư mục mới có tên là


        AllowOverride None
        Require all granted

4 trong thư mục chính của tôi, nhưng nó có thể là bất kỳ thứ gì bạn thích

Thêm phần này bên dưới khối mặc định


        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
        Allow from all

Lưu và đóng tệp với


        AllowOverride None
        Require all granted

5,

        Require all denied

5 và

        Require all denied

4

Hãy khởi động lại Apache để tải tệp cấu hình mới


        AllowOverride None
        Require all granted

1

Chúng tôi cũng sẽ thay đổi người dùng Apache mặc định trong tệp


        AllowOverride None
        Require all granted

9


        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
        Allow from all

0

Thay đổi

export APACHE_RUN_USER=www-staff
export APACHE_RUN_GROUP=www-staff

Đến

export APACHE_RUN_USER=pi
export APACHE_RUN_GROUP=pi

Khởi động lại Apache lần nữa


        AllowOverride None
        Require all granted

1

Bây giờ chúng ta có thể kiểm tra PHP. Hãy chuyển đến thư mục


        AllowOverride None
        Require all granted

4 của chúng ta, tạo và mở tệp thông tin PHP

cd ~/Sites
touch info.php
nano info.php

Trong trình chỉnh sửa, thêm


        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
        Allow from all

3

Lưu và đóng tệp với


        AllowOverride None
        Require all granted

5,

        Require all denied

5 và

        Require all denied

4

Bây giờ hãy truy cập tệp này bằng trình duyệt của chúng tôi trên


        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
        Allow from all

7 hoặc

        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
        Allow from all

8. Bạn sẽ thấy một cái gì đó như

MySQL trên Raspberry Pi không

1. Ảnh chụp màn hình tệp thông tin PHP của tôi, được cung cấp từ Apache

Máy chủ ảo

Thiết lập này sẽ phục vụ một trang web (trên cổng tiêu chuẩn 80) từ một thư mục. Nếu bạn muốn lưu trữ nhiều trang web, bạn có thể sử dụng máy chủ ảo để thực hiện việc này. Tôi không sử dụng tính năng này trên Raspberry Pi của mình (vì đây là máy


        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
        Allow from all

9 của tôi, chỉ có một trang web), nhưng tôi sử dụng nó khá nhiều trên máy Mac của mình để cung cấp phiên bản thử nghiệm và phát triển song song. Có khá nhiều cách khác nhau để định cấu hình máy chủ ảo của bạn, vì vậy tôi sẽ không đi vào chi tiết ở đây. Bạn có thể bắt đầu ở đây để đọc tất cả về nó

Tôi có thể chạy MySQL trên Raspberry Pi không?

Cài đặt MySQL vào Raspberry Pi là một quy trình đơn giản và có thể được thực hiện bằng lệnh sau . 3. Với phần mềm máy chủ MySQL được cài đặt trên Raspberry Pi, bây giờ chúng ta sẽ cần bảo mật nó bằng cách đặt mật khẩu cho người dùng “root”.

Làm cách nào để thiết lập MySQL trong Raspberry Pi?

Cài đặt MySQL (Máy chủ MariaDB) trên Raspberry Pi .
Bạn sẽ được yêu cầu Nhập mật khẩu hiện tại cho root (nhập mật khẩu an toàn). nhấn nút Enter
Nhập Y và nhấn Enter để Đặt mật khẩu gốc
Nhập mật khẩu tại New password. dấu nhắc và nhấn Enter. .
Nhập Y để Xóa người dùng ẩn danh

Làm cách nào để cài đặt cơ sở dữ liệu SQL trong Raspberry Pi?

Các bước cho việc này như sau. .
Tải xuống trình điều khiển SQL Server ODBC cho Raspberry Pi. .
Cài đặt và cấp phép trình điều khiển SQL Server ODBC trên máy Raspberry Pi. .
Tạo nguồn dữ liệu ODBC trong /etc/odbc. ini kết nối với cơ sở dữ liệu SQL Server mà bạn muốn truy cập từ Python. .
Sử dụng isql để kiểm tra nguồn dữ liệu mới

Cơ sở dữ liệu nào là tốt nhất cho Raspberry Pi?

Trong các thử nghiệm của mình, tôi nhận thấy rằng SQLite, TinyDB và MariaDB là cơ sở dữ liệu tốt nhất cho thiết bị Raspberry Pi và nói chung là cho . Chúng tương thích với phần cứng Raspberry Pi và không tiêu tốn nhiều tài nguyên. Họ cũng hỗ trợ nhiều ngôn ngữ lập trình và công cụ.