Cách sử dụng MySQL hoặc MariaDB với Ứng dụng Django của bạn trên Ubuntu 14.04
Django là một khuôn khổ linh hoạt để tạo nhanh các ứng dụng Python. Theo mặc định, các ứng dụng Django được cấu hình để lưu trữ dữ liệu vào một file database SQLite nhẹ. Mặc dù điều này hoạt động tốt dưới một số tải, nhưng DBMS truyền thống hơn có thể cải thiện hiệu suất trong production .Trong hướng dẫn này, ta sẽ trình bày cách cài đặt và cấu hình MySQL hoặc MariaDB để sử dụng với các ứng dụng Django của bạn. Ta sẽ cài đặt phần mềm cần thiết, tạo thông tin đăng nhập database cho ứng dụng của bạn , sau đó bắt đầu và cấu hình một dự án Django mới để sử dụng phần backend này.
Yêu cầu
Để bắt đầu, bạn cần một version server Ubuntu 14.04 sạch với user không phải root được cài đặt . User không phải root phải được cấu hình với các quyền sudo
. Tìm hiểu cách cài đặt điều này theo hướng dẫn cài đặt server ban đầu của ta .
Khi đã sẵn sàng để tiếp tục, hãy đọc tiếp.
Cài đặt các thành phần từ repository Ubuntu
Bước đầu tiên của ta sẽ là cài đặt tất cả các phần mà ta cần từ repository . Ta sẽ cài đặt pip
, trình quản lý gói Python, để cài đặt và quản lý các thành phần Python của ta . Ta cũng sẽ cài đặt phần mềm database và các thư viện liên quan cần thiết để tương tác với chúng.
Ta sẽ đề cập đến cả MySQL và MariaDB bên dưới, vì vậy hãy chọn phần được liên kết với DBMS bạn muốn sử dụng.
MySQL
Nếu bạn muốn sử dụng MySQL, các lệnh apt
sau đây sẽ cung cấp cho bạn các gói bạn cần:
sudo apt-get update sudo apt-get install python-pip python-dev mysql-server libmysqlclient-dev
Bạn cần chọn và xác nhận password cho account MySQL quản trị.
Sau khi cài đặt, bạn có thể tạo cấu trúc folder database bằng lệnh :
sudo mysql_install_db
Sau đó, bạn có thể chạy qua một tập lệnh bảo mật đơn giản bằng lệnh:
sudo mysql_secure_installation
Bạn sẽ được hỏi password quản trị mà bạn đã đặt cho MySQL trong khi cài đặt. Sau đó, bạn sẽ được hỏi một loạt câu hỏi. Bên cạnh câu hỏi đầu tiên yêu cầu bạn chọn một password quản trị khác, hãy chọn có cho mỗi câu hỏi.
Với việc cài đặt và cấu hình database ban đầu, ta có thể chuyển sang tạo database và user database của bạn . Bỏ qua phần tiếp theo.
MariaDB
Nếu bạn thích MariaDB hơn, bạn có thể làm theo hướng dẫn bên dưới để cài đặt nó và thực hiện cấu hình ban đầu cần thiết. Cài đặt các gói từ repository bằng lệnh :
sudo apt-get update sudo apt-get install python-pip python-dev mariadb-server libmariadbclient-dev libssl-dev
Bạn cần chọn và xác nhận password cho account MariaDB quản trị.
Sau đó, bạn có thể chạy qua một tập lệnh bảo mật đơn giản bằng lệnh:
sudo mysql_secure_installation
Bạn cần nhập password quản trị mà bạn đã đặt cho MariaDB trong khi cài đặt. Sau đó, bạn sẽ được hỏi một loạt câu hỏi. Bên cạnh câu hỏi đầu tiên, yêu cầu bạn chọn một password quản trị khác, hãy chọn có cho mỗi câu hỏi.
Với việc cài đặt và cấu hình database ban đầu, ta có thể chuyển sang tạo database và user database của bạn .
Tạo Database và User Database
Phần còn lại của hướng dẫn này có thể được thực hiện theo nguyên trạng dù bạn đã cài đặt MySQL hay MariaDB.
Ta có thể bắt đầu bằng cách đăng nhập vào một phiên tương tác với phần mềm database của ta bằng lệnh lệnh sau (lệnh giống nhau dù bạn đang sử dụng phần mềm database nào):
mysql -u root -p
Bạn sẽ được yêu cầu nhập password quản trị mà bạn đã chọn trong khi cài đặt. Sau đó, bạn sẽ được yêu cầu nhở.
Đầu tiên, ta sẽ tạo một database cho dự án Django của ta . Mỗi dự án nên có database riêng biệt vì lý do bảo mật. Ta sẽ gọi database của bạn là myproject
trong hướng dẫn này, nhưng tốt hơn hết là bạn nên chọn thứ gì đó mang tính mô tả hơn. Ta sẽ đặt loại mặc định cho database thành UTF-8, Đây là kết quả Django mong đợi:
CREATE DATABASE myproject CHARACTER SET UTF8;
Hãy nhớ kết thúc tất cả các lệnh tại dấu nhắc SQL bằng dấu chấm phẩy.
Tiếp theo, ta sẽ tạo một user database mà ta sẽ sử dụng để kết nối và tương tác với database . Đặt password thành password mạnh và an toàn:
CREATE USER myprojectuser@localhost IDENTIFIED BY 'password';
Bây giờ, tất cả những gì ta cần làm là cấp cho user database quyền truy cập vào database mà ta đã tạo:
GRANT ALL PRIVILEGES ON myproject.* TO myprojectuser@localhost;
Xóa các thay đổi để chúng có sẵn trong phiên hiện tại:
FLUSH PRIVILEGES;
Thoát khỏi dấu nhắc SQL để quay lại phiên shell thông thường của bạn:
exit
Cài đặt Django trong Môi trường ảo
Bây giờ database của ta đã được cài đặt , ta có thể cài đặt Django. Để có tính linh hoạt tốt hơn, ta sẽ cài đặt Django và tất cả các phụ thuộc của nó trong môi trường ảo Python.
Bạn có thể nhận gói virtualenv
cho phép bạn tạo các môi trường này bằng lệnh :
sudo pip install virtualenv
Tạo một folder để chứa dự án Django của bạn. Di chuyển vào folder sau đó:
mkdir ~/myproject cd ~/myproject
Ta có thể tạo một môi trường ảo để lưu trữ các yêu cầu Python của dự án Django của ta bằng lệnh :
virtualenv myprojectenv
Điều này sẽ cài đặt một bản sao local của Python và pip
vào một folder gọi là myprojectenv
trong folder dự án của bạn.
Trước khi cài đặt các ứng dụng trong môi trường ảo, ta cần kích hoạt nó. Bạn có thể thực hiện bằng cách gõ:
source myprojectenv/bin/activate
Dấu nhắc của bạn sẽ thay đổi để cho biết rằng bạn hiện đang hoạt động trong môi trường ảo. Nó sẽ trông giống như thế này ( myprojectenv ) user @ host :~/ myproject $
.
Khi môi trường ảo của bạn đang hoạt động, bạn có thể cài đặt Django bằng pip
. Ta cũng sẽ cài đặt gói mysqlclient
sẽ cho phép ta sử dụng database mà ta đã cấu hình :
pip install django mysqlclient
Bây giờ ta có thể bắt đầu một dự án Django trong folder myproject
của ta . Thao tác này sẽ tạo một folder con có cùng tên để chứa mã, và sẽ tạo một tập lệnh quản lý trong folder hiện tại. Đảm bảo thêm dấu chấm ở cuối lệnh để điều này được cài đặt chính xác:
django-admin.py startproject myproject .
Cấu hình Cài đặt Database Django
Bây giờ ta có một dự án, ta cần cấu hình nó để sử dụng database ta đã tạo.
Mở file cài đặt dự án Django chính nằm trong folder dự án con:
nano ~/myproject/myproject/settings.py
Ở cuối file , bạn sẽ thấy phần DATABASES
trông giống như sau:
. . . DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } } . . .
Điều này hiện được cấu hình để sử dụng SQLite làm database . Ta cần thay đổi điều này để database MySQL / MariaDB của ta được sử dụng thay thế.
Đầu tiên, thay đổi công cụ để nó trỏ đến backend mysql
thay vì backend sqlite3
. Đối với NAME
, sử dụng tên của database của bạn ( myproject
trong ví dụ của ta ). Ta cũng cần thêm thông tin đăng nhập. Ta cần tên user , password và server để kết nối. Ta sẽ thêm và để trống tùy chọn cổng để mặc định được chọn:
. . . DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'myproject', 'USER': 'myprojectuser', 'PASSWORD': 'password', 'HOST': 'localhost', 'PORT': '', } } . . .
Khi bạn hoàn tất, hãy lưu file .
Di chuyển Database và Kiểm tra Dự án của bạn
Bây giờ cài đặt Django đã được cấu hình , ta có thể di chuyển cấu trúc dữ liệu của bạn vào database của ta và kiểm tra server .
Ta có thể bắt đầu bằng cách tạo và áp dụng chuyển đổi vào database của bạn . Vì ta chưa có bất kỳ dữ liệu thực tế nào, điều này sẽ chỉ đơn giản là cài đặt cấu trúc database ban đầu:
cd ~/myproject python manage.py makemigrations python manage.py migrate
Sau khi tạo cấu trúc database , ta có thể tạo account quản trị bằng lệnh :
python manage.py createsuperuser
Bạn cần chọn tên user , cung cấp địa chỉ email, chọn và xác nhận password cho account .
Khi bạn đã cài đặt account quản trị, bạn có thể kiểm tra xem database của bạn có hoạt động chính xác hay không bằng cách khởi động server phát triển Django:
python manage.py runserver 0.0.0.0:8000
Trong trình duyệt web , hãy truy cập domain hoặc địa chỉ IP của server , sau đó là :8000
để truy cập trang root Django mặc định:
http://server_domain_or_IP:8000
Bạn sẽ thấy trang index mặc định:
Nối /admin
vào cuối URL và bạn có thể truy cập màn hình đăng nhập vào giao diện administrator :
Nhập tên user và password bạn vừa tạo bằng lệnh createsuperuser
. Sau đó, bạn sẽ được đưa đến giao diện quản trị:
Khi điều tra xong, bạn có thể dừng server phát triển bằng cách nhấn CTRL-C trong cửa sổ terminal của bạn .
Bằng cách truy cập vào giao diện quản trị, ta đã xác nhận database của ta đã lưu trữ thông tin account user của ta và nó có thể được truy cập một cách thích hợp.
Kết luận
Trong hướng dẫn này, ta đã trình bày cách cài đặt và cấu hình MySQL hoặc MariaDB làm database backend cho một dự án Django. Mặc dù SQLite có thể dễ dàng xử lý tải trong quá trình phát triển và sử dụng production nhẹ, hầu hết các dự án được hưởng lợi từ việc triển khai DBMS đầy đủ tính năng hơn.
Các tin liên quan
Cách sử dụng MySQL với ứng dụng Ruby on Rails của bạn trên Ubuntu 14.042015-03-18
Cách sử dụng MySQL với ứng dụng Ruby on Rails của bạn trên CentOS 7
2015-03-17
Cách đo hiệu suất truy vấn MySQL với mysqlslap
2014-10-02
Cách di chuyển database MySQL sang server mới trên Ubuntu 14.04
2014-05-22
Cách tối ưu hóa hiệu suất WordPress với MySQL Replication trên Ubuntu 14.04
2014-05-21
Cách sử dụng profile truy vấn MySQL
2014-04-07
Mở rộng quy mô Ruby on Rails: Thiết lập server MySQL chuyên dụng (phần 2)
2014-02-27
Cách sử dụng HAProxy để thiết lập cân bằng tải MySQL
2013-12-02
Cách sử dụng HAProxy để thiết lập cân bằng tải MySQL
2013-12-02
Cách cài đặt MySQL 5.6 từ kho lưu trữ chính thức của Yum
2013-11-13