mysql的安裝:
下載mysql-5.5.54-linux2.6-x86_64.tar.gz
# tar -xf mysql-5.5.54-linux2.6-x86_64.tar.gz
# ln -sv mysql-5.5.54-linux2.6-x86_64 /usr/local/mysql
爲保障安全性,創建mysql專屬用戶,不需要登錄bash
# useradd mysql -b /sbin/nologin
使用程序包自帶的初始化腳本,初始化mysql
# scripts/mysql_install_db --datadir=/mysql-date/mydate/ --user=mysql
複製自帶的服務腳本到系統
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
在包中自帶了3種配置文件模板:my-large.cnf,my-medium.cnf,my-small.cnf,分別對應不同級別的mysql,根據自行需求進行復制;
# cp my-large.cnf /etc/my.cnf
由於在初始化時重新指定了datadir的位置,所以在配置文件中需要重定義此項;
# vim /etc/my.cnf
<< datadir=/mysql-date/mydate
# vim /etc/profile.d/mysqld.sh
<< export PATH=/usr/local/mysql/bin:$PATH
在啓動服務之前要記得更改mysql相關目錄的屬主和屬組;
# chown -R root:mysql /usr/local/mysql
# chowm -R mysql:mysql /mysql-date/mydate //注意數據目錄的所屬問題,如果不更改此項,會提示無法創建pid文件,導致無法啓動服務;
啓動並測試;
基礎操作:
DCL:數據控制語言,實現權限的賦予與收回
GRANT,REVOKE
DDL:數據定義語言,用來創建表,索引等基本組件的語句
CREATE,DROP,ALTER
DML:數據操作語言,負責增刪查改等操作
INSERT,DELETE,SELECT,UPDATE
MYSQL的客戶端使用:
在mysql中,關鍵字要使用大寫,由此來區分關鍵字與內容,並且每行以;結尾,有的時候,尤其是改開始接觸mysql時經常會因爲忘記打;而進入續航模式,此時可以輸入;來退出續航;
配置修改mysql的啓動密碼:
> SET PASSWORD FOR ‘root’@‘localhost’= PASSWORD(‘密碼’);
基礎操作命令:
SHOW DATABASES; //查看有權限的庫,即目錄;
USE 庫名; //選擇默認要進行操作的庫;
SHOW TABLES; //查看默認操作庫中的表單;
DESC 表單名; //查看錶單的結構;
SELECT:選定操作,先進行選擇,再進行後續操作;
SELECT User,Host,Password FROM user; //選擇user表單裏的User,Host,Password字段並查看;
可以配合WHERE使用來進行條件操作;
CREATE:創建命令,可以創建DATABASE和TABLE;
CREATE DATABASE 庫名; //創建庫;
CREATE TABLE 表名 (字段 類型,字段2 類型2,字段3 類型3......);
常用的類型:
字符型:
char():固定長度,不區分大小寫;
varchar():非固定長度,不區分大小寫;
binary():固定長度,區分大小寫;
varbinary():非固定長度,區分大小寫;
text():用於大段文本,不區分大小寫;
數字型:
整型:
tinyint:微整形,一個字節,範圍:-128--+127;
smallint:小整型,二個字節,範圍:-32768--+32767;
mediumint:中整型,三個字節;
int:整型,四個字節;
bigint:大整型,八個字節;
浮點型:
float:單精度浮點型;
double:雙精度浮點型;
時間型:
date:日期;
time:時間;
datetime:日期時間;
timestamp:時間戳;
其他:
ENUM:枚舉型,多種選一,單選;
SET:集合型,多種選多,多選;
字段修飾符:
NULL:表示可以爲空;
NOT NULL:不可以爲空;
UNSIGNED:正數;
DEFAULT:默認值;
AUTO_INCREMENT:自動增長,不能與默認值一起使用;
PRIMARY KEY:主鍵;
UNIQUE KEY:唯一鍵;
例:mysql> CREATE TABLE tb_name (Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,Name char(20) NOT NULL,Age tinyint NOT NULL,Gender ENUM('F','M') DEFAULT'F' NOT NULL);
INSERT:插入,編輯表數據;
格式:INSERT INTO 表名 (字段1,字段2,字段3,......) VALUE (值1,值2,值3,......),(值1,值2,值3,......)....;
例:mysql> INSERT INTO tb_name (Name,Age,Gender) VALUE ('apple',18,'M'),('bider',16,'M'),('cat',17,'F');
WHERE:用於條件匹配操作,匹配某個字段進行條件測試;
WHERE可以進行邏輯測試;
SELECT Age FROM tb_name WHERE Age < 18;
LIKE:進行字符串比較測試;
SELECT Name FROM tb_name WHERE Name LIKE ‘%t’;
%:匹配任意長度的任意字符;
_:匹配任意單個字符;
UPDATE:修改操作;
UPDATE 表名 SET 字段 = 值 WHERE 字段 條件; //此處的條件根據要更改的字段類型變化如果是字符型則使用LIKE,其他類型則不用;
mysql> SHOW CREATE TABLE text2; //顯示創建表text2時,用的語句;
mysql> SHOW ENGINES; //查看數據庫支持的存儲引擎;
mysql> SHOW TABLE STATUS\G //查看每個表的狀態信息;
mysql> SHOW TABLE STATUS LIKE '%S' //查看以S結尾的表的狀態信息;
字符集:實現字節編碼到漢字的映射;
GBK
GB2312
GB18030
UTF-8
mysql> SHOW CHARACTER SET; //查看字符集;
每種字符集可以能存在多種不同的排序規則:
mysql> SHOW COLLATION; //查看排序規則;
GRANT ALL PRIVILEGES ON db_name.tb_name TO ‘username’@‘hostname’ IDENTIFIED BY ‘your_password’; //配置權限;