Khi chạy các lệnh này, bạn cần login vào MySQL với tài khoản root (MySQL root chứ không phải tài khoản root quản lý VPS) hoặc tài khoản có full quyền. Tất cả các thao tác mình thực hiện trên VPS CentOS
Đăng nhập MySQL bạn dùng lệnh: mysql -u root -p
1. Thư mục chứa database
Trên CentOS, toàn bộ file raw database được lưu trong thư mục /var/lib/mysql
2. Quản lý tài khoản và phân quyền
Hiển thị toàn bộ users: mysql> SELECT * FROM mysql.user; Xóa null user: mysql> DELETE FROM mysql.user WHERE user = ' '; Xóa tất cả user mà không phải root: mysql> DELETE FROM mysql.user WHERE NOT (host="localhost" AND user="root"); Đổi tên tài khoản root (giúp bảo mật): mysql> UPDATE mysql.user SET user="mydbadmin" WHERE user="root"; Gán full quyền cho một user mới: mysql> GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'mypass' WITH GRANT OPTION; Phân quyền chi tiết cho một user mới: mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON mydatabase.* TO 'username'@'localhost' IDENTIFIED BY 'mypass'; Gán full quyền cho một user mới trên một database nhất định: mysql> GRANT ALL PRIVILEGES ON mydatabase.* TO 'username'@'localhost' IDENTIFIED BY 'mypass' WITH GRANT OPTION; Thay đổi mật khẩu user: mysql> UPDATE mysql.user SET password=PASSWORD("newpass") WHERE User='username'; Xóa user: mysql> DELETE FROM mysql.user WHERE user="username"; Cuối cùng reload user mysql> FLUSH PRIVILEGES; mysql> exit;
3. Các thao tác database
Hiển thị toàn bộ databases: mysql> SHOW DATABASES; Tạo database: mysql> CREATE DATABASE mydatabase; Sử dụng một database: mysql> USE mydatabase; Xóa một database: mysql> DROP DATABASE mydatabase; Tối ưu database: All Databases: $ sudo mysqlcheck -o --all-databases -u root -p Single Database: $ sudo mysqlcheck -o db_schema_name -u root -p
4. Các thao tác table
Tất cả các thao tác bên dưới bạn phải lựa chọn trước database bằng cách dùng lệnh: mysql> USE mydatabase;
Hiển thị toàn bộ table: mysql> SHOW TABLES; Hiển thị dữ liệu của table: mysql> SELECT * FROM tablename; Đổi tên table : mysql> RENAME TABLE first TO second; hoặc mysql> ALTER TABLE mytable rename as mynewtable; Xóa table: mysql> DROP TABLE mytable;
5. Các thao tác cột và hàng
Tất cả các thao tác bên dưới bạn phải lựa chọn trước database bằng cách dùng lệnh: mysql> USE mydatabase;
Hiển thị các column trong table: mysql> DESC mytable; hoặc mysql> SHOW COLUMNS FROM mytable; Đổi tên column: mysql> UPDATE mytable SET mycolumn="newinfo" WHERE mycolumn="oldinfo"; Select dữ liệu: mysql> SELECT * FROM mytable WHERE mycolumn='mydata' ORDER BY mycolumn2; Insert dữ liệu vào table: mysql> INSERT INTO mytable VALUES('column1data','column2data','column3data','column4data','column5data','column6data','column7data','column8data','column9data'); Xóa dữ liệu trong table: mysql> DELETE FROM mytable WHERE mycolumn="mydata"; Cập nhật dữ liệu trong table: mysql> UPDATE mytable SET column1="mydata" WHERE column2="mydata";
6. Các thao tác sao lưu và phục hồi
Sao lưu toàn bộ database bằng lệnh (chú ý không có khoảng trắng giữa -p và mật khẩu): mysqldump -u root -pmypass --all-databases > alldatabases.sql Sao lưu một database bất kỳ: mysqldump -u username -pmypass databasename > database.sql Khôi phục toàn bộ database bằng lệnh: mysql -u username -pmypass < alldatabases.sql (no space in between -p and mypass) Khôi phục một database bất kỳ: mysql -u username -pmypass databasename < database.sql Chỉ sao lưu cấu trúc database: mysqldump --no-data --databases databasename > structurebackup.sql Chỉ sao lưu cấu trúc nhiều database: mysqldump --no-data --databases databasename1 databasename2 databasename3 > structurebackup.sql Sao lưu một số table nhất định: mysqldump --add-drop-table -u username -pmypass databasename table_1 table_2 > databasebackup.sql
Bạn ơi cho mình hỏi sao mình insert 1 phần tử nó lại bị duplicate phần tử đó thành 2 phần tử zậy?
Chào hocpvs,
Cho mình hỏi chút là tự nhiên mình bị lỗi như thế này là sao ạ.
Mình muốn tạo thêm DB mà không được.
https://imgur.com/KaHDYfs
Mong cả nhà giúp đỡ.
Xin cảm ơn!
Bạn restart lại MySQL rồi kiểm tra lại lệnh tạo DB
Cho mình kết quả của
ls -al /var/lib/mysql/
VPS của mình max là 53 database cho 53 Web, vậy làm sao để nâng lên ạ?
MySQL không có giới hạn số Database tối đa. Việc giới hạn có thể từ hệ điều hành của VPS, giới hạn về số lượng file/thư mục/dung lượng thư mục
Xin chào,
Vui lòng cho mình hỏi, mình đang gặp vấn đề như sau khi cài đặt và sử dụng script hocvps.
Chạy được một thời gian thì bỗng nhiên mình ko vào được PHPmyadmin nữa, vào trình quản lý file thì vẫn được với pass mặc định.
Login phpmyadmin thông báo lỗi như sau:]
#2002 – Connection refused — The server is not responding (or the local server’s socket is not correctly configured).
mysqli_real_connect(): (HY000/2002): Connection refused
Cho hỏi mình cần khắc phục như thế nào? SSH mình vẫn vào được bình thường
Xin cảm ơn BQT.
Trạng thái MySQL của bạn như thế nào?
service mysql status
systemctl status mysql -l
Của mình nó báo như thế này
https://imgur.com/a/VEYulMB
[root@lifeshop home]# service mysql status
ERROR! MariaDB is not running, but lock file (/var/lock/subsys/mysql) exists
[root@lifeshop home]# systemctl status mysql -l
● mysql.service – LSB: start and stop MariaDB
Loaded: loaded (/etc/rc.d/init.d/mysql; bad; vendor preset: disabled)
Active: active (exited) since Thu 2018-09-06 14:30:56 +07; 4 months 15 days ago
Docs: man:systemd-sysv-generator(8)
Process: 822 ExecStart=/etc/rc.d/init.d/mysql start (code=exited, status=0/SUCCESS)
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
Mấy ngày gần đây bên Vultr có gửi email thông báo, có vẻ như 1 trong những web của mình trên vps bị hack, và bị chèn mã độc thì phải.
Dear Customer,
This abuse ticket requires your immediate attention. Please correct the matter and reply to this ticket with resolution within the next 48 hours to ensure uninterrupted service. Overwhelming evidence of violation/compromise may result in VPS suspension prior to the 48 hour deadline to protect system and additional customer resources.
Bạn chạy lệnh service start mysql
Còn vấn đề dưới thì VPs đang lạm dụng quá nhiều tài nguyên từ Vultr, gây ảnh hưởng hệ thống và yêu cầu fix trong 48h không sẽ khóa VPS
Anh cho em hỏi. Em sử dụng script của hocvps xong.
Giờ đăng nhập mysql như câu lệnh trên nhưng không nhập pass được.
Sử dụng ZOC kết nối rồi dùng câu lệnh trên đúng không anh?
HocVPS bản mới thì không cần nhập pass đối với user root. Bạn truy cập SSH và dùng lệnh
mysql -u root
là đượcchào anh Phương,
Em nhập lệnh này thì nó báo là tài khoản root không có quyền truy cập mysql. Bạn nhập Yes để đồng ý.
Em nhập Yes thì nó chạy vô hạn các dòng
y
y
…
Không có điểm dừng luôn anh ạ.
Có phải là bản cài bị lỗi không anh?
Bạn gửi VPS qua support@hocvps.com mình xem cho
Cảm ơn anh Phương,
Em cài lại thì vô MYSQL được rồi..
cho mình hỏi đây là lỗi gì vậy ad?
[root@tinh ~]# rclone copy “remote:/HOCVPS_BACKUP/2018-15-03” /root/
2018/03/16 10:03:22 ERROR : : error reading source directory: directory not found
2018/03/16 10:03:22 ERROR : Attempt 1/3 failed with 1 errors
2018/03/16 10:03:22 ERROR : : error reading source directory: directory not found
2018/03/16 10:03:22 ERROR : Attempt 2/3 failed with 1 errors
2018/03/16 10:03:22 ERROR : : error reading source directory: directory not found
2018/03/16 10:03:22 ERROR : Attempt 3/3 failed with 1 errors
Không tồn tại thư mục như vậy. Bạn kiểm tra trên Cloud tên thư mục có đúng như vậy không
Cho mình lưu về sài dần nhé 🙂
Nhờ bài hướng dẫn này mình vừa hoàn thành xong một số việc quan trọng. Xin chân thành cảm ơn ad nha.
data có đuôi .gz thì phải làm sao hả bạn
Bạn giải nén ra nhé,
gzip -d file.gz
nói rõ hơn được không bạn 🙁
Thì bạn giải nén file gzip ra bằng lệnh trên của mình rồi xử lý database như bài viết này hướng dẫn thôi.
Giải nén trên cửa sổ lệnh terminal SSH
Rất hay, nhưng trong thao tac cột, hàng không có phần thêm, sửa, xóa column nhỉ. Cảm ơn tác giả nhiều 🙂
Chao anh,
Sao em truy cập mysql mà nó lại ra cái MariaDB là sao ta? Em muốn tạo database
http://prnt.sc/danf4u
Bạn sử dụng HocVPS Script à? Trong Script sử dụng Database MariaDB bản mới nhất (chính là MySQL được tối ưu)
Nên bạn làm việc như MySQL thôi
Hi Luân, mình thực hiện sao lưu một database, tuy nhiên mình gập lỗi như hình
http://i.imgur.com/KBMHcY3.jpg
thanks
Trước và sau ký tự > có một khoảng trắng nhé bạn.
Mình đã thêm và vẫn bị như vậy
http://i.imgur.com/grjJcly.jpg
À, lệnh này bạn chạy trực tiếp luôn, ko phải login MySQL nhé
mình cũng bị lỗi như bạn bên trên
http://i.imgur.com/grjJcly.jpg
Nhưng khi chạy trực tiếp ko đăng nhập mysql thì nó lại báo :
No such file or directory
chính xác là mình dùng lệnh :
mysql -u username -pmypass databasename < database.sql
Lệnh này là phải đăng nhập MySQL đúng k bạn
mình dùng lệnh đó thì bị lỗi như của bạn bên trên
cho mình hỏi những thông tin này có hướng dẫn cho window được không? mình đọc nhưng thấy dành cho linux thôi hay sao ý.
Cám ơn ạ.
Những lệnh này chạy trên Linux nhé.
Cho mình hỏi muốn nhập database có sẵn thì làm sao ạ.
Trong phần 6. Các thao tác sao lưu và phục hồi có nói đấy bạn.
Hoặc dùng phpMyAdmin import vào.
Cho mình hỏi muốn để file restore thì để nó vô đâu, tại mình test hocvps script thì dùng lệnh restore ” mysql -u username -pmypass databasename < database.sql " thì nó chạy nhưng không có chuyện gì xảy ra cả
nếu không báo gì hết thì thành công rồi đó bạn 😀