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

MySQL 命令列完整操作手冊:連線、用戶、庫表、備份還原、匯入匯出

     編輯:MySQL 資料庫相關知識

一、連線與基礎

# 連線本機
mysql -uroot -p
# 連線遠端
mysql -h 10.0.0.1 -uroot -p123
# 退出
exit

二、用戶與權限

# 建用戶並授權(全庫全權,任意主機)
GRANT ALL PRIVILEGES ON *.* TO 'user1'@'%' IDENTIFIED BY 'pwd123';
FLUSH PRIVILEGES;

# 僅本機、特定庫、讀寫權限
GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'user2'@'localhost' IDENTIFIED BY 'pwd123';

# 修改密碼
mysqladmin -uroot -poldpwd password newpwd

# 刪除用戶
DROP USER 'user1'@'%';

三、庫操作

SHOW DATABASES;
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE mydb;
DROP DATABASE mydb;

四、表操作


SHOW TABLES;
DESC users;                 -- 同 SHOW COLUMNS FROM users
CREATE TABLE users (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
ALTER TABLE users ADD COLUMN phone VARCHAR(20);
ALTER TABLE users MODIFY name VARCHAR(100);
ALTER TABLE users DROP COLUMN phone;
DROP TABLE users;
TRUNCATE TABLE users;       -- 清空資料、重置自增

五、資料操作


INSERT INTO users (name, email) VALUES ('Tom', 'tom@example.com');
SELECT * FROM users WHERE id=1;
UPDATE users SET name='Jerry' WHERE id=1;
DELETE FROM users WHERE id=1;

六、備份與還原

mysqldump 邏輯備份


# 全庫
mysqldump -uroot -p --single-transaction --routines --triggers --events mydb > mydb_full.sql

# 單表
mysqldump -uroot -p mydb users > users.sql

# 僅結構
mysqldump -uroot -p -d mydb > mydb_schema.sql

# 壓縮備份
mysqldump -uroot -p mydb | gzip > mydb_$(date +%F).sql.gz

還原


mysql -uroot -p mydb < mydb_full.sql
# 或進入 mysql 後
SOURCE /path/to/mydb_full.sql;

七、資料匯入匯出

CSV 匯出


SELECT * FROM users INTO OUTFILE '/tmp/users.csv'
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';

CSV 匯入


LOAD DATA INFILE '/tmp/users.csv'
INTO TABLE users
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'
IGNORE 1 LINES;

mysqlimport(命令列)


mysqlimport -uroot -p --fields-terminated-by=',' --fields-enclosed-by='"' --ignore-lines=1 mydb /tmp/users.csv

八、服務管理


net stop mysql
net start mysql
# Linux
systemctl stop mysqld
systemctl start mysqld

九、維護與修復


# 檢查/修復表
mysqlcheck -uroot -p --auto-repair --check --optimize mydb
# 或單表
mysqlcheck -uroot -p --repair mydb users

十、常用查詢技巧


# 當前連線
SHOW PROCESSLIST;
# 慢查詢
SHOW VARIABLES LIKE 'slow_query%';
# 表大小
SELECT TABLE_NAME, ROUND((DATA_LENGTH+INDEX_LENGTH)/1024/1024,2) AS MB
FROM information_schema.TABLES WHERE TABLE_SCHEMA='mydb' ORDER BY MB DESC;
# 找無主鍵表
SELECT TABLE_NAME FROM information_schema.TABLES
WHERE TABLE_SCHEMA='mydb' AND TABLE_TYPE='BASE TABLE'
AND TABLE_NAME NOT IN (SELECT TABLE_NAME FROM information_schema.TABLE_CONSTRAINTS
WHERE CONSTRAINT_TYPE='PRIMARY KEY' AND TABLE_SCHEMA='mydb');
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved