MySQL实例搭建
Q:如何判断一个Linux系统具备安装MySQL的条件?
A:
1、Linux网络已经配置完成
ip地址/子网掩码、默认网关、主机名字
/etc/hosts:访问这个数据库的应用的IP地址和主机名字也要添加到hosts文件中,主从服务器解析也要添加到hosts文件
/etc/resolv.conf:确认里面的nameserver能够使用
2、/var/log/messages日志文件
3、配置yum源:local
注意:轻易不要使用互联网yum,原因是容易出现版本问题
4、删除旧版本的MySQL:
# yum remove mysql*
5、selinux一定要关闭:
# getenforce //确保是disabled,如果是修改的最好是重启一下系统。
6、防火墙最好也是关闭:
# iptables -L
7、准备好MySQL数据库软件和MySQL数据文件所在位置
MySQL数据库文件所在的位置一定要足够的空间,且性能要求是最好的。
防火墙对数据库的影响:
防火墙会对长时间没有反应的连接给断开掉,是底层强行断掉的,所以没有完整的释放tcp连接,如果原来是有500连接,因为应用和服务器的连接断掉了进行重新连接,500连接再连上来,服务器就容易夯住。
一、如何安装MySQL
1、tar包的方式,编译安装
http://www.cnblogs.com/geaozhang/p/6935075.html
安装者自行安装定义,安装在哪就是哪儿。
2、rpm的方式,yum安装:yum localinstall
1、rpm -ql 软件包的名字 #查看软件安装的位置
软件目录:/usr
对于一个软件来说:
1>bin(存放一些命令)
2>lib、lib64
3>share(放置类似于软件的一些模板)
2、rpm -qc 软件包的名字 #查看软件的配置文件的位置
shell> vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/mydata
port=
server_id=
socket=/var/lib/mysql/mysql.sock [mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/mydata/mysqld.pid [client]
socket=/var/lib/mysql/mysql.sock
basedir:MySQL软件安装目录
datadir:MySQL数据库目录
如果是要清理一个mysql数据库,然后重新初始化,就要保证该目录为空rm -rf *,当然这个是很危险的,生产库轻易别这么干。
二、MySQL初始化
1、mysqld_safe的方式初始化启动
# mysqld_safe --help
# mysqld_safe --defaults-file=/etc/my.cnf &
初始化完成以后,数据库默认是启动状态---(rpm安装)
补充:
mysqld --initialize、mysql_install_db初始化方式
2、判断实例启动
以下1、2、3一起确认数据库的启动
1、netstat -tulnp|grep 3306
2、数据库启动了会有一个mysql.pid文件
# ll /mydata/mysqld.pid
-rw-r----- 1 mysql mysql 5 Apr 21 10:41 /mydata/mysqld.pid
3、数据库端口开了会有一个mysql.sock文件,代表一个数据库实例
# ll /var/lib/mysql/mysql.sock
srwxrwxrwx 1 mysql mysql 0 Apr 21 10:41 /var/lib/mysql/mysql.sock
注意:
如果是使用mysqld_safe的方式启动MySQL服务,通过ps -ef | grep mysql,我们会发现MySQL有两个进程,一个是mysqld的进程,一个是mysqld_safe的进程,前者是后者的子进程,是因为mysqld_safe启动本质是调用的mysqld,这是MySQL服务启动的一个安全保护机制。如果只是用mysqld启动,那么OS上就只能看见一个进程。
如果在my.cnf配置文件里没有指定日志文件的目录的话,那么初始化完了就会在datadir目录下面生成一个.err文件,这个文件就是mysql的错误日志文件。
3、初始化完后
1、初始化成功以后,在datadir下面至少会有如下目录
# ll |grep ^d
drwxr-x--- 2 mysql mysql 4096 Apr 9 01:09 mysql
drwxr-x--- 2 mysql mysql 4096 Feb 17 21:43 performance_schema
drwxr-x--- 2 mysql mysql 12288 Feb 17 21:43 sys
2、如果是初始化失败的话,也就只有ibdata1、ib_logfile0、ib_logfile1文件。
三、MySQL启动
1、启动过程
1、找my.cnf文件(配置文件),最好启动的时候手工指定配置文件
[root@localhost ~]# mysql --help | grep my.cnf
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
顺序配置文件,如果后面的配置文件寻找成功,则配置文件内容会覆盖前面的配置
所以:mysqld_safe --defaults-file=/etc/my.cnf &
2、datadir,找相应的数据库进行启动
3、初始化参数指定启动资源分配
2、排错分析
1、参数文件问题
1、cat 参数文件、找到datadir
2、初步看一下参数文件中的参数是否异常
3、通过ll参数文件的最近修改时间
2、切换到datadir下
1、判断权限
2、基本文件及目录
ibdata、logfile、mysql/、performance_schema/
3、空间是否满了
3、errorlog
1、关注时间点
2、error内容
3、MySQL有一个地方需要注意
datadir指向了一个不存在数据库的位置,同时对这个目录有MySQL权限,这样就很容易初始化一个新的数据库。
MySQL实例搭建的更多相关文章
- CentOS6.5下源码安装多个MySQL实例及复制搭建
多实例安装本节是在CentOS6.5下源码安装MySQL5.6.35的基础上,在同一台机器增加一个MySQL实例.参考Centos中安装多个mysql数据的配置实例,安装目录为/usr/local/m ...
- Mysql多实例搭建部署
[部署背景] 公司测试环境需求多个数据库实例,但是只分配一台MySQL机器,所以进行多实例部署. [部署搭建] 创建软件包路径 mkdir /data/soft/package /dat ...
- 2 构建Mysql+heartbeat+DRBD+LVS集群应用系统系列之MySql的搭建
preface 上一节我们讲了DRBD的原理,以及如何部署DRBD,那么现在在上一节的基础上部署Mysql 安装并启动Mysql 为了方便,我一般采用yum安装Mysql.命令如下: 在172.16. ...
- MySql主从搭建详细步骤
环境: linux64位,一台机器两个实例,主库3306端口,从库3307端口 步骤: 一.下载安装 先下载安装mysql,这里使用了5.7.21版本,具体过程不做详细说明,可自行查资料如何下载 二. ...
- 在docker中运行mysql实例
Docker是一种新兴的虚拟化技术,能够一定程度上的代替传统虚拟机.下图是容器跟虚拟机的对比 对docker有个大致了解,学习docker断断续续,虽说学习不能急于求成,但断断续续学的话,浪费的碎片化 ...
- MySQL MHA 搭建&测试(环境:CentOS7 + MySQL5.7.23)
MySQL MHA架构介绍: MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Face ...
- 在一台Linux服务器上安装多个MySQL实例(一)--使用mysqld_multi方式
(一)MySQL多实例概述 实例是进程与内存的一个概述,所谓MySQL多实例,就是在服务器上启动多个相同的MySQL进程,运行在不同的端口(如3306,3307,3308),通过不同的端口对外提供服务 ...
- 《MySQL数据库》MySQL主从复制搭建与原理
前言 主从复制:两台或者更多的数据库实例,通过二进制日志,实现数据同步.为什么需要主从复制,主从复制的作用是什么,答:为了预防灾难. 搭建 第一步:准备多实例环境.如何创建多实例见: 第二步:确保每一 ...
- koa2+koa-generator+mysql快速搭建nodejs服务器
koa2+koa-generator+mysql快速搭建nodejs服务器 用koa的脚手架koa-generator可以快速生成项目骨架,可以用于发开或者测试接口 https://github.co ...
随机推荐
- vgrant使用简易教程
认识vagrant vagrant用于创建和部署虚拟化开发环境 避免了多次重新配置环境 节约了开发时间,同时可以体验不同的操作系统 对于新手也是一个不错的方式,当我们配置出错,直接删除重新安装即可 准 ...
- 《Android进阶》之第六篇 Fragment 的使用2
最近通过学习,对fragment的使用有了新的认识. 一开始接触android的时候,很是受不了这个fragment,总感觉它把一个简单的事情搞复杂啦,所以每次新建工程的时候总是固执的选择empty ...
- 面试(3)-java-se-java中的匿名内部类总结
java中的匿名内部类总结 匿名内部类也就是没有名字的内部类 正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写 但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口 实例1 ...
- Java类加载器详解
title: Java类加载器详解date: 2015-10-20 18:16:52tags: JVM--- ## JVM三种类型的类加载器- 我们首先看一下JVM预定义的三种类型类加载器,当一个 J ...
- linux JDK或JRE安装或配置
1. 使用命令“java –version”如果显示如下内容则jdk已安装成功则无需后续操作. 2. 将解压后的文件“jdk-7u79-linux-x64.rpm ”上传到linux系统目录:/usr ...
- C#控制台或应用程序中两个多个Main()方法的可行性方案
大多数初级程序员或学生都认为在C#控制台或应用程序中只能有一个Main()方法.但是事实上是可以有多个Main()方法的. 在C#控制台或应用程序中,在多个类中,且每个类里最多只能存在一个Main() ...
- R绘图字体解决方案(转)
COS论坛里面经常会遇到的一个问题就是绘图时中文字体怎么解决.最初,一个流行的方法是使用family = "GB1",但一般这样做出来的图比较难看,而且并没有完全解决问题.后来发现 ...
- div+css的属性
div+css的属性 gCascading Style Sheet 层叠式样式表 ==> 层叠样式表 Internal Style Sheet 内部样式表 External Style Shee ...
- 玩转nodeJS系列:使用cluster创建nodejs单机多核集群(多进程)
前言: nodejs提供了cluster集群(支持端口共享的多进程),cluster基于child_process,process二次封装,方便我们使用该功能实现单机nodejs的web集群. 1.c ...
- Unexpected end of input 和 Unexpected token var 和 Unexpected token ;
在写jsp的时候使用的一段代码一直调试,出现Unexpected token ; 错误. 所以最后把代码各种精简,得到了如下的测试示例代码 <% String aaa="123&quo ...