MySQL là một hệ quản trị cơ sở dữ liệu phổ biến được sử dụng cho các ứng dụng web và máy chủ. Hướng dẫn này sẽ giới thiệu cách cài đặt, cấu hình và quản lý MySQL trên Linode chạy Debian 7 (Wheezy).
Cơ sở dữ liệu MySQL lớn có thể yêu cầu một lượng bộ nhớ đáng kể. Vì lý do này, chúng tôi khuyên bạn nên sử dụng aHigh Memory Linode cho các thiết lập như vậy.
Lưu ý Hướng dẫn này được viết cho người dùng không phải root. Các lệnh yêu cầu đặc quyền nâng cao có tiền tố làsudo
. Nếu bạn không quen vớisudo
lệnh, bạn có thể xem hướng dẫn Người dùng và Nhóm của chúng tôi.
Trước khi bạn bắt đầu
-
Đảm bảo rằng bạn đã làm theo hướng dẫn Bắt đầu và Bảo mật Máy chủ của bạn và Tên máy chủ của Linode đã được đặt.
Để kiểm tra tên máy chủ của bạn chạy:
hostname hostname -f
Lệnh đầu tiên sẽ hiển thị tên máy chủ ngắn của bạn và lệnh thứ hai sẽ hiển thị tên miền đủ điều kiện (FQDN) của bạn.
-
Cập nhật hệ thống của bạn:
sudo apt-get update sudo apt-get upgrade
Cài đặt MySQL
sudo apt-get install mysql-server
Trong quá trình cài đặt, bạn sẽ được nhắc đặt mật khẩu cho người dùng gốc MySQL như hình dưới đây. Chọn một mật khẩu mạnh và giữ nó ở nơi an toàn để tham khảo sau này.
MySQL sẽ liên kết với localhost (127.0.0.1) theo mặc định. Vui lòng tham khảo hướng dẫn truy cập từ xa MySQL của chúng tôi để biết thông tin về cách kết nối với cơ sở dữ liệu của bạn với các máy khách cục bộ.
Lưu ý Không nên cho phép truy cập không hạn chế vào MySQL trên một IP công cộng, nhưng bạn có thể thay đổi địa chỉ mà nó lắng nghe bằng cách sửa đổibind-address
tham số trong/etc/my.cnf
. Nếu bạn quyết định ràng buộc MySQL với IP công cộng của mình, bạn nên triển khai các quy tắc tường lửa chỉ cho phép kết nối từ các địa chỉ IP cụ thể.
Máy chủ MySQL Harden
Chạy mysql_secure_installation
script để giải quyết một số lo ngại về bảo mật trong cài đặt MySQL mặc định.
sudo mysql_secure_installation
Bạn sẽ được lựa chọn thay đổi mật khẩu gốc MySQL, xóa tài khoản người dùng ẩn danh, vô hiệu hóa thông tin đăng nhập root bên ngoài localhost và xóa cơ sở dữ liệu thử nghiệm. Bạn nên trả lời có cho các tùy chọn này. Bạn có thể đọc thêm về tập lệnh trong Hướng dẫn tham khảo MySQL.
Sử dụng MySQL
Công cụ tiêu chuẩn để tương tác với MySQL là mysql
ứng dụng khách cài đặt với mysql-server
bưu kiện. Máy khách MySQL được sử dụng thông qua một thiết bị đầu cuối.
Root Login
-
Để đăng nhập vào MySQL với tư cách người dùng gốc:
mysql -u root -p
-
Khi được nhắc, hãy nhập mật khẩu gốc. Sau đó, bạn sẽ được hiển thị với tiêu đề chào mừng và lời nhắc MySQL như được hiển thị bên dưới:
mysql>
-
Để tạo danh sách các lệnh cho lời nhắc MySQL, hãy nhập
\h
. Sau đó, bạn sẽ thấy:List of all MySQL commands: Note that all text commands must be first on line and end with ';' ? (\?) Synonym for `help'. clear (\c) Clear command. connect (\r) Reconnect to the server. Optional arguments are db and host. delimiter (\d) Set statement delimiter. NOTE: Takes the rest of the line as new delimiter. edit (\e) Edit command with $EDITOR. ego (\G) Send command to mysql server, display result vertically. exit (\q) Exit mysql. Same as quit. go (\g) Send command to mysql server. help (\h) Display this help. nopager (\n) Disable pager, print to stdout. notee (\t) Don't write into outfile. pager (\P) Set PAGER [to_pager]. Print the query results via PAGER. print (\p) Print current command. prompt (\R) Change your mysql prompt. quit (\q) Quit mysql. rehash (\#) Rebuild completion hash. source (\.) Execute an SQL script file. Takes a file name as an argument. status (\s) Get status information from the server. system (\!) Execute a system shell command. tee (\T) Set outfile [to_outfile]. Append everything into given outfile. use (\u) Use another database. Takes database name as argument. charset (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets. warnings (\W) Show warnings after every statement. nowarning (\w) Don't show warnings after every statement. For server side help, type 'help contents' mysql>
Tạo Cơ sở dữ liệu và Người dùng MySQL Mới
-
Trong ví dụ dưới đây,
testdb
là tên của cơ sở dữ liệu,testuser
là người dùng vàpassword
là mật khẩu của người dùng.create database testdb; create user 'testuser'@'localhost' identified by 'password'; grant all on testdb.* to 'testuser' identified by 'password';
-
Sau đó thoát khỏi MySQL.
exit
Tạo bảng mẫu
-
Đăng nhập lại với tư cách
testuser
.mysql -u testuser -p
-
Tạo một bảng mẫu có tên là
customers
. Thao tác này tạo một bảng có trường ID khách hàng thuộc loạiINT
cho số nguyên (tự động tăng lên đối với các bản ghi mới, được sử dụng làm khóa chính), cũng như hai trường để lưu trữ tên của khách hàng.use testdb; create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
-
Sau đó thoát khỏi MySQL.
exit
Đặt lại mật khẩu gốc của MySQL
Nếu bạn quên mật khẩu MySQL gốc của mình, bạn có thể đặt lại mật khẩu này.
-
Dừng phiên bản máy chủ MySQL hiện tại.
sudo /etc/init.d/mysql stop
-
Sử dụng dpkg để chạy lại quá trình cấu hình MySQL trải qua trong lần cài đặt đầu tiên. Bạn sẽ lại được yêu cầu đặt mật khẩu gốc.
sudo dpkg-reconfigure mysql-server-5.5
dpkg sẽ tự động khởi động lại MySQL và bạn có thể đăng nhập bằng mysql -u root -p
.
Chỉnh MySQL
MySQL Tuner là một tập lệnh Perl kết nối với một phiên bản MySQL đang chạy và cung cấp các đề xuất cấu hình dựa trên khối lượng công việc. Lý tưởng nhất là phiên bản MySQL phải hoạt động ít nhất 24 giờ trước khi chạy bộ chỉnh. Phiên bản đã chạy càng lâu, MySQL Tuner sẽ đưa ra lời khuyên tốt hơn.
-
Cài đặt MySQL Tuner từ kho lưu trữ của Ubuntu.
sudo apt-get install mysqltuner
-
Để chạy nó:
mysqltuner
Bạn sẽ được hỏi về tên và mật khẩu của người dùng gốc MySQL. Kết quả đầu ra sẽ hiển thị hai lĩnh vực quan tâm:Các khuyến nghị chung và Các biến số cần điều chỉnh.
MySQL Tuner là một điểm khởi đầu tuyệt vời để tối ưu hóa máy chủ MySQL nhưng sẽ rất thận trọng khi thực hiện nghiên cứu bổ sung cho các cấu hình phù hợp với (các) ứng dụng sử dụng MySQL trên Linode của bạn.
Thông tin khác
Bạn có thể tham khảo các nguồn sau đây để biết thêm thông tin về chủ đề này. Mặc dù những điều này được cung cấp với hy vọng rằng chúng sẽ hữu ích, xin lưu ý rằng chúng tôi không thể đảm bảo tính chính xác hoặc kịp thời của các tài liệu được lưu trữ bên ngoài.
- Hướng dẫn sử dụng tham chiếu MySQL 5.5
- Hướng dẫn sử dụng PHP MySQL
- Các ví dụ về Perl DBI cho DBD ::mysql
- Hướng dẫn sử dụng MySQLdb
- Hướng dẫn MySQL Tuner