文章目录
一、数据库的基本概念
数据
- 描述事物的符号记录称为数据(Data)
- 包括数字,文字、图形、图像、声音、档案记录等
- 以"记录"形式按统一的格式进行存储
表
- 将不同的记录组织在一起,就形成了“表”
- 使用来存储具体数据的
数据库
- 数据库就是表的集合,是存储数据的仓库
- 以一定的组织方式存储的相互有关的数据
二、主流数据库介绍
SQL Server(微软公司产品)
- 面向所有主流平台
- 简单、易用
Oracle(甲骨文公司产品)
- 面向所有主流平台
- 安全、完善,操作复杂
DB2(IBM公司产品)
- 面向所有主流平台
- 大型、安全、完善
MySQL(甲骨文公司收购)
- 免费、开源、体积小
三、数据库存储类型
关系型数据库
- mysql(oracle公司),sql server(微软) ,access,oracle,db2(IBM公司),sybase等
关系型数据库特点
- 存储的是数值、字符、字符串、布尔值等等
非关系型数据库(统称为NOSQL)
- MongoDB
- redis(内存数据库又称为缓存数据库)K-V 这种形式 键值对 变量名-值
- memcache(内存数据库又称为缓存数据库)
非关系型数据库统特点
- 存储的是图片、视频、语音等。
四、MySQL数据库介绍
- MySQL是一款深受欢迎的开源关系型数据库
- Oracle旗下的产品
- 性能卓越、服务稳定
- 开源、无版权限制、成本低
- 多线程、多用户
- 基于C/S架构
- 安全可靠
五、MySQL商业版与社区版
- MySQL商业版是由MySQL AB公司负责开发和维护,需要付费。
- MySQL社区版是由分散在世界各地的MySQL开发者、爱好者一起开发与维护,可 以免费试用
两者区别
- 商业版组织管理与测试更加严格,稳定性好
- 商业版不遵守GPL
- 商业版可获得7*24小时的服务
六、MySQL产品阵营
第一阵营:5.0-5.1阵营,可说是早期产品的延续
第二阵营:5.4-5.7阵营,更好地整合了MySQL AB公司、社区、第三方公司开的存储引擎,提高了性能
第三阵营:6.0-7.1阵营,就是MySQL Cluster版本,为适应新时代集群对数据库的需求而开发
MySQL下载网址:https://www.mysql.com/downloads
七、MySQL5.7手工编译安装
- 安装环境包,创建程序用户
[root@localhost ~]# yum -y install ncurses ncurses-devel bison cmake
[root@localhost ~]# yum install gcc gcc-c++ -y
[root@localhost ~]# useradd -s /sbin/nologin mysql
- 通过官网下载mysql5.7和boost软件包(c++运行库)
- 解压2个软件包到opt目录下
[root@localhost ~]# tar zxvf boost_1_59_0.tar.gz -C /opt
[root@localhost ~]# tar zxvf mysql-5.7.17.tar.gz -C /opt/
- 解压完成后,进入解压目录/opt/mysql-5.7.20/中执行cmake
[root@localhost ~]# cd /opt/mysql-5.7.17/
[root@localhost mysql-5.7.17]# 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_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH-BLACKHOLE_STIRAGE_ENGINE=1 \
-DWITH-PERDSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/opt/boost_1_59_0/
-DWITH_SYSTEMD=1
- 完成后编译并安装
[root@localhost mysql-5.7.17]# make && make install
- 安装完成后修改mysql权限和my.cnf配置文件,先删除文件中原有内容,然后加入下面这段内容。
[root@localhost mysql-5.7.17]# chown -R mysql:mysql /usr/local/mysql/
[root@localhost mysql-5.7.17]# vim /etc/my.cnf
[client]
port=3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock
[mysql]
port=3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
character_set_server=utf8
pid-file=/usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
server-id=1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
- 修改完成后wq保存,设置环境变量
[root@localhost mysql-5.7.17]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile ##将MySQL写到本地环境配置中
[root@localhost mysql-5.7.17]# echo 'export PATH' >> /etc/profile
##设置全局环境配置
[root@localhost mysql-5.7.17]# source /etc/profile ##重新加载
- 初始化数据库
[root@localhost mysql-5.7.17]# cd /usr/local/mysql/
[root@localhost mysql]# bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
- 将MySQL服务配置文件复制到/usr/lib/systemd/system/下便于使用systemctl管理
[root@localhost mysql]# cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
[root@localhost mysql]# systemctl enable mysqld ###开机自启
[root@localhost mysql]# systemctl start mysqld.service ###启动服务
[root@localhost mysql]# netstat -natp | grep 3306
tcp6 0 0 :::3306 :::* LISTEN 2711/mysqld
- 设置mysql密码
[root@localhost mysql]# mysqladmin -u root -p password
Enter password: ##空格
New password: ##新密码
Confirm new password: ##确认密码
- 进入数据库
[root@localhost ~]# mysql -u root -p
Enter password: ##进入数据库,密码为之前设定的abc23
mysql>