MySQL二进制安装

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL二进制安装相关的知识,希望对你有一定的参考价值。

Centos7:二进制方法安装mysql数据库:
###安装前提:确保本机没有安装mariadb的服务,也不应该含有3306端口;
# 1 下载安装包

在httpd://downloads.mariadb.org网页下载二进制安装包"mariadb-10.2.12-linux-x86_64.tar.gz"

# > 2 数据库以mysql这个用户运行的,所以要创建账号

    useradd -r mysql -s /sbin/nologin

3 解压"mariadb-10.2.12-linux-x86_64.tar.gz"文件,由于二进制的包是编译完成的,指定了路径为/usr/local;所以要解压到此处

    tar zxvf mariadb-10.2.12-linux-x86_64.tar.gz -C /usr/local

4 解压完成后的名称当初编译的时候名为mysql所以要创建一个软连接,指向mysql

    ln -s mariadb-10.2.12-linux-x86_64/ mysql

5 解压完成后,当中的文件没有指定所有者所有组,建议将所有者域所有组改为mysql

    chown -R mysql.mysql mysql

6 将二进制程序的路径放入到PATH中,方便在全局使用

    echo ‘PATH=/usr/local/mysql/bin:$PATH‘  > /etc/profile.d/mysql.sh
    source /etc/profile.d/mysql.sh

7 准备存放数据库的文件夹,就是指存放大量数据文件的位置,建议将存放操作系统的空间与存放数据的空间分离,而且建议使用逻辑卷

    1 虚拟机中添加了一块儿大小为20G的磁盘
    2 分区磁盘并且修改为LVM
      fdisk /dev/sdb
        n:开始分区
        p:默认主分区
        大小统统默认直接回车就可以,根据实际情况定义
        t:修改分区类型
        8e:修改为LVM版
        w :保存退出
    3 pvcreate /dev/sdb1                        #创建pv
      vgcreate vg0-mysql /dev/sdb1 -s 16M       #创建vg并命名为vg0-mysql而且pe大小为16M
      lvcreate -n lv_mysqldata -l 100%FREE vg0-mysql #创建lv并命名为lv_mysqldata并且使用vg0-mysql上的所有剩余空间
    4 mkfs.xfs /dev/vg0-mysql/lv_mysqldata      #给新创建的lv创建xfs的文件系统
    5 mkdir /data/mysqldb                                 #创建给逻辑卷挂载的目录
    6 blkid                                                          #查找出逻辑卷的uuid
    7 vim /etc/fstab                                           #在文件中添加如下内容,注意UUID是不同的,实验环境是这个
      UUID=784ecb9c-de51-4140-9676-a0161ba205c1 /data/mysqldb           xfs     defaults        0 0    
    8 mount -a                                  #执行文件中没有挂载的那一行,永久挂载

8 要将创建的目录的所有者和所属组改为mysql,因为是为了给mysql做存放数据用的目录,所以必然要拥有权限

    chown -R mysql.mysql /data/mysqldb

9 基于安全考虑,我们可以将存放数据库的目录权限改为770,也就是说除了mysql其他的用户都进不去

    chmod 770 /data/mysqldb

10 要在/usr/local/mysql/下执行scripts/mysql_install_db这个脚本进行安装数据库,并且要执行datadir也就是数据库的存放目录以及运行用户--user;

出现OK字样则证明运行成功,信息中有一条执行./bin/mysql_secure_installation的指令,这是安全脚本,默认安装完数据库是不存在口令的,所以可以运行一下此脚本;

     1 cd /usr/local/mysql
    2 scripts/mysql_install_db --datadir=/data/mysqldb --user=mysql

11 如果没有什么安全限制的话则就可以启动服务了,但注意,此时默认的配置文件是/etc/my.cnf,当中的数据库路径域socket路径都是默认指定的,但当中的配置也略少,所以可以在/usr/local/mysql/support-files下修改特定环境的配置文件

    my-small.cnf:小环境使用
    my-medium.cnf:稍小环境使用
    my-large.cnf:大的环境使用
    my-huge.cnf:巨大的环境使用(其实巨大也没多大1G-2G都算巨大了= =)每一个下面都有信息,实验当中使用此配置文件;
    my-innodb-heavy-4G.cnf:4G内存的环境下使用

12 将此配置文件复制到/etc/下并且命名为my.cnf

    cp /usr/local/mysql/support-files/my-huge.cnf /etc/my.cnf

    **13 复制过去之后进行编辑修改,当中存在[mysqld]与[client]两个语句块儿,在[mysqld]下添加一行用于修改数据库路径:datadir = /data/mysqldb**
    **14 在/usr/local/mysql/support-files下还存在一个用于服务启动停止的脚本,名为mysql.server,将此文件复制到/etc/init.d/下命名为mysqld方便全局使用**
        cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
        并且添加到chkconfig中开机自启动:chkconfig --add mysqld

15 启动服务

    service mysqld start
注意:当服务启动后,在/tmp/下会生成一个粉色的mysql.sock文件,当服务停止的时候,文件也会消失,因为在配置文件当中的定义就是/tmp/mysql.sock

16 此时服务已经启动,但是默认是没有密码的,所以说任何人都可以登录数据库并且进行一系列的操作,在数据库中默认会出现几个表,这几个表的存放位置在/data/mysqldb下;

    mysql              #此命令可直接登录进数据库
    show databases;    #这是sql语句,在数据库中执行可查看当时数据库中拥有的表;
    drop database test; #删除名为test的数据库,删除后在/data/mysqldb下就会消失;

17 进入数据库查看存在哪些不安全的用户;

        mysql                                           #连接进数据库
        select user,host from mysql.user;               #查看mysql库中的user表下的user和host字段信息;

18 在Linux环境下运行mysql_secure_installation脚本加固安全性;

    mysql_secure_installation         #按照脚本的提示一步一步往下走即可

19 当修改完成后再使用空口令就没有办法连接了,所以要使用以下方法连接

    mysql -uroot -pmysql                       #-u:指定登录用户
                                                               #-p:指定登录密码,mysql是我刚刚执行那个脚本的时候设置的密码

Centos6上面需要二进制安装的话与上述操作一模一样,就是包不一样,包名为"mariadb-5.5.59-linux-x86_64.tar"

以上是关于MySQL二进制安装的主要内容,如果未能解决你的问题,请参考以下文章

Redhat Linux上mysql安装-binary package安装

Linux平台下安装MySQL

Mysql的二进制安装和基础入门操作

源码安装部署MySQL数据库 二进制安装部署MySQL数据库 yum安装数据库

怎样区分linux下的二进制和源代码Mysql包?

mysql基础进阶