www.mysql.com 官方網站
communlty server 社區版 免費的
顯示系統自帶的mysql包
yum list | grep mysql
安裝mysql:
yum install -y mysql-server mysql mysql-devel
看按的版本:
rpm -qi mysql-server
初始化:
service mysqld start /restart
設置密碼:
mysqladmin -u root password '密碼'
開機啓動:
chkconfig mysqld on
配置文件:/etc/my.cnf
數據文件:/var/lib/mysql/
日誌文件:/var/log/
mysald.log 日誌
遠程連接端口:tcp 3306
登陸MySQL mysql (-h 192.168.0.1) -u root -p
查看MySQL版本 SELECT VERSION();
查看系統日期 SELECT CURRENT_DATE;
同時查看系統版本和系統日期
SELECT VERSION(),CURRENT_DATE;
簡單計算 SELECT 4*4;
SELECT 4+4;
查看已有數據庫 SHOW DATABASES;
創建數據庫 CREARE DATABASES 數據庫名;
刪除數據庫 DROP DATABASES 數據庫名;
使用數據庫 USE 數據庫名;
SQL語言基礎
SELECT UPDATE DELETE INSERT WHERE
顯示錶格里的所有數據 SELECT *FROM 表名;
創建數據庫 CREARE DATABASE 數據庫名;
刪除數據庫 DROP DATABASE 數據庫名;
每一列是一個屬性;
每一行是一條記錄;
數據類型
integer(size),int(size),smallint(size),tinyint(size) 存儲整數數據
decima(size,d),numeric(size,d) 存儲浮點數數據
char(sie) 存儲固定長度字符串
varchar(size) 存儲可變長度字符串
date (yyyymmdd) 存儲日期
創建表格
CREARE TABLE 表名稱(列名稱1 數據類型,
列名稱2 數據類型,
列名稱3 數據類型
);
顯示所有表格 SHOW TABLES;
顯示錶的結構 DESCRIBE 表名;
刪除一個表格 DROP TABLE 表名;
重命名錶名
ALTER TABSE 表名 RENAME 新表名;
向表中添加一列
ALTER TABLE 表名 ADD 列名稱 列數據類型;
刪除表中一列
ALTER TABLE 表名 DROP COLUMN 列名;
修改一個列的數據類型
ALTER TABLE 表名 MODIFY 列名 列數據類型;
重命名一個列
ALTER TABLE 表名 CHANGE COLUMN 列名 新列名 新列數據類型;
向表格中插入一條記錄
INSERT INTO 表名 VALUES (值1,值2,....);
或
INSERT INTO 表名(列1,列2) VALUES (值1,值2);
從表格中查詢記錄
SELECT 列名稱1,列明稱2... FROM 表明稱;
或
SELECT * FROM 表明稱;
從表格中按條件查詢一條記錄
SELECT 列名稱 FROM 表名 WHERE 列 運算符 值;
從表格中刪除一條記錄
DELETE FROM 表名稱 WHERE 列 運算符 值;
或
DELERE * FROM 表名稱;
更新一條記錄
UPDATE 表名稱 SET 列名稱=新值 WHERE 列=值;
刪除返回結果重複項
SELECT DISTINCT 列名稱 FROM 表名稱;
where條件中使用邏輯組合
SELECT *FROM 表名稱 WHERE 條件1 AND 條件2;
SELECT *FROM 表名稱 WHERE 條件1 OR 條件2;
對查詢結果按指定列進行排序
SELECT * FROM 表名稱 ORDER BY 列名稱;
SELECT * FROM 表名稱 ORDER BY 列名稱 DESC;
MYSQL用戶管理
默認只有一個root用戶
默認保存在user表中
創建新用戶:
CREATE USER 用戶名 IDENTIFIED BY '密碼';
直接創建後不能直接登陸,因爲沒有設置權限。
刪除用戶:
DROP USER 用戶名;
重命名用戶名:
RENAME USER 原用戶名 TO 新用戶名;
修改當前用戶密碼:
SET PASSWORD=PASSWORD('新密碼');
修改指定用戶密碼:
SET PASSWORD FOR 用戶名=PASSWORD('新密碼');
mysql 權限系統
權限控制兩個階段
1 檢查用戶是否能夠鏈接;
2 檢查用戶是否具有所有執行動作的權限;
授予一個用戶權限:
GRANT ALL PRIVILEGES ON 層級to 用戶名@主機 IDENTIFIED BY 密碼;
eg:
授予nash_su用戶全局級全部權限
GRANT ALL PRIVILEGES ON *.* to 'nash_su'@'%'IDENTIFIED BY 'linuxcase';
授予nash_su用戶針對linuxcast數據庫全部權限。
GRANT ALL PRIVILEGES ON linuxcase.* to 'nash_su'@'%'IDENTIFIED BY 'linuxcase';
撤銷一個用戶權限:
REVOKE ALL PRIVILEGES FROM 用戶名;
%主機 %是不限制是哪個主機的訪問;
可以使ip地址或者主機名;
使用“*”通配符
可以指定網段;
可以設lockhost;本地連接;
root遠程登陸也需要上邊的提權;不建議打開;
MYSQL簡單的備份和恢復
最爲廣泛的備份恢復工具mysqldump
備份一個指定數據庫:
mysqldump -u root -p 數據庫名稱 > 備份文件.sql
備份出來的是純文本的sql文件,可以修改後作爲其他數據庫數據使用。
從備份的SQL文件恢復一個指定數據庫:
mysqldump -u root -p 數據庫名稱 < 備份文件.sql
數據庫編碼設置
編碼主要影響以下兩個方面:
1、數據庫保存相同內容所佔用的空間大小;
2、數據庫與客戶端通信;
顯示系統的編碼設置:
SHOW CHARACTER SET;
SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%';
創建數據庫的時候可以使用命令指定編碼:
CREATE DATABASEA linuxcase
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_cl;
也可以修改一個數據庫的編碼:
ALTER DATABASE linuxcase CHARACTER SET utf8 COLLATEU utf8_general_cl;
設置默認編碼
/etc/my.cnf文件
{client}
default-character-set=utf8
{mysql}
default-character-set=utf8
{mysqld}
default-character-set=utf8
collation-server=utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server=utf8
修改之後重啓MySQL服務,通過下邊的命令查看默認編碼:
SHOW VARIABLES LIKE 'character_set%';