首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 命令大全:從連線、用戶管理到備份還原的完整速查手冊

     編輯:MySQL 資料庫相關知識

前言

MySQL 命令繁多,本文整理最常用的操作指令,涵蓋連線、密碼修改、用戶授權、庫表管理、資料增刪改查、備份還原等核心場景,適合開發與運維人員快速查閱。

一、連線 MySQL

基本語法

mysql -h<主機> -u<用戶> -p<密碼>

場景範例

  • 本機連線:mysql -u root -p(安裝初期 root 無密碼,直接 Enter)
  • 遠程連線:mysql -h 110.110.110.110 -u root -p123456
  • 退出:exit 或 quit

二、修改密碼

mysqladmin -u root -p<舊密碼> password <新密碼>
  • 首次給 root 設密碼:mysqladmin -u root password ab12
  • 後續修改:mysqladmin -u root -p ab12 password djg345

三、用戶與權限管理

建立用戶並授權

-- 允許任意主機登入,擁有所有庫所有表的增刪改查權限(高風險)
GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'test1'@'%' IDENTIFIED BY 'abc';

-- 僅允許本機登入,操作指定庫 mydb(較安全)
GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'test2'@'localhost' IDENTIFIED BY 'abc';

-- 移除密碼
GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'test2'@'localhost' IDENTIFIED BY '';

最佳實踐: 遵循最小權限原則,避免使用 % 通配符主機,生產環境建議限制具體 IP。

四、資料庫操作

操作命令範例
建立資料庫CREATE DATABASE <名稱>;CREATE DATABASE xhkdb;
建庫並建用戶授權三條指令組合見原文 4.1 例2
顯示所有庫SHOW DATABASES;
刪除資料庫DROP DATABASE [IF EXISTS] <名稱>;DROP DATABASE IF EXISTS xhkdb;
切換資料庫USE <名稱>;USE xhkdb;
查看當前庫SELECT DATABASE();

字元集亂碼解決

  • 修改 my.ini:default-character-set=gbk
  • JDBC URL:?useUnicode=true&characterEncoding=gbk
  • PHP:header("Content-Type:text/html;charset=gb2312");
  • C API:mysql_set_character_set()

五、資料表操作

建表範例

CREATE TABLE MyClass(
  id INT(4) NOT NULL PRIMARY KEY AUTO_INCREMENT,
  name CHAR(20) NOT NULL,
  sex INT(4) NOT NULL DEFAULT '0',
  degree DOUBLE(16,2)
);

常用 DDL

  • 刪表:DROP TABLE [IF EXISTS] MyClass;
  • 改表名:RENAME TABLE MyClass TO YouClass;
  • 加欄位:ALTER TABLE MyClass ADD passtest INT(4) DEFAULT '0';
  • 加索引:ALTER TABLE MyClass ADD INDEX idx_name (name);
  • 加主鍵:ALTER TABLE MyClass ADD PRIMARY KEY (id);
  • 加唯一索引:ALTER TABLE MyClass ADD UNIQUE uk_card (cardnumber);
  • 刪索引:ALTER TABLE MyClass DROP INDEX idx_name;
  • 改欄位:ALTER TABLE MyClass CHANGE old_name new_name VARCHAR(50);
  • 刪欄位:ALTER TABLE MyClass DROP COLUMN passtest;

資料操作 DML

  • 插入:INSERT INTO MyClass VALUES (1,'Tom',96.45), (2,'Joan',82.99);
  • 全表查詢:SELECT * FROM MyClass;
  • 分頁查詢:SELECT * FROM MyClass ORDER BY id LIMIT 0,2;
  • 刪除:DELETE FROM MyClass WHERE id=1;
  • 更新:UPDATE MyClass SET name='Mary' WHERE id=1;

六、備份與還原

mysqldump 導出

  • 整庫:mysqldump -u root -p dbname > backup.sql
  • 單表:mysqldump -u root -p dbname table > table.sql
  • 僅結構:mysqldump -u root -p -d --add-drop-table dbname > struct.sql
  • 指定字元集:mysqldump -uroot -p --default-character-set=latin1 --set-charset=gbk dbname > out.sql

導入還原

mysql -u root -p
CREATE DATABASE target_db;
USE target_db;
SOURCE /path/backup.sql;

LOAD DATA / SELECT INTO OUTFILE

  • 導出:SELECT * FROM tbl INTO OUTFILE '/tmp/data.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n';
  • 導入:LOAD DATA INFILE '/tmp/data.txt' INTO TABLE tbl FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' CHARACTER SET gbk;

七、建庫建表完整腳本範例

DROP DATABASE IF EXISTS school;
CREATE DATABASE school;
USE school;
CREATE TABLE teacher (
  id INT(3) AUTO_INCREMENT NOT NULL PRIMARY KEY,
  name CHAR(10) NOT NULL,
  address VARCHAR(50) DEFAULT '深圳',
  year DATE
);
INSERT INTO teacher VALUES (NULL,'allen','大連一中','1976-10-10');
INSERT INTO teacher VALUES (NULL,'jack','大連二中','1975-12-23');

執行方式:mysql -uroot -p < c:\school.sql 或進入 MySQL 後 SOURCE c:\school.sql;

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved