1》数据库简介:简单的说数据库(database)就是一个存储数据的仓库,它将数据按照特定的规律存储到磁盘上,通过数据库管理系统,能够有效的管理存储在数据库中 的数据;
SQL语言: DBMS是通过SQL语言来进行数据库管理的。SQL语言是一种查询和设计语言,主要用于存储数据,查询数据 更新和管理关系数据库;
SQL语言总共分为三个部分
DDL(Data Definition Language)语句,用于定义数据库表、试图索引和触发器等等
create
alter
drop
rename
truncate
comment
DML(Data Maniplulation Language)语句用于插入数据,查询数据、更新数据和删除数据
select
insert
update
delete
DCL(Data Control Language)语句,用于控制用户的访问权限
grant
revoke
常见的数据库系统有哪些:
1.甲骨文Oracle
2.IBM的DB2
3.Sybase
4.微软Access和SQL Server
5.开源PostgreSQL
6.开源Mysql
Mysql特性:
1.跨平台,支持多种操作系统,AIX FreeBSD HP-UX Linux MacOS NovellNetware OpenBSD Solaris windows 等等
2.支持多线程,可以充分的利用硬件资源(CPU资源)
3.支持大型数据库,可以处理拥有上千万条大型数据库。
4.支持多种插件式存储引擎
mysql-server-5.6
1)InnoDB现在可以限制大量表打开的时候内存占用过多的问题(比如这里提到的)(第三方已有补丁)
2)InnoDB性能加强。如分拆kernel mutex;flush操作从主线程分离;多个perge线程;大内存优化等
3)InnoDB死锁信息可以记录到 error 日志,方便分析
4)MySQL5.6支持延时复制,可以让slave跟master之间控制一个时间间隔,方便特殊情况下的数据恢复。
5)表分区功能增强
6)MySQL行级复制功能加强,可以降低磁盘、内存、网络等资源开销(只记录能确定行记录的字段即可)
7)Binlog实现 crash-safe
8)复制事件采用crc32校验,增强master/slave 复制数据一致性
9)新增 log_bin_basename (以前variables里面没有binlog位置信息,对数据库的监管很不方便)
2》编译安装MYSQL:
1>安装依赖包:
yum install gcc gcc-c++ ncurses-devel perl cmake bison
2>创建用户:
# groupadd mysql # useradd mysql –g mysql –s /sbin/nologin #mkdir -p /usr/local/mysql //Mysql的安装目录 #mkdir -p /data/mysqldb //Mysql数据目录 #mkdir -p /data/mysqldb/binlog //创建BINLOG日志目录 #mkdir -p /data/mysqldb/log //创建MYSQL 日常LOG目录
3>安装Mysql:
#tar -xvf mysql-5.6.31.tar.gz #cd mysql-5.6.31 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ -DSYSCONFDIR=/etc \ -DDEFAULT_CHARSET=gbk \ -DDEFAULT_COLLATION=gbk_chinese_ci \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_FEDERATED_STORAGE_ENGINE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DMYSQL_DATADIR=/data/mysqldb \ -DMYSQL_TCP_PORT=3306 \
***注意:重新运行配置,需要删除CMakeCache.txt文件
==========编译解析:
#cmake 编译命令
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql 设置mysql安装目录
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock 设置监听套接字路径,这必须是一个绝对路径名。默认为/tmp/mysql.sock
-DSYSCONFDIR=/etc 配置文件放在/etc/下面
-DDEFAULT_CHARSET=gbk 设置服务器的字符集。
缺省情况下,MySQL使用latin1的(CP1252西欧)字符集。cmake/character_sets.cmake文件包含允许的字符集名称列 表。
-DDEFAULT_COLLATION=gbk_chinese_ci 设置服务器的排序规则。
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
存储引擎选项:
MyISAM,MERGE,MEMORY,和CSV引擎是默认编译到服务器中,并不需要明确地安装。
静态编译一个存储引擎到服务器,使用-DWITH_engine_STORAGE_ENGINE= 1
可用的存储引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEM) (Performance Schema)
-DMYSQL_DATADIR=/data/mysqldb 设置mysql数据库文件目录
-DMYSQL_TCP_PORT=3306 设置mysql服务器监听端口,默认为3306
-DENABLE_DOWNLOADS=1
是否要下载可选的文件。例如,启用此选项(设置为1),cmake将下载谷歌所使用的测试套件运行单元测试
4> make && make isntall
5>初始化:
给Mysql安装目录进行授权
# chown mysql:mysql /usr/local/mysql -R
给Mysql数据存储目录进行授权
# chown mysql:mysql /data/mysqldb -R
给Mysl日志目录进行授权
#chown mysql:mysql /data/mysqldb/binlog/
#chown mysql:mysql /data/mysqldb/log/
开始初始化:
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldb
复制Mysql服务启动脚本
# cp /usr/local/mysql/support-files/mysql.server /mysql.server /etc/init.d/mysqld
# chmod 755 /etc/init.d/mysqld
修改mysql服务启动脚本 (多实例才需要)
# vim /etc/init.d/mysqld
basedir=/usr/local/mysql
datadir=/data/mysqldb
6>配置文件
以后在企业里面没有现成my.cnf ,如果编译安装后,没有在/etc/找到my.cnf 那么请到原始的编译目录,也就是解压包的目录里面找到support-files这个目 录,将my-default.cnf 拷贝到/etc/my.cnf;
# cd mysql-5.6.31
#cp support-files/my-default.cnf /etc/my.cnf
=========配置文件详解:
# vim /etc/my.cnf
[client]
port = 3306 //客户端所连接的端口号
socket = /tmp/mysql.sock //客户端所连接的sock文件存放位置
[mysqld]
#base
port = 3306 //mysql的默认端口号,可以修改
user = mysql //mysql用户指定
socket = /tmp/mysql.sock //连接所使用的端口号
pid-file = /tmp/mysql.pid //进程运行的主PID文件
basedir = /usr/local/mysql //Mysql安装目录
datadir = /data/mysqldb //Mysql数据目录
tmpdir = /opt/mysqltmp //Mysql临时表目录
open_files_limit = 10240 //打开文件句柄的数量
explicit_defaults_for_timestamp
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_