zoukankan      html  css  js  c++  java
  • 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=3306 server_id=1 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权限,这样就很容易初始化一个新的数据库。

  • 相关阅读:
    express中 使用session与cookie
    mongoDB
    原生 js 实现 vue 的某些功能
    linux系统
    nodejs 程序(有的功能和前端js是不一样的)
    内网穿透技术
    webview
    PWA 应用
    计算机 和 互联网 知识
    css 图片 和 文本 的处理
  • 原文地址:https://www.cnblogs.com/geaozhang/p/7134049.html
Copyright © 2011-2022 走看看