什么是数据库: 存放数据的仓库
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. 一个不需要Log4Net的写日志的简单方法

    有些项目写日志时会选择大名鼎鼎的Log4Net.而在我们使用它时,总会出现一些诸如版本不匹配而造成的写日志失败的情况,还要改web.config,还要改AssemblyInfo.而且,它的失败,并不是 ...

  2. Puppet学习:Augeas的怪问题

    今天测试部署Zabbix,本来以前是正常的,今天莫名其妙报错.测试后发现是Augeas出现问题,无论如何都不执行.于是采用调试模式: puppet agent --test --verbose --d ...

  3. JSP学习(第一课)

    JSP页面组成: 比如: 打开网页,右键查看源代码: 打开网页: 注意: <%!%>里面定义的属性是成员属性,相当于类的属性,方法相当于是全局的方法,相当于是类里面的方法.但是它是不可以进 ...

  4. centos tomcat/resin安装配置 卸载系统自带的java tomcat安装配置 安装JDK resin安装配置 第二十八节课

    centos  tomcat/resin安装配置  卸载系统自带的java  tomcat安装配置  安装JDK   resin安装配置    第二十八节课 tomcat和java都不需要编译 tom ...

  5. 4.windows如何导入python包

    python链接:https://www.python.org/downloads/release/python-2715/ pip链接:https://pypi.org/project/pip/#f ...

  6. POJ2992:Divisors(求N!因子的个数,乘性函数,分解n!的质因子(算是找规律))

    题目链接:http://poj.org/problem?id=2992 题目要求:Your task in this problem is to determine the number of div ...

  7. soapUI-DataSource Loop

    1.1.1  DataSource Loop 当我们需要遍历某DataSource中的所有内容时.需要在TestCase中添加DataSource Loop步骤,然后双击它进行配置,如下图所示: Op ...

  8. Ajax保留浏览器历史的两种解决方案(Hash&Pjax)

    总是在github down点东西,github整个界面做的不错,体验也很好~对于其中的源代码滑动的特效最为喜欢了~刚开始以为这个只是普通的ajax请求效果,但是发现这个特效能够导致浏览器地址栏跟随变 ...

  9. Windows2003 + IIS6 安装.Net FrameWork 4.0 兼容早期版本的测试

    看到文档说.net4的框架可以向下兼容2.0.3.0.3.5这几个版本,觉得是一件好事,以后服务器上就不用费时费力的安装 2.0.3.5之类的框架了.但是又觉得奇怪,2.0和3.5的框架都是很大的,为 ...

  10. c/c++ json使用

    比如出名的有CJson,c++一般用jsoncpp http://sourceforge.net/projects/jsoncpp/ jsoncpp:http://www.cnblogs.com/fe ...