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

MySQL 命令大全:從安裝配置到字符集亂碼徹底解決

     編輯:MySQL 資料庫相關知識

一、安裝與服務管理

net start mysql      # 啟動
net stop mysql       # 停止
netstat -na | findstr 3306  # 檢查端口監聽

二、客戶端連線與基礎操作

mysql -u root -p123456 db_name   # 登入
status;  或  \s                   # 查看運行環境
USE new_dbname;                   # 切換庫
SHOW DATABASES;                   # 列出所有庫
SHOW TABLES;                      # 列出當前庫所有表
SHOW CREATE TABLE tbl_name;       # 顯示建表語句
DESC tbl_name;                    # 表結構描述

三、核心 SQL 語句速查

操作語法範例
建庫/刪庫CREATE DATABASE db; DROP DATABASE IF EXISTS db;
建表/刪表CREATE TABLE t (id INT, name CHAR(20)); DROP TABLE t;
插入INSERT INTO t (id,name) VALUES (1,'zhangsan');
查詢SELECT * FROM t; SELECT id,name FROM t WHERE id=1 ORDER BY id DESC;
更新UPDATE t SET name='lisi' WHERE id=1;
刪除DELETE FROM t WHERE id=3; TRUNCATE TABLE t; -- 重置自增 ID
用戶與權限CREATE USER u IDENTIFIED BY 'p'; GRANT ALL ON db.t TO u@'%';
表結構變更ALTER TABLE t ADD col INT AFTER name; ALTER TABLE t CHANGE old new INT; ALTER TABLE t RENAME TO t2;
引擎切換SHOW CREATE TABLE t; ALTER TABLE t ENGINE=InnoDB;

四、外鍵、約束與引擎實例

-- 建表帶外鍵
CREATE TABLE users (id INT PRIMARY KEY AUTO_INCREMENT, nikename VARCHAR(20) NOT NULL UNIQUE);
CREATE TABLE articles (id INT PRIMARY KEY AUTO_INCREMENT, content LONGTEXT, userid INT,
  CONSTRAINT fk_user FOREIGN KEY (userid) REFERENCES users(id) ON DELETE SET NULL);

-- 多表查詢
SELECT a.id,a.content,u.* FROM users u, articles a WHERE u.id=10 AND a.userid=u.id ORDER BY a.id DESC;

五、字符集亂碼根因與徹底解決

現象

ERROR 1366 (HY000): Incorrect string value: '\xB9\xD8\xD3\xF0' for column 'username'

排查

mysql> STATUS;
Server characterset: latin1
Db characterset: latin1
Client characterset: gbk

伺服器與庫預設 latin1,客戶端 gbk,導致中文寫入錯誤。

分層修正方案

  1. 配置檔 my.ini
    [client] default-character-set=gbk
    [mysqld] default-character-set=gbk
  2. 庫級 db.opt
    default-character-set=gbk
    default-collation=gbk_chinese_ci
  3. 連接串指定
    jdbc:mysql://ip/db?useUnicode=true&characterEncoding=gbk
  4. 建庫時指定
    CREATE DATABASE db CHARACTER SET gbk;
  5. 會話級
    SET NAMES gbk; -- 或 utf8

實戰修復步驟

ALTER TABLE users CHARACTER SET gbk;          -- 庫/表級
TRUNCATE TABLE users;                         -- 清空舊數據
ALTER TABLE users MODIFY username CHAR(20) CHARACTER SET gbk;  -- 欄位級
INSERT INTO users VALUES (88,'中文');          -- 驗證成功

JSP/MySQL UTF-8 注意

  • 頁面指令:<%@ page contentType="text/html;charset=utf-8" %>
  • 連接後執行:SET NAMES 'UTF8'; SET CHARACTER SET UTF8;
  • MySQL 5.x 對 UTF-8 支援已完善,建議統一 UTF-8 避免轉碼麻煩。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved