温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-07-11 10:22:04 来源:网络 阅读:2046 作者:余8520 栏目: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 &

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI