MySQL là một hệ quản trị cơ sở dữ liệu phổ biến, được sử dụng như là nhà cung cấp lưu trữ dữ liệu cho hàng nghìn ứng dụng web và máy chủ. Hướng dẫn này sẽ giúp người mới bắt đầu làm quen với MySQL trên CentOS 5 Linode. Đối với mục đích của hướng dẫn này, chúng tôi sẽ cho rằng bạn đã làm theo các bước được nêu trong Thiết lập và Bảo mật Phiên bản Máy tính của chúng tôi, rằng hệ thống của bạn đã được cập nhật và bạn đã đăng nhập vào Linode của mình với tư cách root thông qua SSH.
Cấu hình hệ thống
Đảm bảo rằng /etc/hosts
của bạn tệp có các mục nhập thích hợp, tương tự như những mục được hiển thị bên dưới:
- Tệp:/ etc / hosts
-
1 2
127.0.0.1 localhost.localdomain localhost 12.34.56.78 servername.mydomain.com servername
Đảm bảo thay thế địa chỉ IP công khai của Linode của bạn cho “12.34.56.78” trong ví dụ trên.
Cài đặt MySQL
Đưa ra các lệnh sau để cập nhật hệ thống của bạn và cài đặt MySQL:
yum update
yum install mysql-server
/sbin/chkconfig --levels 235 mysqld on
Gói máy chủ MySQL sẽ được cài đặt trên máy chủ của bạn, cùng với các phần phụ thuộc và thư viện máy khách. Khởi động MySQL bằng cách chạy lệnh sau:
service mysqld start
Định cấu hình MySQL
Sau khi cài đặt MySQL, bạn nên chạy mysql_secure_installation
, một chương trình giúp bảo mật MySQL. Trong khi chạy mysql_secure_installation
, bạn sẽ có cơ hội 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. Nếu bạn được nhắc tải lại các bảng đặc quyền, hãy chọn có. Chạy lệnh sau để thực thi chương trình:
mysql_secure_installation
Theo mặc định, MySQL đưa ra một số giả định về môi trường máy chủ của bạn liên quan đến bộ nhớ. Để định cấu hình MySQL một cách thận trọng hơn, bạn sẽ cần chỉnh sửa một số cài đặt trong tệp cấu hình của nó. Tệp của bạn sẽ giống như sau:
- Tệp:/ etc / my.cnf
-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Default to using old password format for compatibility with mysql 3.x # clients (those using the mysqlclient10 compatibility package). old_passwords=1 # Disabling symbolic-links is recommended to prevent assorted security risks; # to do so, uncomment this line: # symbolic-links=0 key_buffer = 16M max_allowed_packet = 1M thread_stack = 64K table_cache = 4 sort_buffer = 64K net_buffer_length = 2K bind-address = 127.0.0.1 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
Các cài đặt này chỉ là các giá trị được đề xuất cho môi trường bộ nhớ thấp; vui lòng điều chỉnh chúng theo các giá trị thích hợp cho máy chủ của bạn. Tham khảo phần “Thông tin thêm” ở cuối hướng dẫn này để có thêm tài nguyên cho chủ đề này.
Nếu bạn đã thực hiện bất kỳ thay đổi nào đối với cấu hình của MySQL, hãy phát hành lệnh sau để khởi động lại nó:
service mysqld restart
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 MySQLecure 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ộ.
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 đổi bind-address
tham số. Nếu bạn quyết định liên kết 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ể.
Sử dụng MySQL
Công cụ tiêu chuẩn để tương tác với MySQL là mysql
chương trình khách hàng. Để bắt đầu, hãy đưa ra lệnh sau theo lời nhắc của bạn:
mysql -u root -p
Bạn sẽ được nhắc nhập mật khẩu của người dùng MySQL gốc. Nhập mật khẩu bạn đã chỉ định khi cài đặt MySQL và bạn sẽ thấy màn hình MySQL monitor:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.45 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
Để tạo danh sách các lệnh cho lời nhắc MySQL, hãy nhập \h
:
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>
Hãy tạo một cơ sở dữ liệu và chỉ định một người dùng cho nó. Đưa ra các lệnh sau tại dấu nhắc MySQL:
CREATE DATABASE testdb;
CREATE USER 'testuser'@localhost IDENTIFIED BY 'CHANGEME';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@localhost;
exit
Bây giờ, hãy đăng nhập lại vào máy khách MySQL với tư cách là testuser
và tạo một bảng mẫu có tên là “khách hàng”. Đưa ra các lệnh sau:
mysql -u testuser -p
USE testdb;
CREATE TABLE customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
Thao tác này tạo một bảng có trường ID khách hàng thuộc loại INT cho số nguyên (tự động tăng dần cho 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. Tất nhiên, bạn có thể muốn lưu trữ nhiều thông tin hơn thế này về khách hàng, nhưng dù sao thì đó cũng là một ví dụ điển hình về trường hợp phổ biến.
Đặ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ể khôi phục mật khẩu đó bằng cách đưa ra các lệnh sau:
/etc/init.d/mysqld stop
mysqld_safe --skip-grant-tables &
mysql -u root
Phần sau của quá trình đặt lại mật khẩu bây giờ sẽ được thực hiện trong chương trình máy khách MySQL:
USE mysql;
UPDATE user SET PASSWORD=PASSWORD("CHANGEME") WHERE USER='root';
FLUSH PRIVILEGES;
exit
Cuối cùng, khởi động lại MySQL bằng cách phát hành:
service mysqld restart
Thông tin khác
Bạn có thể muốn 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.1
- 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