什么是数据库: 存放数据的仓库
RDBMS-->(Relational Database Management System) 关系型数据库管理系统
DBMS--->(Database Managerment System) 数据库管理系统

数据库分类:
1. 关系型数据库
2. 非关系型数据库
常用关系型数据库:
Oracle,MySQL,MariaDB,SQL Server,Access,PostgreSQL,DB2,Informix,Sybase
PostgreSQL 自由的对象-关系数据库服务器(数据库管理系统),有非常活跃的开发队伍(黑客支持)
常用非关系型数据库:
Memcache,Redis,MongoDB,Cassandra
其他不常用非关系型数据库:
HBase、MemacheDB、BerkeleyDB、Tokyo Cabinet

##################################################
##################################################
##################################################
MySQL

MySQL是一种关系型数据库管理系统,
由瑞典MySQL AB公司开发,目前属于Oracle公司

特点:
1. mysql性能卓越,服务稳定,很少出现异常宕机
2. mysql开源免费,无版权制约,自主性及使用成本低
3. 产品耦合度,mysql支持多种操作系统,支持多开发语言,特别是php
4. 技术积累,庞大的活跃的社区,
5. 软件体积小,安装简单,易于维护
URL:http://www.mysql.com/

MySQL采用双授权政策
社区版和商业版
又被细分为Alpha,Beta,RC,GA版本
GA为正式版

社区版,企业版区别--->
1. 价格, 社区版免费,企业版高额费用
2. 技术, 企业版具有MySQL企业级服务器,系统监控工具,经过严格的测试认证
社区版没有那么严格
3. 服务, 社区版不提供技术支持,企业版反之
4. 协议, 商业版不支持GPL协议

产品线路:
1. 5.0.XX - 5.1.XX 系列
这条产品线继续完善改进用户体验和性能,
同时增加新功能,是mysql早期产品的延续,
如rhel6自带的mysql
2. 5.4.XX - 5.7.XX 系列
mysql社区和第三方公司percona整合的,
吸收新的算法和存储引擎
3. 6.0.XX - 7.X.XX 系列
主要是为了更好的推广MySQL Cluster版本,
提供Cluster版本的性能和稳定性,
这个版本比较少公司用,原因是出来太晚了

MySQL安装:
Way 1: rpm/yum安装
#使用二进制方式安装,开发商针对不同的操作系统和环境穿件的rpm包,通过下载直接安装
rpm -ivh *.rpm
yum -y install mysql-server
# mysql 为客户端登录程序
# mysql-server 数据库服务器

Way 2: 源码编译安装
tar ---> cmake ---> make ---> make install

Way 3: 批量部署, src.rpm 通过spec文件
# 没研究过

源码编译安装 MySQL 5.5.32
# 对于不通版本源码编译方法不一
# 对于mysql 5.1 系列 不需要使用cmake
# ./configure --> make --> make install
1. 安装编译工具 cmake
yum -y install cmake gcc gcc-c++
# cmake 依赖c语言 需安装Linux下的C编译工具 gcc gcc-g++/C++

2. 下载 MySQL
# 去官网下载
wget http://cdn.mysql.com/archives/mysql-5.5/mysql-5.5.32.tar.gz
解压到指定目录
tar -zxf mysql-5.5.32.tar.gz -C /usr/local/src
3. 解决以来
yum -y install cmake ncurses-devel #用于终端操作的开发包
4. 创建MySQL用户
useradd -u 8001 -M -s /sbin/nologin mysql
# -u 8001 指定UID, -M 不创建宿主目录, -s /sbin/nologin 禁止登录
5. 创建数据库存放目录
mkdir /data # 便于挂载,
# 推荐将数据库数据文件与系统分盘或分区存放,避免IO影响
6. 编译
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWIHT_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/data -DMYSQL_USER=mysql
参数解释:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql #指定安装目录为/usr/local/mysql
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock #指定套接字文件为mysql.sock 通信文件
-DDEFAULT_CHARSET=utf8 #指定字符集为utf8
-DDEFAULT_COLLATION=utf8_general_ci #指定字符校对
-DMYSQL_EXTRA_CHARSETS=all #扩展字符支持 默认all
-DWITH_storage_STORAGE_ENGINE=1 #开启存储storage引擎支持
# storage=MyISAM,Innobase,MEMORY,CVS等
-DWITH_READLINE=1 #开启READLINE模式
-DWITH_LOCAL_INFILE=1 #启动加载本地数据引擎
-DMYSQL_DATADIR=/data #指定数据存储目录
-DMYSQL_USE=mysql #指定运行用户
扩展:
-DWITH_PARTITION_STORAGE_ENGINE=1 #支持分区表
-DINSTALL_LIBDIR=dir_name #指定库文件安装目录
-DSYSCONFDIR=dir_name #指定默认配置文件存放路径
# 默认配置文件为my.cnf
7. 安装
make -j 4 && make install # -j 4 指定4个线程完成本操作,不指定默认为1
8. 授权用户
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /data
chmod 1777 /tmp
9. 创建配置文件
cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf
10. 设置环境变量 #为了以后便于敲命令,不用带路径了
echo 'PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
source $! # $! = 上一条指令最后一个参数
11. 创建启动脚本
拷贝启动脚本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
添加脚本可执行权限
chmod + x $!
设置脚本mysql安装目录和数据目录
sed -i "s%^basedir=%basedir=/usr/local/mysql%g" /etc/init.d/mysqld
sed -i "s%^datadir=%datadir=/data%g" /etc/init.d/mysqld
添加脚本chkconfig
chkconfig --add mysqld
添加开机启动
chkconfig mysqld on
12. 初始化数据库
在运行数据库之前,需要初始化一下数据
chmod +x /usr/local/mysql/scripts/mysql_install_db
/usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf
--basedir=/usr/local/mysql --datadir=/data --user=mysql

