一、關鍵目錄
- 數據目錄:
/var/lib/mysql/
- 配置文件:
/usr/share/mysql/(含 mysql.server)
- 命令工具:
/usr/bin/(mysqladmin, mysqldump 等)
- 啟動腳本:
/etc/init.d/mysql
二、系統管理
2.1 連接
mysql -uroot -pmysql
mysql -h 127.0.0.1 -uroot -pmysql
2.2 修改密碼
USE mysql;
UPDATE user SET password=PASSWORD('新密碼') WHERE user='root';
FLUSH PRIVILEGES;
2.3 用戶管理
# 創建
GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'root'@'localhost' IDENTIFIED BY 'mysql';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'mysql';
FLUSH PRIVILEGES;
# 刪除
DELETE FROM user WHERE user='xxx' AND host='localhost';
FLUSH PRIVILEGES;
DROP DATABASE dbname;
三、庫操作
SHOW DATABASES;
CREATE DATABASE test;
USE test;
SELECT DATABASE();
SHOW TABLES;
DROP DATABASE test;
四、表操作
4.1 創建/結構/刪除
CREATE TABLE MyClass (
id INT(4) PRIMARY KEY AUTO_INCREMENT,
name CHAR(20) NOT NULL,
sex INT(4) DEFAULT '0',
degree DOUBLE(16,2)
);
DESC MyClass;
DROP TABLE MyClass;
4.2 增刪改查
INSERT INTO MyClass VALUES (1,'Tom',96.45);
SELECT * FROM MyClass;
SELECT * FROM MyClass LIMIT 0,2;
DELETE FROM MyClass WHERE id=1;
UPDATE MyClass SET name='Mary' WHERE id=1;
4.3 結構變更
ALTER TABLE MyClass ADD passtest INT(4) DEFAULT '0';
RENAME TABLE MyClass TO YouClass;
UPDATE article SET content=CONCAT(' ', content); -- 批量前綴
UPDATE table SET col=REPLACE(col, 'old', 'new'); -- 批量替換
五、導入導出
5.1 導出
# 全庫
mysqldump -u root -p -A > all.sql
# 庫+數據
mysqldump -u root -p db > db.sql
# 單表
mysqldump -u root -p db tbl > tbl.sql
# 僅結構
mysqldump -u root -p db --add-drop-table > struct.sql
# 僅數據
mysqldump -u root -p -t db > data.sql
# 含事件/存儲過程
mysqldump -u root -p -E db > events.sql
mysqldump -u root -p -R db > routines.sql
5.2 導入
# 方式 1:SOURCE
mysql> CREATE DATABASE db;
mysql> USE db;
mysql> SOURCE /path/db.sql;
# 方式 2:重定向
mysql -u root -p < /path/db.sql