Hướng dẫn lệnh print trong mysql

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ài viết liên quan:

  1. LogRotate – Công cụ quản lý Log files quan trọng cần phải biết
  2. Reset MySQL root password
  3. File và đường dẫn quan trọng khi sử dụng Sentora
  4. 21 câu lệnh Linux phải nhớ
  5. Chạy lệnh MySQL không cần password
  6. Tạo mysql database và user bằng lệnh terminal

Comment của bạn

38 Comments

  1. lubu 1 comment 05/08/2019 at 11:14 pm

    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?

  2. LEO 6 comment 14/06/2019 at 12:06 pm

    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.
    //imgur.com/KaHDYfs
    Mong cả nhà giúp đỡ.
    Xin cảm ơn!

    1. Việt Phương Moderator 30/06/2019 at 10:35 pm

      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/

  3. Lê Văn Thuấn 22 comment 10/06/2019 at 3:32 pm

    VPS của mình max là 53 database cho 53 Web, vậy làm sao để nâng lên ạ?

    1. Việt Phương Moderator 30/06/2019 at 10:22 pm

      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

  4. Dzũng Hoàng 10 comment 21/01/2019 at 12:11 am

    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.

    1. Việt Phương Moderator 21/01/2019 at 10:38 am

      Trạng thái MySQL của bạn như thế nào?
      service mysql status
      systemctl status mysql -l

      1. Dũng Hoàng 10 comment 21/01/2019 at 3:37 pm

        Của mình nó báo như thế này
        //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.

        1. Việt Phương Moderator 21/01/2019 at 3:46 pm

          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

  5. Kien Dinh 8 comment 30/12/2018 at 5:25 pm

    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?

    1. Việt Phương Moderator 01/01/2019 at 11:03 pm

      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à được

      1. Dinh Hung Kien 8 comment 02/01/2019 at 8:17 am

        chà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?

        1. Việt Phương Moderator 02/01/2019 at 9:09 am

          Bạn gửi VPS qua mình xem cho

          1. Dinh Hung Kien 8 comment 02/01/2019 at 9:29 am

            Cảm ơn anh Phương,
            Em cài lại thì vô MYSQL được rồi..

  6. hoàng lâm 13 comment 16/03/2018 at 10:06 am

    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

    1. Việt Phương Moderator 16/03/2018 at 11:26 am

      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

  7. Van Phong Phan 20 comment 05/12/2017 at 3:39 pm

    Cho mình lưu về sài dần nhé 🙂

  8. Thanh 1 comment 09/10/2017 at 2:19 pm

    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.

  9. hoàng 21 comment 15/05/2017 at 4:46 pm

    data có đuôi .gz thì phải làm sao hả bạn

    1. Việt Phương Moderator 15/05/2017 at 5:08 pm

      Bạn giải nén ra nhé, gzip -d file.gz

      1. hoàng 1 comment 15/05/2017 at 7:32 pm

        nói rõ hơn được không bạn 🙁

        1. Việt Phương Moderator 16/05/2017 at 9:06 am

          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

  10. thanhnm 1 comment 22/02/2017 at 9:56 am

    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 🙂

  11. tien 2 comment 23/11/2016 at 9:58 am

    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
    //prnt.sc/danf4u

    1. Việt Phương Moderator 23/11/2016 at 10:10 am

      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

  12. Hiếu Luong 6 comment 09/04/2016 at 8:31 am

    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
    //i.imgur.com/KBMHcY3.jpg
    thanks

    1. Luân Trần Admin 09/04/2016 at 9:21 am

      Trước và sau ký tự > có một khoảng trắng nhé bạn.

      1. Hiếu Luong 6 comment 09/04/2016 at 9:40 am

        Mình đã thêm và vẫn bị như vậy

      2. Hiếu Luong 6 comment 09/04/2016 at 9:41 am

        //i.imgur.com/grjJcly.jpg

        1. Luân Trần Admin 09/04/2016 at 12:00 pm

          À, lệnh này bạn chạy trực tiếp luôn, ko phải login MySQL nhé

          1. dũng 119 comment 02/05/2016 at 11:05 am

            mình cũng bị lỗi như bạn bên trên
            //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

          2. dũng 119 comment 02/05/2016 at 11:08 am

            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

  13. masa 1 comment 17/01/2016 at 2:40 pm

    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 ạ.

    1. Luân Trần Admin 17/01/2016 at 10:41 pm

      Những lệnh này chạy trên Linux nhé.

  14. Hieu 1 comment 14/01/2016 at 10:20 pm

    Cho mình hỏi muốn nhập database có sẵn thì làm sao ạ.

    1. Luân Trần Admin 15/01/2016 at 11:16 am

      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.

  15. Phúc 1 comment 11/01/2015 at 2:02 pm

    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ả

    1. Thiện 29 comment 15/01/2016 at 2:45 pm

      nếu không báo gì hết thì thành công rồi đó bạn 😀

Chủ Đề