# 如果在初始化之前运行了数据库,会报错如下:
[root@xiaogan63 ~]# service mysqld start
Starting MySQL. ERROR! The server quit without updating PID file (/data/xiaogan63.cn.pid).
#
[root@xiaogan63 ~]# /usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf--basedir=/usr/local/mysql --datadir=/data --user=mysql

TAL ERROR: Could not find ./bin/my_print_defaults

If you compiled from source, you need to run 'make install' to
copy the software into the correct location ready for operation.

If you are using a binary release, you must either be at the top
level of the extracted archive, or pass the --basedir option
pointing to that location.
# 没有设置环境变量

[root@xiaogan63 ~]# /usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf--basedir=/usr/local/mysql --datadir=/data --user=mysql
Installing MySQL system tables...
OK
Filling help tables...
OK

成功!

因为启动脚本错了
sed -i 命令错误替换了字符串导致,mysqld服务无法启动
错误如下:
[root@xiaogan63 ~]# service mysqld start
Starting MySQL. ERROR! The server quit without updating PID file (/data/xiaogan63.cn.pid)
重新拷贝配置文件,并修改如下:
sed -i "s%^basedir=%basedir=/usr/local/mysql%g" /etc/init.d/mysqld
sed -i "s%^datadir=%datadir=/data%g" /etc/init.d/mysqld
替换字符串少了一个符号 ^

[root@xiaogan63 ~]# grep "^basedir=" /etc/init.d/mysqld -R --color
basedir=/usr/local/mysql
[root@xiaogan63 ~]# grep "^datadir=" /etc/init.d/mysqld -R --color
datadir=/data
[root@xiaogan63 ~]#
[root@xiaogan63 ~]# grep "basedir=" /etc/init.d/mysqld -R --color
# basedir=<path-to-mysql-installation-directory>
basedir=/usr/local/mysql
basedir=/usr/local/mysql
# *not* set inside of the --basedir= handler.)
--basedir=*) basedir=`echo "$arg" | sed -e 's/^[^=]*=//'`
[root@xiaogan63 ~]# grep "datadir=" /etc/init.d/mysqld -R --color
datadir=/data
datadir=/data
datadir="$basedir/data"
datadir="$basedir/data"
--datadir=*) datadir=`echo "$arg" | sed -e 's/^[^=]*=//'`
$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1 &
[root@xiaogan63 ~]#

13. 初始化安全配置
mysql_secure_installation #安全初始化配置

# 如果没有运行mysqld服务,则会报错如下:
[root@xiaogan63 ~]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MySQL to secure it, we'll need the current
password for the root user. If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
需将服务启动即可

Enter current password for root (enter for none): #直接回车即可
OK, successfully used password, moving on...

Set root password? [Y/n] y # 设置root密码
# 输入两次密码
... Success!
Remove anonymous users? [Y/n] y # 移除匿名用户
... Success!
Disallow root login remotely? [Y/n] y #禁止root远程登录
... Success!
Remove test database and access to it? [Y/n] y #删除测试数据库
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reload privilege tables now? [Y/n] y # 重新加载授权表
... Success!
All done! If you've completed all of the above steps, your MySQL
installation should now be secure.

14. 安全优化小配置:
用户安装:
mysql> select user,host from mysql.user;
# 只留下root用户的localhost和127.0.0.1;
mysql> delete from mysql.user where user='';

