# 本地 mysql -u root -p # 遠程 mysql -h 110.110.110.110 -u root -p123 # 退出 exit
# 首次設置 mysqladmin -u root password 'ab12' # 修改密碼 mysqladmin -u root -p'ab12' password 'djg345'
-- 通配符主機(高風險) GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'test1'@'%' IDENTIFIED BY 'abc'; -- 本地限制(推薦) 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 '';
CREATE DATABASE xhkdb;
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON xhkdb.* TO 'xhkdb'@'localhost' IDENTIFIED BY 'pass';
SET PASSWORD FOR 'xhkdb'@'localhost' = PASSWORD('pass');
# 1. 修改 my.cnf
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
# 2. 連接串指定
# Java: jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=utf8
# PHP: header("Content-Type: text/html; charset=utf8");
# C: mysql_set_character_set(mysql, "utf8");
DROP DATABASE IF EXISTS db_name; -- 不報錯,產生警告
USE db1; SELECT COUNT(*) FROM mytable; USE db2; SELECT COUNT(*) FROM mytable; -- 跨庫 JOIN USE db1; SELECT a.author_name, e.editor_name FROM author a, db2.editor e WHERE a.editor_id = e.editor_id;
SELECT VERSION(); -- 版本 SELECT NOW(); -- 當前時間 SELECT DAYOFMONTH(CURRENT_DATE); -- 日 SELECT MONTH(CURRENT_DATE); -- 月 SELECT YEAR(CURRENT_DATE); -- 年 SELECT 'welcome to my blog'; -- 字符串 SELECT ((4*4)/10)+25; -- 計算器 SELECT CONCAT(f_name,' ',l_name) AS Name FROM employee_data WHERE title='Marketing Executive';
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)
);
DESC MyClass; SHOW COLUMNS FROM MyClass;
Key 值:空(無索引) < PRI(主鍵) < UNI(唯一) < MUL(非唯一/復合)
DROP TABLE IF EXISTS t; 防報錯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;
ALTER TABLE MyClass ADD passtest INT(4) DEFAULT '0'; ALTER TABLE employee ADD INDEX emp_name (name); ALTER TABLE employee ADD PRIMARY KEY (id); ALTER TABLE employee ADD UNIQUE emp_name2 (cardnumber); ALTER TABLE employee DROP INDEX emp_name; ALTER TABLE t1 CHANGE a b INTEGER; ALTER TABLE t1 CHANGE b b BIGINT NOT NULL; ALTER TABLE t1 MODIFY b BIGINT NOT NULL; ALTER TABLE t1 DROP COLUMN b; RENAME TABLE MyClass TO YouClass;
# 全庫 mysqldump -u root -p123456 db > out.sql # 單表 mysqldump -u root -p db tbl > out.sql # 僅結構(含 DROP TABLE) mysqldump -u root -p -d --add-drop-table db > struct.sql # 指定字符集 mysqldump -u root -p --default-character-set=latin1 --set-charset=gbk --skip-opt db > out.sql
cd /home/data/mysql mysqldump -u root -p --opt aaa > back_aaa
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 -u root -p < c:\school.sql # 或 mysql> SOURCE c:\school.sql;
本手冊整合了 MySQL 從安裝配置到生產運維的核心命令集。重點掌握:**字符集三處一致(庫/表/連接)、權限模型 User@Host、mysqldump 熱備份參數、ALTER TABLE 線上限制**。實戰中根據 5.6/5.7/8.0 版本差異微調語法。