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实例搭建的更多相关文章

  1. CentOS6.5下源码安装多个MySQL实例及复制搭建

    多实例安装本节是在CentOS6.5下源码安装MySQL5.6.35的基础上,在同一台机器增加一个MySQL实例.参考Centos中安装多个mysql数据的配置实例,安装目录为/usr/local/m ...

  2. Mysql多实例搭建部署

    [部署背景] 公司测试环境需求多个数据库实例,但是只分配一台MySQL机器,所以进行多实例部署. [部署搭建] 创建软件包路径   mkdir /data/soft/package      /dat ...

  3. 2 构建Mysql+heartbeat+DRBD+LVS集群应用系统系列之MySql的搭建

    preface 上一节我们讲了DRBD的原理,以及如何部署DRBD,那么现在在上一节的基础上部署Mysql 安装并启动Mysql 为了方便,我一般采用yum安装Mysql.命令如下: 在172.16. ...

  4. MySql主从搭建详细步骤

    环境: linux64位,一台机器两个实例,主库3306端口,从库3307端口 步骤: 一.下载安装 先下载安装mysql,这里使用了5.7.21版本,具体过程不做详细说明,可自行查资料如何下载 二. ...

  5. 在docker中运行mysql实例

    Docker是一种新兴的虚拟化技术,能够一定程度上的代替传统虚拟机.下图是容器跟虚拟机的对比 对docker有个大致了解,学习docker断断续续,虽说学习不能急于求成,但断断续续学的话,浪费的碎片化 ...

  6. MySQL MHA 搭建&测试(环境:CentOS7 + MySQL5.7.23)

    MySQL MHA架构介绍: MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Face ...

  7. 在一台Linux服务器上安装多个MySQL实例(一)--使用mysqld_multi方式

    (一)MySQL多实例概述 实例是进程与内存的一个概述,所谓MySQL多实例,就是在服务器上启动多个相同的MySQL进程,运行在不同的端口(如3306,3307,3308),通过不同的端口对外提供服务 ...

  8. 《MySQL数据库》MySQL主从复制搭建与原理

    前言 主从复制:两台或者更多的数据库实例,通过二进制日志,实现数据同步.为什么需要主从复制,主从复制的作用是什么,答:为了预防灾难. 搭建 第一步:准备多实例环境.如何创建多实例见: 第二步:确保每一 ...

  9. koa2+koa-generator+mysql快速搭建nodejs服务器

    koa2+koa-generator+mysql快速搭建nodejs服务器 用koa的脚手架koa-generator可以快速生成项目骨架,可以用于发开或者测试接口 https://github.co ...

随机推荐

  1. Android studio 3.0 引起的 outputFile sync failed:not vaild

    我们大多使用 android studio 改变生成安装包命名会用以下方式: applicationVariants.all { variant -> variant.outputs.each ...

  2. Longest Substring Without Repeating Characters2015年6月9日

    Given a string, find the length of the longest substring without repeating characters. For example, ...

  3. struts2.1.6教程五、拦截器

    在前面我们已经初步使用过拦截器,下面继续细细探讨. 1.概述strust2中的拦截器 拦截器是Struts2框架的核心,它主要完成解析请求参数.将请求参数赋值给Action属性.执行数据校验.文件上传 ...

  4. javaWeb学习总结(6)- 会话之cookie技术

    什么是会话? 在日常生活中,从拨通电话到挂断电话之间的一连串的你问我答的过程就是一个会话. 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为 ...

  5. APP为什么需要着陆页

    小编APP运营团队一直认为,虽然大多数的用户会在App Store或安卓应用商店中搜寻我们的应用,但也有许多用户会通过传统的PC端搜索来寻找答案.而且在APP营销中,为了更好的将用户转换为下载或购买, ...

  6. node--更新数据库问题

    昨天测试blog的comment功能,在新增comment相关的代码之后,重启应用,出现Cannot call method 'forEach' of undefined .反复核对代码,都没发现异常 ...

  7. CI Weekly #20 | 从持续集成的角度看 “云” 的价值

    很多移动开发工程师对 fastlane 耳熟能详,最近 flow.ci 的 iOS 工作流「编译」这步已采用 fastlane gym 工具(iOS 应用打包签名自动化),进一步优化了构建打包速度.快 ...

  8. 生成JSON数据--fastjson(阿里)方法

    fastjson(阿里)方法生成JSON数据: 与Gson类似,创建相应类,再使用JSON.toJSONString()添加对象 要求:生成如下JSON数据 1.{"age":3, ...

  9. js事件循环

    之前有看过一些事件循环的博客,不过一阵子没看就发现自己忘光了,所以决定来自己写一个博客总结下! 首先,我们来解释下事件循环是个什么东西: 就我们所知,浏览器的js是单线程的,也就是说,在同一时刻,最多 ...

  10. 请教 C# 异步 async await 问题

    各位园友,之前对C#异步只是肤浅了解,请教一个具体问题. 需求: 前台会发送一个Array,这个数组都是 id的集合,比较大.分两步,首先保存这些id,然后去调用异步方法. 可以正常返回json,也可 ...