我们还可以删除所有用户,并重新创建一个超级管理员,操作如下:
删除所有用户
mysql> delete from mysql.user;
授权所有权限给system@'localhost'
mysql> grant all privileges on *.* to system@'localhost' identified by
'yourpasswd' with grant option;
使配置生效
mysql> flush privileges;
查看
mysql> select user,host from mysql.user;

2-14 MySQL初步认识,及CentOS6.8环境,源码方式安装MySQL的更多相关文章

  1. Centos6 系统下源码方式安装Mysql 记录

    在运维工作中经常部署各种运维环境,涉及mysql数据库的安装也是时常需要的.mysql数据库安装可以选择yum在线安装,但是这种安装的mysql一般是系统自带的,版本方面可能跟需求不太匹配. #### ...

  2. centos6.5环境源码编译安装mysql5.6.34

    centos6.5环境源码编译安装mysql5.6.34 源码下载地址http://dev.mysql.com/downloads/mysql/5.6.html#downloads 选择Generic ...

  3. CentOS 6.6 下源码编译安装MySQL 5.7.5

    版权声明:转自:http://www.linuxidc.com/Linux/2015-08/121667.htm 说明:CentOS 6.6 下源码编译安装MySQL 5.7.5 1. 安装相关工具# ...

  4. CentOS源码编译安装MySQL 5.5.15

    CentOS源码编译安装MySQL 5.5.15   文章目录 [隐藏] 安装编译工具 下载源码 安装cmake和bison 编译安装MySQL 一些相关设置 安装编译工具 yum install g ...

  5. Shell脚本一键部署——源码编译安装MySQL及自动补全工具

    Shell脚本一键部署--源码编译安装MySQL及自动补全工具 编译安装MySQL 1.软件包 Mysql安装包 将安装包拖至/opt目录下,编辑一个脚本文件,将以下内容复制进去,然后source或者 ...

  6. 总结源码编译安装mysql

    最近在学习源码编译安装LAMP.LNMP时,一直遇到一个难题,就是就是mysql无论怎么源码编译安装,到最后启动服务都提示"Starting MySQL.The server quit wi ...

  7. 源码编译安装 MySQL 5.5.x 实践

    1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. # wget ht ...

  8. 源码编译安装 MySQL 5.5.x 实践(转)

    1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. # wget ht ...

  9. CentOS 7 源码编译安装MySQL 5.7.14

    一.添加用户和组 1. 进入root: su 2. 添加组: groupadd mysql 3. 添加用户: useradd -r -g mysql -s /bin/false mysql 二.安装 ...

随机推荐

  1. MySQL实现根据当前ID读取上一条和下一条记录

    以下为MySQL语句演示: SELECT * FROM t_news AS n ORDER BY n.`News_ID` 当前ID为4,读取上一条记录: ,; 当前ID为4,读取下一条记录: ,; 其 ...

  2. python bug the C library strftime function.

    import timedef date2mktime(date, format_='%Y-%m-%d'): return int(time.mktime(time.strptime(date, for ...

  3. jQuery 的attr()方法

    在JS中设置节点的属性与属性值用到setAttribute(),获得节点的属性与属性值用到getAttribute(),而在jquery中,用一个attr()就可以全部搞定了,赞一个先 ^^ jque ...

  4. redhat 7.2 内网安装docker

    本文介绍在内网环境下如果通过网络代理映射来完成docekr的安装,首先在能上网的windows机器上安装squid,并启动,本实例中windows机器IP为 192.168.192.101 ,squi ...

  5. SQL Server查看库、表占用空间大小

    转自:https://blog.csdn.net/yenange/article/details/50493580 查询数据文件与日志文件占用情况,查看数据大小,查看库大小 1. 查看数据文件占用(权 ...

  6. 离线安装Chrome 插件

    说明: Postman不多介绍,是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件.本文主要介绍下安装过程. 本文使用的是解压文件直接进行安装.是比较快速有效的安装方式 第一步:把下载后 ...

  7. Flask系列(三)蓝图、基于DButils实现数据库连接池、上下文管理

    知识点回顾 1.子类继承父类的三种方式 class Dog(Animal): #子类 派生类 def __init__(self,name,breed, life_value,aggr): # Ani ...

  8. vue学习之一vue初识

    一.vue.js是什么 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层 ...

  9. 3.4 Templates -- Displaying A List of Items(展示一个集合)

    一. 概述 1. example 如果你需要遍历一个对象集合,使用Handlebars的{{#each}}. <ul> {{#each people key="id" ...

  10. linux改变apt-get安装源

    最近自己装了个ubuntu kylin 在使用的过程中发现,系统的apt-get 的源有毛病,总是安装不了软件. 感觉应该是传说中的墙的原因,所以准备换到阿里云的源. 下面是步骤: 1.复制原文件备份 ...