美文网首页数据库Linux学习之路运维MySQL
CentOS7下MySQL的三种安装方式详解

CentOS7下MySQL的三种安装方式详解

作者: 温东 | 来源:发表于2017-12-12 16:11 被阅读47次

    操作系统环境:

    CentOS 7.4最小化安装

    [root@node3 src]# cat /etc/redhat-release

    CentOS Linux release 7.4.1708 (Core)

    [root@node3 ~]# uname -r

    3.10.0-693.5.2.el7.x86_64

    [root@node3 ~]#

    安装版本为:MySQL 5.7.20


    一、编译安装MySQL5.7

    1、下载源码包

    [root@node3 ~]# cd /usr/local/src/

    [root@node3 src]# wget https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/mysql-boost-5.7.20.tar.gz

    或者将已经下载好的源码包上传至/usr/local/src目录。因为使用CMake编译Mysql需要boost,所以需要下载mysql-boost-5.7.20.tar.gz包。

    [root@node3 src]# tar xf mysql-boost -5.7.20.tar.gz

    [root@node3 src]# ll mysql-5.7.20

    total 268

    drwxr-xr-x2 7161 314154096 Sep 13 23:56BUILD

    drwxr-xr-x6 7161 314154096 Sep 13 23:56client

    drwxr-xr-x4 7161 314154096 Sep 13 23:56cmake

    -rw-r--r--1 7161 31415 26727 Sep 13 23:48 CMakeLists.txt

    drwxr-xr-x3 7161 3141521 Sep 13 23:56cmd-line-utils

    -rw-r--r--1 7161 31415 13832 Sep 13 23:48 config.h.cmake

    -rw-r--r--1 7161 31415 33704 Sep 13 23:48 configure.cmake

    -rw-r--r--1 7161 31415 17987 Sep 13 23:48 COPYING

    drwxr-xr-x2 7161 31415293 Sep 13 23:56dbug

    drwxr-xr-x2 7161 3141580 Sep 13 23:56Docs

    -rw-r--r--1 7161 31415 66241 Sep 13 23:48 Doxyfile-perfschema

    drwxr-xr-x6 7161 31415309 Sep 13 23:56extra

    drwxr-xr-x5 7161 314154096 Sep 13 23:56include

    -rw-r--r--1 7161 31415333 Sep 13 23:48INSTALL

    drwxr-xr-x5 7161 31415135 Sep 13 23:56 libbinlogevents

    drwxr-xr-x3 7161 3141539 Sep 13 23:56libbinlogstandalone

    drwxr-xr-x7 7161 314154096 Sep 13 23:56libevent

    drwxr-xr-x4 7161 31415297 Sep 13 23:56libmysql

    drwxr-xr-x3 7161 31415204 Sep 13 23:56libmysqld

    drwxr-xr-x2 7161 314154096 Sep 13 23:56libservices

    drwxr-xr-x2 7161 314154096 Sep 13 23:56man

    drwxr-xr-x 10 7161 31415303 Sep 13 23:56 mysql-test

    drwxr-xr-x2 7161 314154096 Sep 13 23:56mysys

    drwxr-xr-x2 7161 31415321 Sep 13 23:56mysys_ssl

    drwxr-xr-x 10 7161 31415131 Sep 13 23:56 packaging

    drwxr-xr-x 18 7161 314154096 Sep 13 23:56 plugin

    drwxr-xr-x4 7161 3141536 Sep 13 23:56rapid

    -rw-r--r--1 7161 314152478 Sep 13 23:48README

    drwxr-xr-x2 7161 314154096 Sep 13 23:56regex

    drwxr-xr-x3 7161 314154096 Sep 13 23:56scripts

    drwxr-xr-x7 7161 31415 20480 Sep 13 23:56 sql

    drwxr-xr-x2 7161 31415146 Sep 13 23:56sql-common

    drwxr-xr-x 14 7161 31415186 Sep 13 23:56 storage

    drwxr-xr-x2 7161 314154096 Sep 13 23:56strings

    drwxr-xr-x4 7161 31415241 Sep 13 23:56support-files

    drwxr-xr-x2 7161 3141598 Sep 13 23:56testclients

    drwxr-xr-x5 7161 3141570 Sep 13 23:56unittest

    -rw-r--r--1 7161 3141588 Sep 13 23:48VERSION

    drwxr-xr-x3 7161 31415298 Sep 13 23:56vio

    drwxr-xr-x2 7161 3141532 Sep 13 23:56win

    drwxr-xr-x2 7161 314154096 Sep 13 23:56zlib

    2、安装cmake编译工具

    [root@node3 src]# yum install cmakecmake-gui –y

    3、安装bison

    [root@node3 src]# yum install bison –y

    4、安装libaio-devel

    [root@node3 src]# yum install libaio-devel –y

    5、安装gcc gcc-c++

    [root@node3 debug]# yum install -y gccgcc-c++

    6、创建mysql用户

    [root@node3 data_3306]# groupadd mysql

    [root@node3 data_3306]# useradd -r -g mysql-s /bin/false mysql

    7、创建编译目录

    在编译目录中编译,可以使MySQL源码目录不受影响。

    [root@node3 src]# cd mysql-5.7.20

    [root@node3 mysql-5.7.20]# mkdir debug

    [root@node3 mysql-5.7.20]# cd debug/

    8、使用cmake配置编译环境

    [root@node3 debug]#cmake ..-DBUILD_CONFIG=mysql_release-DINSTALL_LAYOUT=STANDALONE-DCMAKE_BUILD_TYPE=RelWithDebInfo-DENABLE_DTRACE=OFF-DWITH_EMBEDDED_SERVER=OFF -DWITH_INNODB_MEMCACHED=ON -DWITH_SSL=bundled-DWITH_ZLIB=system -DWITH_PAM=ON -DCMAKE_INSTALL_PREFIX=/var/mysql-DINSTALL_PLUGINDIR="/var/mysql/lib/plugin" -DDEFAULT_CHARSET=utf8

    -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EDITLINE=bundled

    -DFEATURE_SET=community -DCOMPILATION_COMMENT="MySQL Server (GPL)"

    -DWITH_DEBUG=OFF -DWITH_BOOST=../boost/boost_1_59_0

    如果执行完之后,看到下面两行信息,说明配置完成:

    -- Configuring done

    -- Generating done

    此时,在当前目录下生成了Makefile文件,这就是上面CMake配置时生成的,有了Makefile,就可以通过make开始编译源码了。

    9、编译mysql

    直接在当前目录下执行如下命令:

    [root@node3 ~]# make -j 24

    后面的参数–j 24是设置了使用24个线程来编译,可以加快编译过程。前提是你服务器的配置非常好了。否则还是直接使用make为好。

    看到如下信息说明编译完成:

    10、安装Mysql

    编译完成生,执行下面的命令安装MySQL

    [root@node3 ~]# make install

    因为在执行CMake时,指定了参数DCMAKE_INSTALL_PREFIX=/var/mysql,所以安装后,所有关于MySQL需要的内容都会安装在该目录下面。

    [root@node3 debug]# ll /var/mysql/

    total 60

    drwxr-xr-x2 root root4096 Dec 10 22:29 bin

    -rw-r--r--1 root root 17987 Sep 13 23:48 COPYING

    -rw-r--r--1 root root 17987 Sep 13 23:48 COPYING-test

    drwxr-xr-x2 root root55 Dec 10 22:28docs

    drwxr-xr-x3 root root4096 Dec 10 22:28include

    drwxr-xr-x4 root root172 Dec 10 22:29 lib

    drwxr-xr-x4 root root30 Dec 10 22:29 man

    drwxr-xr-x 10 root root289 Dec 10 22:29 mysql-test

    -rw-r--r--1 root root2478 Sep 13 23:48README

    -rw-r--r--1 root root2478 Sep 13 23:48README-test

    drwxr-xr-x 28 root root4096 Dec 10 22:29 share

    drwxr-xr-x2 root root90 Dec 10 22:29support-files

    11、安装MySQL库

    编译完成后,接着就创建一个新的数据库,对于MySQL5.7,安装方法与之前的版本有所不同,MySQL5.7更简单了,可以直接使用mysqld来安装,要准备一个配置文件,名字默认为my.cnf,

    [root@node3 debug]# mkdir data_3306

    [root@node3 data_3306]# cat /etc/my.cnf

    [mysqld]

    port=3306

    datadir=/usr/local/mysql/data_3306

    log_error=/usr/local/mysql/data_3306/error.log

    basedir=/usr/local/mysql [root@node3data_3306]# /usr/local/mysql/bin/mysqld --default-file=/etc/my.cnf --initialize--user=mysql

    执行之后,在目录/usr/local/mysql/data_3306下:

    [root@node3 mysql]# ll ./data_3306/

    total 110632

    -rw-r----- 1 mysql mysql56 Dec 11 08:31 auto.cnf

    -rw-r----- 1 mysql mysql802 Dec 11 08:31 error.log

    -rw-r----- 1 mysql mysql419 Dec 11 08:31 ib_buffer_pool

    -rw-r----- 1 mysql mysql 12582912 Dec 1108:31 ibdata1

    -rw-r----- 1 mysql mysql 50331648 Dec 1108:31 ib_logfile0

    -rw-r----- 1 mysql mysql 50331648 Dec 1108:31 ib_logfile1

    drwxr-x--- 2 mysql mysql4096 Dec 11 08:31 mysql

    drwxr-x--- 2 mysql mysql8192 Dec 11 08:31 performance_schema

    drwxr-x--- 2 mysql mysql8192 Dec 11 08:31 sys

    [root@node3 mysql]#

    12、启动MySQL

    [root@node3 mysql]# /usr/local/mysql/bin/mysqld--user=mysql &

    查看进程:

    我们看到mysql服务已经启动

    启动完成之后,我们登录,测试一下:

    [root@node3 ~]# /usr/local/mysql/bin/mysql-uroot -p

    Enter password:

    ERROR 1045 (28000): Access denied for user'root'@'localhost' (using password: NO)

    报错了,这是因为MySQL5.7调整了案例策略,新安装数据库之后,默认root密码不是空的了。在启动时随机生成了一个密码,我们可以在error.log里找到。

    再次登录后,我们发现不能进行任何操作,提示我们要先修改密码:

    我们必须通过Alter User语句修改密码:

    mysql>alter user

    'root'@'localhost' identified by "Cflp#?1312";

    退出后,重新登录,一切OK了。

    我们也可以在初始化的时候使用参数设置root为空密码:--initialize-insecure。

    13、配置多实例

    新建新实例数据目录data_3307及配置文件my-3307.cnf:

    [root@node3 ~]# cd /usr/local/mysql/

    [root@node3 mysql]# pwd

    /usr/local/mysql

    [root@node3 mysql]# mkdir data_3307

    [root@node3 mysql]# cat /etc/my-3307.cnf

    [mysqld]

    port=3307

    datadir=/usr/local/mysql/data_3307

    log_error=/usr/local/mysql/data_3307/error.log

    basedir=/usr/local/mysql

    创建3307数据库:

    [root@node3 mysql]#/usr/local/mysql/bin/mysqld --defaults-file=/etc/my-3307.cnf--initialize-insecure --user=mysql

    启动3307数据库服务:

    [root@node3 mysql]#/usr/local/mysql/bin/mysqld --defaults-file=/etc/my-3307.cnf --user=mysql--socket=/tmp/mysql-3307.sock &

    登录数据库:

    [root@node3 mysql]#/usr/local/mysql/bin/mysql -h127.0.0.1 -P3308 -p

    Enter password:

    Welcome to the MySQL monitor.Commands end with ; or \g.

    Your MySQL connection id is 3

    Server version: 5.7.20 MySQL Server (GPL)

    Copyright (c) 2000, 2017, Oracle and/or itsaffiliates. All rights reserved.

    Oracle is a registered trademark of OracleCorporation and/or its

    affiliates. Other names may be trademarksof their respective

    owners.

    Type 'help;' or '\h' for help. Type '\c' toclear the current input statement.

    mysql>

    这次我们直接登录了,因为我们在初始化数据库的时候用户了:--initialize-insecure参数。


    二、二进制方式安装MySQL5.7

    1、获取二进制安装包

    下载二进制安装包mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz,并上传至/usr/local/src目录

    2、创建用户

    [root@node3 src]# groupadd mysql

    [root@node3 src]# useradd -r -g mysql -s/bin/false mysql

    3、安装依赖

    [root@node3 src]# yum install libaio –y

    4、安装

    [root@node3 src]# tar xfmysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

    [root@node3 src]# mvmysql-5.7.20-linux-glibc2.12-x86_64 /usr/local/

    [root@node3 src]# cd ..

    [root@node3 local]# ln -s/usr/local/mysql-5.7.20-linux-glibc2.12-x86_64/ /usr/local/mysql

    [root@node3 local]# cd mysql

    [root@node3 mysql]# ll

    total 36

    drwxr-xr-x2 root root4096 Dec 11 20:56bin

    -rw-r--r--1 7161 31415 17987 Sep 13 23:48 COPYING

    drwxr-xr-x2 root root55 Dec 11 20:56docs

    drwxr-xr-x3 root root4096 Dec 11 20:56include

    drwxr-xr-x5 root root229 Dec 11 20:56lib

    drwxr-xr-x4 root root30 Dec 11 20:56man

    -rw-r--r--1 7161 314152478 Sep 13 23:48README

    drwxr-xr-x 28 root root4096 Dec 11 20:56 share

    drwxr-xr-x2 root root90 Dec 11 20:56support-files

    5、初始化MySQL数据库

    [root@node3 mysql]# mkdir data_3306

    [root@node3 mysql]# vim /etc/my.cnf使用下面的内容

    [mysqld]

    port=3306

    datadir=/usr/local/mysql/data_3306

    log_error=/usr/local/mysql/data_3306/error.log

    basedir=/usr/local/mysql

    [root@node3 mysql]#/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize--user=mysql

    6、启动MySQL

    [root@node3 mysql]#/usr/local/mysql/bin/mysqld --user=mysql &

    查看进程:

    我们看到mysql服务已经启动

    启动完成之后,我们登录,测试一下:

    [root@node3 ~]# /usr/local/mysql/bin/mysql-uroot -p

    Enter password:

    ERROR 1045 (28000): Access denied for user'root'@'localhost' (using password: NO)

    报错了,这是因为MySQL5.7调整了案例策略,新安装数据库之后,默认root密码不是空的了。在启动时随机生成了一个密码,我们可以在error.log里找到。

    再次登录后,我们发现不能进行任何操作,提示我们要先修改密码:

    我们必须通过Alter User语句修改密码:

    mysql> alter user 'root'@'localhost'identified by "Cflp#?1312";

    退出后,重新登录,一切OK了。

    我们也可以在初始化的时候使用参数设置root为空密码:--initialize-insecure。


    三、YUM方式安装MySQL5.7

    我们使用清华源来安装:https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/

    1、添加YUM仓库

    [root@node3 ~]# rpm -ivhhttps://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql57-community-el7/mysql57-community-release-el7-10.noarch.rpm

    Retrieving https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql57-community-el7/mysql57-community-release-el7-10.noarch.rpm

    warning: /var/tmp/rpm-tmp.CQVpW4: Header V3DSA/SHA1 Signature, key ID 5072e1f5: NOKEY

    Preparing...#################################[100%]

    Updating / installing...

    1:mysql57-community-release-el7-10 #################################[100%]

    [root@node3 ~]# ll /etc/yum.repos.d/

    total 44

    -rw-r--r--. 1 root root 1664 Aug 30 23:53CentOS-Base.repo

    -rw-r--r--. 1 root root 1309 Aug 30 23:53CentOS-CR.repo

    -rw-r--r--. 1 root root649 Aug 30 23:53 CentOS-Debuginfo.repo

    -rw-r--r--. 1 root root314 Aug 30 23:53 CentOS-fasttrack.repo

    -rw-r--r--. 1 root root630 Aug 30 23:53 CentOS-Media.repo

    -rw-r--r--. 1 root root 1331 Aug 30 23:53CentOS-Sources.repo

    -rw-r--r--. 1 root root 3830 Aug 30 23:53CentOS-Vault.repo

    -rw-r--r--. 1 root root951 Oct3 01:44 epel.repo

    -rw-r--r--. 1 root root 1050 Oct3 01:44 epel-testing.repo

    -rw-r--r--1 root root 1627 Apr52017 mysql-community.repo

    -rw-r--r--1 root root 1663 Apr52017 mysql-community-source.repo

    [root@node3 ~]#

    2、配置源:

    默认情况下:我们刚安装的仓库还是指向官方的源,所以我们需要重新配置:

    主要配置三个部分:

    将上面的地址替换为:

    https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-connectors-community-el7/

    将上面的地址替换为:

    https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-tools-community-el7/

    将上面的地址替换为:

    https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql57-community-el7/

    3、安装

    [root@node3 ~]# yum install mysqlmysql-server mysql-devel –y

    4、启动

    [root@node3 system]# systemctl start mysqld

    5、登录:

    [root@node3 ~]# /usr/local/mysql/bin/mysql-uroot -p

    Enter password:

    ERROR 1045 (28000): Access denied for user'root'@'localhost' (using password: NO)

    报错了,这是因为MySQL5.7调整了案例策略,新安装数据库之后,默认root密码不是空的了。在启动时随机生成了一个密码,我们可以在error.log里找到。

    再次登录后,我们发现不能进行任何操作,提示我们要先修改密码:

    我们必须通过Alter User语句修改密码:

    mysql> alter user 'root'@'localhost'identified by "Cflp#?1312";

    退出后,重新登录,一切OK了。

    相关文章

      网友评论

        本文标题:CentOS7下MySQL的三种安装方式详解

        本文链接:https://www.haomeiwen.com/subject/ybrnixtx.html