微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MYSQL企业级应用一安装与部署

1.1 mysql介绍
MysqL属于传统关系型的数据库产品,它开放式架构使得用户选择性很强,同时社区开发与维护人员众多,其功能稳定,性能卓越,且在遵守GPL协议的前提下,可以免费使用与修改,也为MysqL推广使用带来了更多便利,在MysqL成长过程中,支持功能逐渐增多,性能也不断提高,对平台的支持也越来越好。MysqL是一种关系型数据库管理系统,关系数据库特点是将数据保存在不同的表中,再将这些表放入不同的数据中,而不是将所有数据统一放在一个大仓库里,这样的设计增加MysqL的读取速度,而且灵活性和管理性也得到了很大的提高。访问及管理MysqL数据库是常用标准化语言为sql结构化查询语言
1.2 MariaDB数据库诞生背景介绍
自甲骨文公司收购MysqL后,其在商业数据库与开源数据库领域市场的占有份额都跃居第一,这样的格局引起业内很多人士担忧,因为商业数据库老大将MysqL闭源,为了避免oracle将MysqL闭源,而开源类MysqL数据库可用,MysqL社区采用分支的方式来避免这个风险,MariaDB数据库就这样诞生了,mariadb是一个向后兼容,可能在以后替代MysqL产品,官网地址为https://mariadb.org/ 不过,这里还是建议大家选择更稳定,使用更广泛的MysqL数据库,可以先测试mariadb数据库,等使用人员更多一些,社区更活跃一后在考虑使用为好
1.3 什么是MysqL多实例
简单来说,MysqL多实例就是在一台服务器上同时开启多个不同的服务端口(如3306,3307)同时运行多个MysqL服务进程,这些服务进程通过不同的socket监听不同服务器端口来提供服务。这些MysqL多实例公用一套MysqL安装程序,使用不同的my.cnf(也可以相同)配置文件,启动程序(也可以相同)和数据文件,在提供服务时,多实例MysqL在逻辑上看起来是各自独立的,他们根据多个配置文件的对应设定值,获得服务器相应数量的硬件资源。
1.4 MysqL多实例的作用与问题
有效的利用服务器资源

当单个服务器资源有剩余时,可以充分利用剩余的资源提供更多的服务,且可以实现资源的逻辑隔离
节约服务器资源
当公司资金紧张,但是数据库又需要各自尽量独立的提供服务,而且,需要主从复制等技术时,多实例就在好不过了
MysqL多实例有他的好处,但也有弊端,比如,存在资源互相抢占的问题
当某个数据库实例并发很高或有sql查询时,整个实例会消耗大量的系统cpu磁盘I/O等资源,导致服务器上的其他数据库实例提供服务的质量一起下降,这就相当于大家住的房子的不同卧室一样,早晨起来上班,都要刷牙,洗脸等,这样卫生间就会长期占用,其他人要等待一样,不同实例获取的资源是相对独立的,无法像虚拟化一样完全隔离
1.5 RDBMS与NOSQL对比

MYSQL企业级应用(一)安装与部署


1.5.1 关系型数据库的特点
二维表典型产品
oracle传统企业,MysqL是互联网企业
数据存储是通过sql
最大的特点:数据安全性方面强(ACID)
web1.0时代
企业提供内容用户浏览,所以关系型数据库够用,并发并不高,所以不需要nosql
web2.0时代
核心是企业提供平台,用户参与提供内容,这时关系型数据库无法满足需求
2003 NOsql
出现memcached诞生,关系的点是性能,而安全性关注比较低,随着安全性需求不断提升,所以有了redis
1.5.2 redis特点
依然高性能该并发数据持久化的功能支持多数据类型,主从复制和集群管理不再使用sql
1.6 MysqL安装环境准备
下载好5.6.36
安装包查看当前linux系统环境

[root@web01 ~]# cat /etc/redhat-release 
CentOS release 6.9 (Final)
[root@web01 ~]# getenforce 
disabled
[root@web01 ~]# /etc/init.d/iptables status
iptables: Firewall is not running.

安装依赖包`[root@web02 ~]# yum install ncurses-devel libaio-devel -y`
br/>`[root@web02 ~]# yum install ncurses-devel libaio-devel -y`
安装cmake(编译安装使用)`yum install cmake -y`
**设置用户**
`[root@web02 ~]# useradd -s /sbin/nologin -M MysqL`
br/>`yum install cmake -y`
**设置用户**
`[root@web02 ~]# useradd -s /sbin/nologin -M MysqL`
解压安装

[root@web02 ~]# cd /server/tools/
[root@web02 tools]# tar xf mysql-5.6.36.tar.gz 
[root@web02 tools]# cd mysql-5.6.36
[root@web02 mysql-5.6.36]# cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.36 \
> -DMysqL_DATADIR=/application/mysql-5.6.36/data \
> -DMysqL_UNIX_ADDR=/application/mysql-5.6.36/tmp/MysqL.sock \
> -DDEFAULT_CHARSET=utf8 \
> -DDEFAULT_COLLATION=utf8_general_ci \
> -DWITH_EXTRA_CHARSETS=all \
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \
> -DWITH_FEDERATED_STORAGE_ENGINE=1 \
> -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
> -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
> -DWITH_ZLIB=bundled \
> -DWITH_SSL=bundled \
> -DENABLED_LOCAL_INFILE=1 \
> -DWITH_EMbedDED_SERVER=1 \
> -DENABLE_DOWNLOADS=1 \
> -DWITH_DEBUG=0

编译安装
make && make install

创建软连接
ln -s /application/mysql-5.6.36/ /application/MysqL
初始化及配置数据库

[root@web02 ~]# cd /application/MysqL
[root@web02 MysqL]# cp support-files/my*.cnf /etc/my.cnf

初始化配置`[root@web02 MysqL]# /application/MysqL/scripts/MysqL_install_db --basedir=/application/MysqL/ --datadir=/application/MysqL/data --user=MysqL`
br/>`[root@web02 MysqL]# /application/MysqL/scripts/MysqL_install_db --basedir=/application/MysqL/ --datadir=/application/MysqL/data --user=MysqL`
启动报错

[root@web02 ~]# /etc/init.d/MysqLd restart
  RROR! MysqL server PID file Could not be found!
Starting MysqL.Logging to '/application/mysql-5.6.36/data/web02.err'.
171114 21:41:56 MysqLd_safe Directory '/application/mysql-5.6.36/tmp' for UNIX socket file don't exists.
 ERROR! The server quit without updating PID file (/application/mysql-5.6.36/data//web02.pid).

补救方法

[root@web02 ~]# cd /application/MysqL
[root@web02 MysqL]# touch tmp
[root@web02 MysqL]# chown -R MysqL.MysqL tmp

用户授权`[root@web02 MysqL]# chown -R MysqL.MysqL /application/MysqL/`
br/>`[root@web02 MysqL]# chown -R MysqL.MysqL /application/MysqL/`
授权并加入开机自启动

cp support-files/MysqL.server /etc/init.d/MysqLd
chmod 700 /etc/init.d/MysqLd
chkconfig MysqLd on
chkconfig --list MysqLd
/etc/init.d/MysqLd start
netstat -lntup|grep 3306

破解MysqL用户密码 加入到后台启动
MysqLd_safe --defaults-file=/application/MysqL/my.cnf --skip-grant-tables &

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