Home | 簡體中文 | 繁體中文 | 雜文 | 打賞(Donations) | Github | OSChina 博客 | 雲社區 | 雲棲社區 | Facebook | Linkedin | 知乎專欄 | 視頻教程 | About

部分 III. MySQL

目錄

19. MySQL Server
19.1. MySQL Installation
19.1.1. Installation by apt under debian/ubuntu
19.1.1.1. mysql-5.5.21-debian6.0-i686.deb
19.1.2. Installation by source code
19.1.3. MySQL binary distribution
19.1.4. CentOS
19.1.4.1. CentOS 6.2 + MySQL 5.5.25 (RPM)
19.1.4.2. MySQL 8.0
19.1.5. Docker
19.1.6. mysql-admin
19.1.7. Installing MySQL on Linux Using the MySQL Yum Repository
19.1.7.1. MySQL 5.6
19.1.7.2. MySQL 5.7
19.1.8. Firewall
19.1.9. Limit 狀態
19.1.10. 使用 Btrfs 檔案系統存儲mysql數據
19.1.11. Mac OS
19.2. MariaDB
19.2.1. CentOS 6 YUM 安裝 MariaDB
19.2.2. CentOS 7 安裝 MariaDB
19.3. Percona
19.3.1. Percona yum Repository
19.3.2. Percona XtraBackup
19.3.2.1. 安裝 XtraBackup
19.3.2.2. innobackupex
19.3.2.2.1. 備份資料庫
19.3.2.2.2. 恢復資料庫
19.3.2.3. xbstream
19.3.2.4. xtrabackup
19.3.3. Percona Toolkit - MySQL Management Software
19.4. my.cnf
19.4.1. bind-address
19.4.2. 禁用TCP/IP連結
19.4.3. 配置字符集
19.4.4. 最大連結數 max_connections
19.4.5. 預設引擎 storage-engine
19.4.6. max_allowed_packet
19.4.7. skip-name-resolve
19.4.8. timeout
19.4.9. 與複製有關的參數
19.4.9.1. 用於主庫的選項 Master
19.4.9.2. 用於從庫的選項 Slave
19.4.9.3. 逃過錯誤
19.4.10. 與 InnoDB 有關的配置項
19.4.11. EVENT 設置
19.4.12. 日誌
19.4.13. MySQL 5.7 my.cnf 實例
19.4.14. Example for my.cnf
19.5. MySQL Plugin
19.5.1. validate_password
19.5.2. MySQL Images manager
19.5.3. MySQL fifo
19.5.4. 內容輸出到文本插件
19.6. Replication
19.6.1. Master Slave
19.6.1.1. Master
19.6.1.2. Slave
19.6.1.3. Testing
19.6.1.4. 將現有資料庫遷移到主從結構資料庫
19.6.1.5. 主從複製安全問題
19.6.2. Master Master(主主)
19.6.2.1. Master A
19.6.2.2. Master B
19.6.2.3. 將Master A 資料庫 同步到 Master B 兩端資料庫內容保持一致
19.6.2.4. Master A - B 同步兩端資料庫
19.6.2.5. Master A 資料庫解除只讀權限
19.6.2.6. 查看主主的工作狀態
19.6.3. Semisynchronous Replication
19.6.3.1. Master
19.6.3.2. Slave 配置
19.6.3.3. 卸載插件
19.6.3.4. my.cnf
19.6.4. multi-master replication
19.6.5. multi-source replication
19.6.6. 與複製有關的問題
19.6.6.1. 主從不同步問題
19.6.6.2. mysql-bin 清理問題
19.6.6.3. 跳過 Last_Errno
19.6.6.4. 重置Slave
19.6.7. GTID
19.6.7.1. Master
19.6.7.2. Slave
19.7. MySQL Custer
19.7.1. Management node (MGM node)
19.7.2. Data node
19.7.3. SQL node
19.7.4. Starting
19.7.5. Shutdown
19.7.6. Testing
19.8. MySQL Proxy
19.8.1. Ubuntu
19.8.2. CentOS
19.8.2.1. FAQ
19.9. MySQL Router
19.9.1. 安裝 MySQL Router
19.9.2. 配置 MySQL Router
19.9.2.1. 主備配置
19.9.2.2. 負載均衡配置
19.9.3. MySQL Router , Haproxy,LVS 的選擇
19.10. variables
19.10.1. time_zone
19.10.2. sql_mode
19.10.2.1. 設置 sql_mode
19.10.2.2. 查看 sql_mode
19.10.2.3. 兼容早起 MySQL 版本
19.10.2.4. 5.7.16
19.10.3. wait_timeout
19.10.4. table_lock_wait_timeout
19.10.5. low_priority_updates
19.10.6. collation_server
19.10.7. character_set
19.10.8. datadir
19.10.9. plugin_dir
19.10.10. storage_engine
19.10.11. timeout
19.10.12. max_connections
19.11. SHOW COMMAND
19.11.1. 查看版本
19.11.2. status
19.11.2.1. show status
19.11.2.2. show master status
19.11.2.3. show slave status
19.11.2.4. show plugins
19.11.3. show processlist
19.11.4. binary 日誌
19.11.5. 綫程的使用情況
19.11.6. DATABASES
19.11.7. TABLE
19.11.8. 臨時表
19.11.9. 排序統計信息
19.11.10. Key 狀態
19.11.11. FUNCTION
19.11.12. PROCEDURE
19.11.13. TRIGGERS
19.11.14. EVENTS
19.11.15. 引擎(ENGINES)
19.11.16. 字符集(Collation)
19.11.17. SHOW GRANTS
19.11.18. validate_password
19.12. Monitoring
19.12.1. Analysis and Optimization
19.12.1.1. mytop - top like query monitor for MySQL
19.12.1.2. mtop - MySQL terminal based query monitor
19.12.1.3. innotop
19.12.1.4. mysqlreport - A friendly report of important MySQL status values
19.12.1.5. mysqltuner - MySQL configuration assistant
19.12.2. Munin
19.12.3. Cacti
19.12.4. Monitoring MySQL with SNMP
20. Client and Utility Programs
20.1. mysql - the MySQL command-line tool
20.1.1. ~/.my.cnf
20.1.2. 屏幕輸出到檔案
20.1.3. 終端編碼
20.1.4. Unix Socket
20.1.5. 重定向巧用
20.1.6. --sigint-ignore 忽略 Ctrl + C
20.2. mysqldump - a database backup program
20.2.1. 備份資料庫並壓縮檔案
20.2.2. 備份資料庫/表
20.2.3. 備份到檔案
20.2.4. 備份資料庫,無結構,只有數據
20.2.5. 使用完整的insert插入數據
20.2.6. --extended-insert / --skip-extended-insert
20.2.7. --skip-lock-tables
20.2.8. --skip-add-locks
20.2.9. --where
20.2.10. 註釋信息--comments /--skip-comments
20.2.11. 不導出註釋信息
20.2.12. 字符集設置
20.3. mysqladmin - client for administering a MySQL server
20.3.1. reload
20.3.2. 更改密碼
20.3.3. status
20.3.4. process list
20.4. myisamchk — MyISAM Table-Maintenance Utility
20.5. mysqlcheck — A Table Maintenance and Repair Program
20.6. mysqlslap - load emulation client
20.7. mysqldumpslow - Parse and summarize the MySQL slow query log.
20.8. mysql log
21. Database Administration
21.1. User Account Management
21.1.1. Create User
21.1.2. Drop User
21.1.3. Rename User
21.1.4. SET PASSWORD
21.2. Access Privilege System
21.2.1. SHOW GRANTS
21.2.2. show privileges
21.2.3. Grant privileges
21.2.4. Revoke privileges
21.2.5. Show Privileges
21.2.6. MAX_QUERIES_PER_HOUR/MAX_UPDATES_PER_HOUR
21.2.7. Table Privileges
21.2.8. Column Privileges
21.3. Maintenance 資料庫維護
21.3.1. CHECK 檢查表
21.3.2. ANALYZE 分析表
21.3.3. CHECKSUM
21.3.4. OPTIMIZE 優化表
21.3.5. REPAIR 修復
21.4. INFORMATION_SCHEMA
21.4.1. 查詢表欄位
21.4.2. 列出所有觸發器
21.5. Backup and Recovery
21.5.1. Import / Export
21.5.1.1. Export(Backup)
21.5.1.2. Import(Recovery)
21.5.1.3. xml
21.5.1.4. 備份表數據
21.5.1.5. source
21.5.1.6. 使用 mysqlhotcopy 備份 MyISAM 引擎的資料庫
21.5.1.7. AutoMySQLBackup
21.5.1.8. xtrabackup - Open source backup tool for InnoDB and XtraDB.
21.5.1.8.1. Percona yum Repository
21.5.1.8.2. Creating an Incremental Backup
21.5.2. Snapshot Backup
21.5.2.1. LVM Snapshot
21.5.2.2. Btrfs Snapshot
22. DDL - Data Definition Language
22.1. 資料庫管理(Database)
22.1.1. create
22.1.2. drop
22.1.3. Alter
22.1.4. Rename
22.1.5. CHARACTER
22.1.6. show create database
22.2. 表管理(Table)
22.2.1. 數據類型
22.2.1.1. SET 集合類型
22.2.2. create table ... select
22.2.3. modifiy table
22.2.4. TEMPORARY Table
22.2.5. Collate
22.2.6. CHARACTER
22.2.7. DEFAULT
22.2.7.1. AUTO_INCREMENT
22.2.7.2. TIMESTAMP NULL DEFAULT NULL ON UPDATE
22.2.7.3. 表存儲位置(DATA DIRECTORY)
22.2.8. KEY
22.2.8.1. PRIMARY KEY
22.2.9. AUTO_INCREMENT 定義初始值
22.2.10. COMMENT
22.2.11. Engine 存儲引擎
22.2.11.1. 顯示當前資料庫支持引擎
22.2.11.2. 切換引擎
22.2.11.3. FEDERATED
22.2.11.4. BLACKHOLE
22.2.11.5. ARCHIVE
22.2.11.6. CSV
22.3. Partitioning
22.3.1. RANGE
22.3.2. LIST
22.3.3. HASH
22.3.3.1. LINEAR HASH
22.3.4. KEY分區
22.3.5. Subpartitioning
22.3.6. 分區管理
22.3.6.1. 新增分區
22.3.6.2. 刪除分區
22.3.6.3. 重建分區
22.3.6.4. 分區維護
22.3.7. EXPLAIN PARTITIONS
22.3.8. SHOW CREATE TABLE
22.3.9. INFORMATION_SCHEMA.partitions 表
22.3.10. 分區數據操作
22.4. Index
22.4.1. SHOW INDEX
22.4.2. CREATE INDEX
22.4.3. DROP INDEX
22.4.4. rebuild
22.5. 外鍵(Foreign Key)
22.5.1. FOREIGN KEY (RESTRICT)
22.6. 視圖(View)
22.7. 存儲過程(PROCEDURE)
22.7.1. 存儲程序
22.7.2. EXECUTE 執行 SQL
22.7.3. PREPARE 傳遞參數
22.7.4. 存儲過程返回數據
22.7.5. 結果集轉JSON
22.7.6. 例子·過程返回結果
22.8. 函數
22.8.1. TIMESTAMP TO ISO8601
22.9. 觸發器(Trigger)
22.9.1. create trigger
22.9.1.1. Update 更新出發
22.9.1.2. Delete 刪除出發
22.9.1.3. Insert 插入出發
22.9.2. drop trigger
22.9.3. show triggers
22.9.3.1. SHOW CREATE TRIGGER
22.9.4. EXAMPLE
22.9.4.1. BEFORE/AFTER
22.9.4.2. UUID
22.9.4.3. CALL PROCEDURE
22.10. 事件調度器(EVENT)
22.10.1. 啟用 EVENT
22.10.2. 創建 EVENT
22.10.3. 禁用/啟用
22.10.4. show events
22.10.5. 實例·每月創建一個表
23. DML (Data Manipulation Language)
23.1. INSERT
23.1.1. INSERT INTO ... SELECT
23.1.2. INSERT IGNORE
23.1.3. INSERT...ON DUPLICATE KEY UPDATE
23.2. REPLACE
23.3. DELETE
23.3.1. 刪除重複數據
24. SQL Statement Syntax
24.1. DISTINCT
24.2. group by
24.3. HAVING
24.4. REGEXP
24.5. IN / NOT IN
24.6. ALL / Any
24.7. exists, not exists
24.8. UNION
24.8.1. UNION ALL
24.8.2. 兩張表欄位不對等解決方法
24.9. OUTFILE/LOAD DATA INFILE
24.9.1. Export data to CSV from MySQL
24.9.2. Import data from CSV file.
24.10. CASE Syntax
24.11. MySQL 專有命令
24.11.1. SQL_NO_CACHE
24.11.2. SIGNAL Syntax
24.12. SQL 92
25. Functions and Operators
25.1. COUNT
25.2. group_concat() 列傳行
25.3. UUID()
25.4. String
25.4.1. LEFT/RIGHT
25.4.2. RPAD/LPAD
25.4.3. CONCAT
25.4.4. CONCAT_WS
25.4.5. 連結所有欄位
25.4.6. GROUP_CONCAT
25.4.7. replace
25.4.8. SUBSTRING
25.4.9. SUBSTRING_INDEX
25.4.10. AES_ENCRYPT / AES_DECRYPT
25.5. Date and Time
25.5.1. year/month/day hour:minite:second
25.5.2. Unix time
25.5.3. DATE_FORMAT
25.5.4. DATE_SUB/DATE_ADD
25.5.4.1. DATE_ADD
25.5.5. datediff / timediff
25.6. 數值函數
25.6.1. cast 類型轉換
25.6.2. truncate 保留小數位數
25.6.3. MOD 求余
25.7. Control Flow Functions
26. DCL (Data Control Language)
26.1. 鎖
26.1.1. 共享鎖
26.1.2. 排他鎖
26.1.3. 鎖
26.1.3.1. 表的加鎖與解鎖
26.1.3.2. 禁止查詢
26.1.4. 鎖等待與超時
26.1.4.1. 超時設置
26.1.4.2. select for update nowait
26.2. 事務處理和鎖定語句
26.2.1. 事務隔離級別
26.2.2. 事務所用到的表
26.2.3. 解決更新衝突
26.2.4. SAVEPOINT
27. Optimization
27.1. 打開表的數量
27.2. Buffering and Caching
27.2.1. Query Cache SELECT Options
27.3. where 優化
27.4. SHOW PROFILE Syntax SQL性能分析器
27.5. PROCEDURE ANALYSE()
28. MySQL Connectors
28.1. JDBC
28.2. ODBC
28.3. MySQL native driver for PHP - mysqlnd
28.4. python-mysqldb
29. MySQL GUI/Web Manager
29.1. HeidiSQL
29.2. Toad for MySQL Freeware
29.3. phpMyAdmin - MySQL web administration tool
29.4. Maatkit Essential command-line utilities for MySQL
30. Miscellaneous
30.1. Multi-Master Replication Manager for MySQL
30.2. MHA
30.3. HandlerSocket
30.4. Maatkit
30.5. Mroonga
30.6. Amoeba
31. FAQ
31.1. Reset root password 重置MySQL root密碼
31.1.1. MySQL 5.7.x
31.1.2. MySQL 8.0
31.2. 資料庫內容替換
31.3. 查看錯誤代碼
31.3.1. ERROR 1153 (08S01) at line 3168: Got a packet bigger than 'max_allowed_packet' bytes
31.3.2. ERROR 1129 (00000): Host 'XXXXXX' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
31.4. 臨時表是否需要建索引
31.5. Kill 腳本
31.6. ERROR 1503 (HY000): A PRIMARY KEY must include all columns in the table's partitioning function
31.7. ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
31.8. ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
31.9. 重新整理AUTO_INCREMENT欄位
31.10. 轉換 latin1 到 UTF-8
31.11. this is incompatible with sql_mode=only_full_group_by
31.12. [Warning] Changed limits: max_open_files: 5000 (requested 20480)
31.13. ERROR 1364: 1364: Field 'id' doesn't have a default value
31.14. ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
31.15. ERROR 1086 (HY000): File '/var/lib/mysql-files/order.txt' already exists
31.16. ERROR 1415: Not allowed to return a result set from a trigger
31.17. Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such fileor directory
31.18. com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval is not allowed