初始MySQL数据库
cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ -DSYSCONFDIR=/etc \ -DSYSTEMD_PID_DIR=/usr/local/mysql \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS=all \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DWITH_BOOST=boost \ -DWITH_SYSTEMD=1
make -j 4 && make install
修改etc/my.cnf的配置文件,重写配置
#客户端设置 [client] port = 3306 socket=/usr/local/mysql/mysql.sock #服务端设置 [mysql] port = 3306 #开启自动补全功能 socket = /usr/local/mysql/mysql.sock auto-rehash #服务全局设置 [mysqld] #设置管理用户 user = mysql #指定数据库的安装目录 basedir=/usr/local/mysql #指定数据库文件的存储路径 datadir=/usr/local/mysql/data #指定端口 port = 3306 #设置服务器字符集编码格式为utf8 character-set-server=utf8 #指定pid 进程文件路径 pid-file = /usr/local/mysql/mysqld.pid #指定数据库连接文件 socket=/usr/local/mysql/mysql.sock #设置监听地址,0.0.0.0代表允许所有,如允许多个IP需空格隔开 bind-address = 0.0.0.0 #禁止域名解析,包括主机名,所以授权的时候要使用 IP 地址 skip-name-resolve #设置mysql的最大连接数 max_connections=4096 #指定默认存储引擎 default-storage-engine=INNODB #设置在网络传输中一次消息传输量的最大值。系统默认值为 1MB,最大值是 1GB,必须设置 1024 的倍数。 max_allowed_packet=32M #指定服务ID号 server-id = 1
将mysql安装目录和配置文件的属主和属组更改为mysql用户
把mysqsl的bin和lib目录添加到path路径中,让系统能识别
初始化数据库
./mysqld \ --initialize-insecure \ --user=mysql \ --basedir=/usr/local/mysql \ --datadir=/usr/local/mysql/data
重新刷新服务,启动MySQL服务
- 数据:(Data) 描述事物的符号记录 包括数字、文字、图形、图像、声音、档案记录等 以“记录”形式按统一的格式进行存储
- 表 将不同的记录组织在一起 用来存储具体数据
- 数据库 表的集合,是存储数据的仓库 以一定的组织方式存储的相互有关的数据集合 是按数据结构来组织,存储和管理数据的仓库
- 数据库管理系统(DBMS) 是管理数据库的系统软件,其包括数据库及用于访问、管理数据库的接口系统
- 数据库系统(DBS) 是一个人机系统,由硬件、os、数据库、dbms、应用软件和数据库用户组成
- 关系数据库系统是基于关系模型的数据库系统
- 关系模型的数据结构使用简单易懂的二维数据表
- 关系模型可用简单的“实体-关系(E-R)图来表示
对象: 库--> 表--> 二维表格形式的结构化数据
列(字段)用来描述对象的一个属性
行(记录)用来描述一个对象的信息
DDL:数据定义语言,用于创建数据库对象,如库、表、索引等
DML:数据操纵语言,用于对表中的数据进行管理
DQL:数据查询语言,用于从数据表中查找符合条件的数据记录
DCL:数据控制语言,用于设置或者更改数据库用户或角色权限
int :整型 无符号[0,2^32-1],有符号[-2^31,2^31-1] float :单精度浮点 4字节32位 double :双精度浮点 8字节64位 char :固定长度的字符类型 varchar :可变长度的字符类型 text :文本 image :图片 decimal(5,2) :5个有效长度数字,小数点后面有2位
MySQL基础操作
创建新的库
create database 库名;
创建新的表
create table 表名(字段1 数据类型,字段2 数据类型,...[,primary key (字段)]);
添加表记录
insert into 表名(字段1,字段2,...) values (字段1的值,字段2的值,....);
SELECT 字段名1,字段名2[,...] FROM 表名 [WHERE 条件表达式];
#查询表的数据记录
alter table 旧表名 rename 新表名
#修改表名
alter table 表名 add 新字段 数据类型 约束属性
#添加新字段
alter table 表名 change 旧字段 新字段 数据类型 约束属性
#修改字段
alter table 表名 drop 字段名
#删除字段
#修改字段
删除
alter table 表名 drop 字段名
#删除字段
drop table [库名.] 表名;
#删除表名
primary key 主键约束 #字段的值不能重复,不能为null,一个表只能有一个主键 umique key 唯一性约束 #字段的值不能重复,但能为null,一个表可以有多个唯一建 not null 非空约束 #字段的值不能为null default 默认值约束 #字段的值如果没有设置则使用默认值自动填充 auto_increment 自增约束 #字段的值如果没有设置默认会从1开始每次自动递增1,要求自增字段必须为主键 foreign key 外键约束 #保证外键表与主键表相关联数据的完整性和一致性 int (N)zerofill 零填充
create table 新表 like 旧表 #克隆表结构 insert into 新表 (select * from 旧表) #克隆表数据,可以实现表结构和表数据与旧表一致 create table 新表 (select * from 旧表) #新表和旧表的表内容一致,但是新表和旧表的表结构不一定一致
delete from 表名
#delete 是一条一条的删除记录,效率较慢,自增长字段仍然会按照清空表前的最大记录继续自增
truncate table 表名
#直接重建表,清空表效率更高;自增长字段会重新从1开始增长