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’; //配置权限;