標籤:mysql 程式 設定檔 安全性 local
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:資料定義語言 (Data Definition Language),用來建立表,索引等基本組件的語句
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’; //配置許可權;
MySql安裝與基本使用;