【MySQL】Linux下MySQL 5.5、5.6和5.7的RPM、二进制和源码安装

2021/4/13 2:28:53

本文主要是介绍【MySQL】Linux下MySQL 5.5、5.6和5.7的RPM、二进制和源码安装,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

【MySQL】Linux下MySQL 5.5、5.6和5.7的RPM、二进制和源码安装

 

1.1  BLOG文档结构图

wps4FBA.tmp 

wps4FBB.tmp 

wps4FBC.tmp 

1.2  前言部分

1.2.1  导读和注意事项

各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~:

① MySQL的二进制安装过程(重点)

② MySQL多实例管理(mysqld_multi)

③ MySQL的源码编译安装过程

④ Linux的逻辑卷的使用

⑤ 文件的MD5值

⑥ 访问MySQL的几种客户端工具(Navicat和MySQLWorkbench)

⑦ 修改MySQL的密码

⑧ 设置MySQL的远程访问

⑨ 设置MySQL的开机启动以及多实例的开机启动

⑩ RPM、二进制和源码编译的优缺点

 

Tips:

① 本文在itpub(http://blog.itpub.net/26736162)、博客园(http://www.cnblogs.com/lhrbest)和微信公众号(xiaomaimiaolhr)上有同步更新。

② 文章中用到的所有代码、相关软件、相关资料及本文的pdf版本都请前往小麦苗的云盘下载,小麦苗的云盘地址见:http://blog.itpub.net/26736162/viewspace-1624453/。

③ 若网页文章代码格式有错乱,请下载pdf格式的文档来阅读。

④ 在本篇BLOG中,代码输出部分一般放在一行一列的表格中。

⑤ 本文适合于MySQL初中级人员阅读,MySQL大师请略过本文。

⑥ 不喜勿喷。

本文若有错误或不完善的地方请大家多多指正,您的批评指正是我写作的最大动力。

-------------------------------------------------------------------------

1.3  本文简介

自从去年3月份开始写书到现在,基本上大部分内容都写完了。一个字,累!三个字,真心累!我也因此错过了很多的东西,当然也收获了很多,一切都随缘吧。现在来说说博客吧,虽然我的博客在这段时间更新比较频繁,但是大多内容都不是来自我的原创,基本都是整理自网络。可能有的朋友就会骂小麦苗了,抄袭抄袭,我不反驳,因为这的确是抄袭。为啥小麦苗要这么做,可能基于这么几个原因吧。第一,干货类的文章,本来原创的内容就少,网上的文章也大多是一个抄一个的,很多内容,原创作者已经很难找到了。第二,个别文章并不是很完善,如果不整理在一块,若下次碰到相同的内容,还是得网上再天翻地覆的搜一遍,太浪费时间了。第三,这些非原创的文章,不仅仅是给网友做参考,更重要的是,小麦苗自己也参考。毕竟人的记忆力是有限的,小麦苗也经常搜索自己的文章,所以,这并不可耻。第四,有的文章写得很好,但是里边有个别地方写得不严谨,或者写得有错误,这个时候,小麦苗整理到自己博客的时候就可以顺便修改过来。说再多,有的网友觉得,这都是借口,好吧。抄袭就是抄袭,再多借口也改变不了抄袭的本质。小麦苗不再多说了,只想说一句,不喜勿喷。

从今天开始,小麦苗会准备OCM和MySQL的学习。所以,今天就先把MySQL的各个版本安装一下吧。要学习MySQL,估计5.5、5.6和5.7版本的都需要安装。不过,相比Oracle而言,MySQL还是更好安装一点。

小麦苗出版的书籍:http://blog.itpub.net/26736162/viewspace-2142121/

废话已经说了很多了,下面开始安装吧。

1.4  Linux下各种安装方法比较

在Windows下可以使用NOINSTALL包和图形化包来安装,在Linux下可以使用如下3种方式来安装:

 

RPM(Redhat Package Manage)

二进制(Binary Package)

源码(Source Package)

优点

安装简单,适合初学者学习使用

安装简单;可以安装到任何路径下,灵活性好;一台服务器可以安装多个MySQL

在实际安装的操作系统进行可根据需要定制编译,最灵活;性能最好;一台服务器可以安装多个MySQL

缺点

需要单独下载客户端和服务器;安装路径不灵活,默认路径不能修改,一台服务器只能安装一个MySQL

已经经过编译,性能不如源码编译的好;不能灵活定制编译参数

安装过程较复杂;编译时间长

文件布局

/usr/bin:客户端程序和脚本

/usr/sbin:mysqld服务器

/var/lib/mysql:日志文件,数据库

/usr/share/doc/packages:文档

/usr/include/mysql:包含(头)文件

/usr/lib/mysql:库文件

/usr/share/mysql:错误消息和字符集文件

/usr/share/sql-bench:基准程序

bin:客户端程序和mysqld服务器

data:日志文件,数据库

docs:文档,ChangeLog

include:包含(头)文件

lib:库

scripts:mysql_install_db用来初始化系统数据库

share/mysql:错误消息文件

sql-bench:基准程序

bin:客户端程序和脚本

include/mysql:包含(头)文件

info:Info格式的文档

lib/mysql:库文件

libexec:mysqld服务器

share/mysql:错误消息文件

sql-bench:基准程序和crash-me测试

var:数据库和日志文件

主要安装过程

在大多数情况下,下载MySQL-server和MySQL-client就可以了,安装方法如下:

rpm -ivh MySQL-server* MySQL-client*

1.添加用户

groupadd mysql

useradd -g mysql mysql

2.安装

tar -xzvf mysql-VERSION-OS.tar.gz -C /mysql/

ln -s MySQL-VERSION-OS mysql或用mv命令

3.初始化,MySQL 5.7之后用mysqld --initialize

scripts/mysql_install_db

4.启动数据库并修改密码等

mysqld_safe &

set password=password('lhr');

除了第二步的安装过程外,其它步骤和二进制基本一样(MySQL 5.7开始使用cmake):

gunzip < mysql-VERSION.tar.gz | tar -xvf -

cd mysql-VERSION

./configure --prefix=/usr/local/mysql

make && make install

安装包下载选项

Red Hat Enterprise Linux / Oracle Linux

Linux - Generic

Source Code

 

rpm的安装方式请参考:

http://blog.itpub.net/26736162/viewspace-1349705/

http://blog.itpub.net/26736162/viewspace-1349787/

 

官网中相应地有以上三种方式对应的下载链接,其中源码安装,对应"Source Code";.tar.gz对应"Linux - Generic",.rpm则对应于"Red Hat Enterprise Linux / Oracle Linux",如下图所示,

wps4FCD.tmp 

 

1.5  注意事项

1.目录大小。MySQL 5.7的二进制安装后大约3G,所以可以分配5G空间;而5.5和5.6版本的二进制包安装可以分配2G左右。

2.MySQL 5.7的源码包需要分配10G的空间。cmake最低需要2.8.2版本。

3.下载和上传后需要校验md5值,防止上传的文件不完整。

4.源码编译安装比较费时费力。

 

1.6  MySQL下载

在官网:http://dev.mysql.com/downloads/mysql/中,选择以下版本的MySQL下载:

wps4FCE.tmp 

注意:MD5: dbe7e5e820377c29d8681005065e5728,下载完成后需要校验。

感觉MySQL的安装包越来越大了,不过相比Oracle而言,就小的多了。小麦苗已经将安装文件放到云盘了,参考:http://blog.itpub.net/26736162/viewspace-1624453/ 。

注意:不要下载rpm类型的包,安装路径不灵活,默认路径不能修改,一台服务器只能MySQL安装一个 MySQL。下图下载后均是rpm包:

wps4FCF.tmp 

1.6.1  历史MySQL版本下载

地址:https://downloads.mysql.com/archives/community/,最早版本只能看到5.0.15

wps4FD0.tmp 

1.7  MySQL 5.7安装

1.7.1  下载

在官网:http://dev.mysql.com/downloads/mysql/中,选择以下版本的MySQL下载:

wps4FE0.tmp 

注意:MD5: dbe7e5e820377c29d8681005065e5728,下载完成后需要校验。

 

1.7.2  OS路径设置

我们约定:

项目

source db

db 类型

MySQL 5.7.19

db version

5.7.19

db 存储

Linux 文件系统

OS版本及kernel版本

RHEL 6.5

OS主机名

LHRDB

OS IP地址

192.168.59.159

安装文件下载目录

/tmp/mysql5719

MySQL目录安装位置

/var/lib/mysql57/mysql5719

数据库保存位置

/var/lib/mysql57/mysql5719/data

日志保存位置

/var/lib/mysql57/mysql5719/log

配置文件地址

/etc/my.cnf

需要注意的是,安装文件解压后大小大约为2.6G,比MySQL 5.6大多了,我记得5.6版本解压后还不到1G。所以,这里安装目录给5G大小。

 

下面开始准备OS。使用以前就安装好的OS,文件系统采用逻辑卷的管理方式,如下所示:

[root@LHRDB ~]# df -h

Filesystem                    Size  Used Avail Use% Mounted on

/dev/mapper/vg_rootlhr-Vol00  9.9G  4.9G  4.6G  52% /

tmpfs                         2.0G   72K  2.0G   1% /dev/shm

/dev/sda1                     194M   35M  150M  19% /boot

/dev/mapper/vg_rootlhr-Vol01  3.0G   70M  2.8G   3% /tmp

/dev/mapper/vg_rootlhr-Vol03  3.0G   69M  2.8G   3% /home

.host:/                       331G  272G   59G  83% /mnt/hgfs

[root@LHRDB ~]# lvs

  LV    VG         Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert

  Vol00 vg_rootlhr -wi-ao---- 10.00g                                            

  Vol01 vg_rootlhr -wi-ao----  3.00g                                            

  Vol02 vg_rootlhr -wi-ao----  2.00g                                            

  Vol03 vg_rootlhr -wi-ao----  3.00g                                            

[root@LHRDB ~]# pvs

  PV         VG         Fmt  Attr PSize  PFree

  /dev/sda2  vg_rootlhr lvm2 a--  10.00g     0

  /dev/sda3  vg_rootlhr lvm2 a--   9.80g  1.80g

  /dev/sdb1             lvm2 a--  10.00g 10.00g

  /dev/sdb10            lvm2 a--  10.00g 10.00g

  /dev/sdb11            lvm2 a--   9.99g  9.99g

  /dev/sdb2             lvm2 a--  10.00g 10.00g

  /dev/sdb3             lvm2 a--  10.00g 10.00g

  /dev/sdb5             lvm2 a--  10.00g 10.00g

  /dev/sdb6             lvm2 a--  10.00g 10.00g

  /dev/sdb7             lvm2 a--  10.00g 10.00g

  /dev/sdb8             lvm2 a--  10.00g 10.00g

  /dev/sdb9             lvm2 a--  10.00g 10.00g

[root@LHRDB ~]# vgs

  VG         #PV #LV #SN Attr   VSize  VFree

  vg_rootlhr   2   4   0 wz--n- 19.80g 1.80g

[root@LHRDB ~]# vgcreate vg_mysqlsoft /dev/sdb1

  Volume group "vg_mysqlsoft" successfully created

[root@LHRDB ~]# vgs

  VG           #PV #LV #SN Attr   VSize  VFree

  vg_mysqlsoft   1   0   0 wz--n- 10.00g 10.00g

  vg_rootlhr     2   4   0 wz--n- 19.80g  1.80g

[root@LHRDB ~]# lvcreate -n lv_mysqlsoft_57 -L 5G vg_mysqlsoft

  Logical volume "lv_mysqlsoft_57" created

[root@LHRDB ~]# lvs

  LV              VG           Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert

  lv_mysqlsoft_57 vg_mysqlsoft -wi-a-----  5.00g                                            

  Vol00           vg_rootlhr   -wi-ao---- 10.00g                                            

  Vol01           vg_rootlhr   -wi-ao----  3.00g                                            

  Vol02           vg_rootlhr   -wi-ao----  2.00g                                            

  Vol03           vg_rootlhr   -wi-ao----  3.00g

[root@LHRDB ~]# mkfs.ext4 /dev/vg_mysqlsoft/lv_mysqlsoft_57

mke2fs 1.41.12 (17-May-2010)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

327680 inodes, 1310720 blocks

65536 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=1342177280

40 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks:

        32768, 98304, 163840, 229376, 294912, 819200, 884736

 

Writing inode tables: done                           

Creating journal (32768 blocks): done

Writing superblocks and filesystem accounting information: done

 

This filesystem will be automatically checked every 32 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

[root@LHRDB ~]# mkdir -p /tmp/mysql5719

[root@LHRDB ~]# mkdir -p /var/lib/mysql57

[root@LHRDB ~]# mount /dev/vg_mysqlsoft/lv_mysqlsoft_57  /var/lib/mysql57/

[root@LHRDB ~]# df -h

Filesystem                                Size  Used Avail Use% Mounted on

/dev/mapper/vg_rootlhr-Vol00              9.9G  4.9G  4.6G  52% /

tmpfs                                     2.0G   72K  2.0G   1% /dev/shm

/dev/sda1                                 194M   35M  150M  19% /boot

/dev/mapper/vg_rootlhr-Vol01              3.0G  680M  2.2G  24% /tmp

/dev/mapper/vg_rootlhr-Vol03              3.0G   69M  2.8G   3% /home

.host:/                                   331G  272G   59G  83% /mnt/hgfs

/dev/mapper/vg_mysqlsoft-lv_mysqlsoft_57  5.0G  138M  4.6G   3% /var/lib/mysql57

[root@LHRDB ~]# vi /etc/fstab

[root@LHRDB ~]# more /etc/fstab

# /etc/fstab

# Created by anaconda on Sat Jan 14 18:56:24 2017

#

# Accessible filesystems, by reference, are maintained under '/dev/disk'

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

/dev/mapper/vg_rootlhr-Vol00 /                       ext4    defaults        1 1

UUID=fccf51c1-2d2f-4152-baac-99ead8cfbc1a /boot                   ext4    defaults        1 2

/dev/mapper/vg_rootlhr-Vol01 /tmp                    ext4    defaults        1 2

/dev/mapper/vg_rootlhr-Vol02 swap                    swap    defaults        0 0

tmpfs                   /dev/shm                tmpfs   defaults,size=2G        0 0

devpts                  /dev/pts                devpts  gid=5,mode=620  0 0

sysfs                   /sys                    sysfs   defaults        0 0

proc                    /proc                   proc    defaults        0 0

/dev/vg_rootlhr/Vol03 /home  ext4 defaults        0 0

/dev/mapper/vg_mysqlsoft-lv_mysqlsoft_57  /var/lib/mysql57  ext4    defaults  0 0

 

 

1.7.2.1  OS设置

关闭iptables防火墙:

临时关闭:service iptables stop

永久关闭:chkconfig iptables off

 

 

关闭selinux

vi /etc/sysconfig/selinux

 

将SELINUX修改为DISABLED,即SELINUX=DISABLED

1.7.3  上传文件并校验MD5值

wps4FE1.tmp 

[root@LHRDB ~]# cd /tmp/mysql5719/

[root@LHRDB mysql5719]# ll

total 625640

-rw-r--r--. 1 root root 640650826 Aug 23 10:48 mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz

[root@LHRDB mysql5719]# md5sum mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz 

dbe7e5e820377c29d8681005065e5728  mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz

 

和官网的MD5保持一致,说明安装文件的下载和上传过程没有问题:

Compressed TAR Archive

5.7.19

611.0M

Download

(mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz)

MD5: dbe7e5e820377c29d8681005065e5728 | Signature



wps4FE2.tmp 

 

1.7.4  安装

[root@LHRDB mysql5719]# tar -zxvf mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz -C /var/lib/mysql57/

mysql-5.7.19-linux-glibc2.12-x86_64/bin/myisam_ftdump

mysql-5.7.19-linux-glibc2.12-x86_64/bin/myisamchk

mysql-5.7.19-linux-glibc2.12-x86_64/bin/myisamlog

mysql-5.7.19-linux-glibc2.12-x86_64/bin/myisampack

mysql-5.7.19-linux-glibc2.12-x86_64/bin/mysql

mysql-5.7.19-linux-glibc2.12-x86_64/bin/mysql_client_test_embedded

mysql-5.7.19-linux-glibc2.12-x86_64/bin/mysql_config_editor

mysql-5.7.19-linux-glibc2.12-x86_64/bin/mysql_embedded

mysql-5.7.19-linux-glibc2.12-x86_64/bin/mysql_install_db

mysql-5.7.19-linux-glibc2.12-x86_64/bin/mysql_plugin

。。。。。。。 省略部分。。。。。。。。

mysql-5.7.19-linux-glibc2.12-x86_64/lib/libmysqlclient.so.20

mysql-5.7.19-linux-glibc2.12-x86_64/lib/libmysqlclient.so.20.3.6

mysql-5.7.19-linux-glibc2.12-x86_64/share/install_rewriter.sql

mysql-5.7.19-linux-glibc2.12-x86_64/share/uninstall_rewriter.sql

mysql-5.7.19-linux-glibc2.12-x86_64/support-files/magic

mysql-5.7.19-linux-glibc2.12-x86_64/support-files/mysql.server

mysql-5.7.19-linux-glibc2.12-x86_64/docs/INFO_BIN

mysql-5.7.19-linux-glibc2.12-x86_64/docs/INFO_SRC

[root@LHRDB mysql5719]# df -h

Filesystem                                Size  Used Avail Use% Mounted on

/dev/mapper/vg_rootlhr-Vol00              9.9G  4.9G  4.6G  52% /

tmpfs                                     2.0G   72K  2.0G   1% /dev/shm

/dev/sda1                                 194M   35M  150M  19% /boot

/dev/mapper/vg_rootlhr-Vol01              3.0G  680M  2.2G  24% /tmp

/dev/mapper/vg_rootlhr-Vol03              3.0G   69M  2.8G   3% /home

.host:/                                   331G  272G   59G  83% /mnt/hgfs

/dev/mapper/vg_mysqlsoft-lv_mysqlsoft_57  5.0G  2.6G  2.2G  55% /var/lib/mysql57

 

 

1.7.5  重命名安装后的文件夹

[root@LHRDB ~]# cd /var/lib/mysql57/

[root@LHRDB mysql57]# ll

total 20

drwx------. 2 root root 16384 Aug 23 13:21 lost+found

drwxr-xr-x. 9 root root  4096 Aug 23 13:28 mysql-5.7.19-linux-glibc2.12-x86_64

[root@LHRDB mysql57]# mv mysql-5.7.19-linux-glibc2.12-x86_64 mysql5719

[root@LHRDB mysql57]# ll

total 20

drwx------. 2 root root 16384 Aug 23 13:21 lost+found

drwxr-xr-x. 9 root root  4096 Aug 23 13:28 mysql5719

[root@LHRDB mysql57]#

 

 

也可以使用ln连接:

ln –s mysql-5.7.19-linux-glibc2.12-x86_64 mysql5719

 

1.7.6  新建数据和日志文件目录

[root@LHRDB mysql57]# mkdir -p /var/lib/mysql57/mysql5719/data

[root@LHRDB mysql57]# mkdir -p /var/lib/mysql57/mysql5719/log

 

1.7.7  用户和组设置

groupadd mysql      ## 添加一个mysql组

useradd -r -g mysql mysql    ## 添加一个用户

useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql #新建msyql用户禁止登录shell

[root@LHRDB ~]# groupadd mysql

groupadd: group 'mysql' already exists

[root@LHRDB ~]# useradd -r -g mysql mysql

useradd: user 'mysql' already exists

 

说明本身就有mysql用户和组。

1.7.8  改变目录属有者

[root@LHRDB mysql57]# chown –R mysql.mysql /var/lib/mysql57

chown: invalid user: `\226R'

[root@LHRDB mysql57]# cd ..

[root@LHRDB lib]# chown –R mysql.mysql /var/lib/mysql57

 

1.7.9  初始化MySQL

注意:MySQL 5.7.6之后的版本初始化数据库不再使用mysql_install_db,但是在MySQL 5.7.19里依然保留着这个文件。

官网:https://dev.mysql.com/doc/refman/5.7/en/mysql-install-db.html

mysql_install_db is deprecated as of MySQL 5.7.6 because its functionality has been integrated into mysqld, the MySQL server. To initialize a MySQL installation, invoke mysqld with the --initialize or --initialize-insecure option. For more information, see Section 2.10.1.1, “Initializing the Data Directory Manually Using mysqld”. mysql_install_db will be removed in a future MySQL release.

[root@LHRDB mysql5719]# ll

total 60

drwxr-xr-x.  2 mysql mysql  4096 Aug 23 13:27 bin

-rw-r--r--.  1 mysql mysql 17987 Jun 22 22:13 COPYING

drwxr-xr-x.  2 mysql mysql  4096 Aug 23 13:35 data

drwxr-xr-x.  2 mysql mysql  4096 Aug 23 13:28 docs

drwxr-xr-x.  3 mysql mysql  4096 Aug 23 13:27 include

drwxr-xr-x.  5 mysql mysql  4096 Aug 23 13:28 lib

drwxr-xr-x.  2 mysql mysql  4096 Aug 23 13:35 log

drwxr-xr-x.  4 mysql mysql  4096 Aug 23 13:27 man

-rw-r--r--.  1 mysql mysql  2478 Jun 22 22:13 README

drwxr-xr-x. 28 mysql mysql  4096 Aug 23 13:28 share

drwxr-xr-x.  2 mysql mysql  4096 Aug 23 13:28 support-files

[root@LHRDB mysql5719]# ./bin/mysqld --initialize --user=mysql --basedir=/var/lib/mysql57/mysql5719  --datadir=/var/lib/mysql57/mysql5719/data

2017-08-23T05:45:58.820448Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).

2017-08-23T05:45:59.123446Z 0 [Warning] InnoDB: New log files created, LSN=45790

2017-08-23T05:45:59.197904Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.

2017-08-23T05:45:59.273227Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 571ab53c-87c6-11e7-ab76-000c291823c2.

2017-08-23T05:45:59.276384Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.

2017-08-23T05:45:59.277461Z 1 [Note] A temporary password is generated for root@localhost: k;A3Dktywkyj

[root@LHRDB mysql5719]#

 

这里生成的临时密码为:k;A3Dktywkyj

该过程会在data目录下生成默认数据库:

[root@LHRDB mysql5719]# cd data

[root@LHRDB data]# ll

total 110620

-rw-r-----. 1 mysql mysql       56 Aug 23 13:45 auto.cnf

-rw-r-----. 1 mysql mysql      420 Aug 23 13:46 ib_buffer_pool

-rw-r-----. 1 mysql mysql 12582912 Aug 23 13:46 ibdata1

-rw-r-----. 1 mysql mysql 50331648 Aug 23 13:46 ib_logfile0

-rw-r-----. 1 mysql mysql 50331648 Aug 23 13:45 ib_logfile1

drwxr-x---. 2 mysql mysql     4096 Aug 23 13:45 mysql

drwxr-x---. 2 mysql mysql     4096 Aug 23 13:45 performance_schema

drwxr-x---. 2 mysql mysql    12288 Aug 23 13:46 sys

[root@LHRDB data]# du -sh .

122M    .

 

1.7.10  生成秘钥

创建SSL和RSA文件,关于这部分更多请参考:https://dev.mysql.com/doc/refman/5.7/en/mysql-ssl-rsa-setup.html。也可以不执行这个步骤。

[root@LHRDB mysql5719]# ./bin/mysql_ssl_rsa_setup --datadir=/var/lib/mysql57/mysql5719/data

Generating a 2048 bit RSA private key

................................................................................................................+++

............................+++

writing new private key to 'ca-key.pem'

-----

Generating a 2048 bit RSA private key

......................................+++

.................+++

writing new private key to 'server-key.pem'

-----

Generating a 2048 bit RSA private key

........................+++

.................................................................+++

writing new private key to 'client-key.pem'

-----

 

 

 

1.7.11  配置/etc/my.cnf

生产库上根据需要配置更多参数:

[root@LHRDB support-files]# more /etc/my.cnf

[client]

port=3306

socket=/var/lib/mysql57/mysql.sock

[mysqld]

basedir=/var/lib/mysql57/mysql5719

datadir=/var/lib/mysql57/mysql5719/data

socket=/var/lib/mysql57/mysql.sock

user=mysql

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

 

[mysqld_safe]

log-error=/var/lib/mysql57/mysql5719/log/mysqld.log

pid-file=/var/lib/mysql57/mysql5719/data/mysqld.pid

1.7.12  配置开机启动文件

[root@LHRDB mysql5719]# cd support-files/

[root@LHRDB support-files]# ll

total 24

-rw-r--r--. 1 mysql mysql   773 Jun 22 22:13 magic

-rwxr-xr-x. 1 mysql mysql  1061 Jun 22 22:54 mysqld_multi.server

-rwxr-xr-x. 1 mysql mysql   894 Jun 22 22:54 mysql-log-rotate

-rwxr-xr-x. 1 mysql mysql 10576 Jun 22 22:54 mysql.server

[root@LHRDB support-files]# cp mysql.server /etc/init.d/mysql57

[root@LHRDB support-files]# chmod 755 /etc/init.d/mysql57

[root@LHRDB support-files]# chkconfig --add mysql57

[root@LHRDB support-files]# chkconfig mysql57 on

[root@LHRDB support-files]# chkconfig --level 345 mysql57 on

 

 

注意:这里的MySQL服务为mysql57

1.7.13  启动MySQL

[root@LHRDB support-files]# service mysql57 start

Starting MySQL.2017-08-23T06:18:23.060126Z mysqld_safe error: log-error set to '/var/lib/mysql57/mysql5719/log/mysqld.log', however file don't exists. Create writable for user 'mysql'.

The server quit without updating PID file (/var/lib/mysql57/mysql5719/data/LHRDB.pid).[FAILED]

[root@LHRDB support-files]# cd /var/lib/mysql57/mysql5719/log/

[root@LHRDB log]# ll

total 0

[root@LHRDB log]# cd ..

[root@LHRDB mysql5719]# ll

total 60

drwxr-xr-x.  2 mysql mysql  4096 Aug 23 13:27 bin

-rw-r--r--.  1 mysql mysql 17987 Jun 22 22:13 COPYING

drwxr-xr-x.  5 mysql mysql  4096 Aug 23 13:46 data

drwxr-xr-x.  2 mysql mysql  4096 Aug 23 13:28 docs

drwxr-xr-x.  3 mysql mysql  4096 Aug 23 13:27 include

drwxr-xr-x.  5 mysql mysql  4096 Aug 23 13:28 lib

drwxr-xr-x.  2 mysql mysql  4096 Aug 23 13:35 log

drwxr-xr-x.  4 mysql mysql  4096 Aug 23 13:27 man

-rw-r--r--.  1 mysql mysql  2478 Jun 22 22:13 README

drwxr-xr-x. 28 mysql mysql  4096 Aug 23 13:28 share

drwxr-xr-x.  2 mysql mysql  4096 Aug 23 13:28 support-files

[root@LHRDB mysql5719]# echo '' > /var/lib/mysql57/mysql5719/log/mysqld.log

[root@LHRDB mysql5719]# chown mysql.mysql /var/lib/mysql57/mysql5719/log/mysqld.log

[root@LHRDB mysql5719]# service mysql57 start

Starting MySQL.[  OK  ]

[root@LHRDB mysql5719]# ps -ef|grep mysql

root     18194     1  0 14:20 pts/1    00:00:00 /bin/sh /var/lib/mysql57/mysql5719/bin/mysqld_safe --datadir=/var/lib/mysql57/mysql5719/data --pid-file=/var/lib/mysql57/mysql5719/data/LHRDB.pid

mysql    18370 18194  0 14:20 pts/1    00:00:00 /var/lib/mysql57/mysql5719/bin/mysqld --basedir=/var/lib/mysql57/mysql5719 --datadir=/var/lib/mysql57/mysql5719/data --plugin-dir=/var/lib/mysql57/mysql5719/lib/plugin --user=mysql --log-error=/var/lib/mysql57/mysql5719/log/mysqld.log --pid-file=/var/lib/mysql57/mysql5719/data/LHRDB.pid --socket=/var/lib/mysql57/mysql.sock

root     18407 13196  0 14:21 pts/1    00:00:00 grep mysql

[root@LHRDB mysql5719]#

 

 

 

或者:

[root@LHRDB ~]# which mysqld_safe

/var/lib/mysql57/mysql5719/bin/mysqld_safe

[root@LHRDB ~]# mysqld_safe --user=mysql &

[1] 18674

[root@LHRDB ~]# 2017-08-23T06:40:04.996137Z mysqld_safe Logging to '/var/lib/mysql57/mysql5719/log/mysqld.log'.

2017-08-23T06:40:05.053483Z mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql57/mysql5719/data

 

 

1.7.14  配置环境变量

编辑文件/etc/profile,在最后添加如下的内容:

MYSQL_HOME=/var/lib/mysql57/mysql5719

PATH=$PATH:$MYSQL_HOME/bin

 

让环境变量生效:source /etc/profile

 

1.7.15  登录MySQL并修改密码

[root@LHRDB ~]# mysql -p

Enter password:     ---》临时密码为:k;A3Dktywkyj

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

Your MySQL connection id is 3

Server version: 5.7.19

 

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

 

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

 

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

 

mysql>

mysql> show databases;

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

 

mysql> set password=password('lhr');

Query OK, 0 rows affected, 1 warning (0.02 sec)

 

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| sys                |

+--------------------+

4 rows in set (0.04 sec)

 

修改密码也可以用:update mysql.user set authentication_string=password('lhr') where user='root';

 

1.7.16  设置远程登录

mysql> grant all privileges on *.* to root@'%' identified by 'lhr';

Query OK, 0 rows affected, 1 warning (0.00 sec)

 

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

 

mysql> select host,user from mysql.user;

+-----------+---------------+

| host      | user          |

+-----------+---------------+

| %         | root          |

| localhost | mysql.session |

| localhost | mysql.sys     |

| localhost | root          |

+-----------+---------------+

4 rows in set (0.00 sec)

 

[root@LHRDB ~]# mysql -uroot -plhr -h192.168.59.159

mysql: [Warning] Using a password on the command line interface can be insecure.

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

Your MySQL connection id is 4

Server version: 5.7.19 MySQL Community Server (GPL)

 

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

 

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

 

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

 

mysql>

 

 

 

1.7.17  Windows远程登录

在Windows下远程登录:

D:\Users\xiaomaimiao>mysql -uroot -plhr -h192.168.59.159

Warning: Using a password on the command line interface can be insecure.

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

Your MySQL connection id is 6

Server version: 5.7.19 MySQL Community Server (GPL)

 

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

 

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

 

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

 

mysql>

 

 

可能会出现下面的错误:

D:\Users\xiaomaimiao>mysql -uroot -plhr -h192.168.59.159

Warning: Using a password on the command line interface can be insecure.

ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.59.159' (10060)

 

原因:主机192.168.59.159上的防火墙未关闭

解决办法:关闭防火墙,以下2个命令都需要执行:

chkconfig iptables off   ---永久

service iptables stop    ---临时

 

1.7.18  客户端工具登录

 

1.7.18.1  Navicat for MySQL

wps4FF3.tmp 

 

 

wps4FF4.tmp 

1.7.18.2  MySQLWorkbench

MySQL官方提供的工具,还是比较实用的:

wps4FF5.tmp 

wps5006.tmp 

该工具比较强大,有很多的实用功能:

wps5007.tmp 

1.8  MySQL 5.6安装

1.8.1  下载

wps5008.tmp 

 

1.8.2  OS路径设置

[root@LHRDB ~]# df -h

Filesystem                                Size  Used Avail Use% Mounted on

/dev/mapper/vg_rootlhr-Vol00              9.9G  4.8G  4.6G  51% /

tmpfs                                     2.0G   72K  2.0G   1% /dev/shm

/dev/sda1                                 194M   35M  150M  19% /boot

/dev/mapper/vg_rootlhr-Vol01              3.0G  681M  2.2G  24% /tmp

/dev/mapper/vg_rootlhr-Vol03              3.0G   69M  2.8G   3% /home

/dev/mapper/vg_mysqlsoft-lv_mysqlsoft_57  5.0G  2.7G  2.0G  58% /var/lib/mysql57

.host:/                                   331G  272G   59G  83% /mnt/hgfs

[root@LHRDB ~]# vgs

  VG           #PV #LV #SN Attr   VSize  VFree

  vg_mysqlsoft   1   1   0 wz--n- 10.00g 5.00g

  vg_rootlhr     2   4   0 wz--n- 19.80g 1.80g

[root@LHRDB ~]# lvcreate -n lv_mysqlsoft_56 -L 2G vg_mysqlsoft

  Logical volume "lv_mysqlsoft_56" created

[root@LHRDB ~]# mkfs.ext4 /dev/vg_mysqlsoft/lv_mysqlsoft_56

mke2fs 1.41.12 (17-May-2010)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

131072 inodes, 524288 blocks

26214 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=536870912

16 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks:

        32768, 98304, 163840, 229376, 294912

 

Writing inode tables: done                           

Creating journal (16384 blocks): done

Writing superblocks and filesystem accounting information: done

 

This filesystem will be automatically checked every 36 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

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

-bash: cd: /usr/local/mysql: No such file or directory

[root@LHRDB ~]# mkdir /usr/local/mysql56

[root@LHRDB ~]# chown mysql /usr/local/mysql56

[root@LHRDB ~]# mount /dev/vg_mysqlsoft/lv_mysqlsoft_56  /usr/local/mysql56/

[root@LHRDB ~]# df -h

Filesystem                                Size  Used Avail Use% Mounted on

/dev/mapper/vg_rootlhr-Vol00              9.9G  4.8G  4.6G  51% /

tmpfs                                     2.0G   72K  2.0G   1% /dev/shm

/dev/sda1                                 194M   35M  150M  19% /boot

/dev/mapper/vg_rootlhr-Vol01              3.0G  681M  2.2G  24% /tmp

/dev/mapper/vg_rootlhr-Vol03              3.0G   69M  2.8G   3% /home

/dev/mapper/vg_mysqlsoft-lv_mysqlsoft_57  5.0G  2.7G  2.0G  58% /var/lib/mysql57

.host:/                                   331G  272G   59G  83% /mnt/hgfs

/dev/mapper/vg_mysqlsoft-lv_mysqlsoft_56  2.0G   67M  1.9G   4% /usr/local/mysql56

 

 

1.8.3  安装MySQL 5.6

rpm的安装方式请参考:

http://blog.itpub.net/26736162/viewspace-1349705/

http://blog.itpub.net/26736162/viewspace-1349787/

 

[root@LHRDB mysql56]# tar -zxvf /tmp/mysql-5.6.37-linux-glibc2.12-x86_64.tar.gz -C /usr/local/mysql56/

mysql-5.6.37-linux-glibc2.12-x86_64/sql-bench/test-ATIS

mysql-5.6.37-linux-glibc2.12-x86_64/sql-bench/test-select

mysql-5.6.37-linux-glibc2.12-x86_64/sql-bench/crash-me

mysql-5.6.37-linux-glibc2.12-x86_64/sql-bench/test-wisconsin

mysql-5.6.37-linux-glibc2.12-x86_64/sql-bench/innotest1b

mysql-5.6.37-linux-glibc2.12-x86_64/sql-bench/innotest2a

mysql-5.6.37-linux-glibc2.12-x86_64/sql-bench/innotest1

mysql-5.6.37-linux-glibc2.12-x86_64/sql-bench/test-create

mysql-5.6.37-linux-glibc2.12-x86_64/sql-bench/bench-count-distinct

。。。。。。。。。。。。省略。。。。。。。。。。。。。。

mysql-5.6.37-linux-glibc2.12-x86_64/mysql-test/t/events_restart-master.opt

mysql-5.6.37-linux-glibc2.12-x86_64/mysql-test/t/empty_table.test

mysql-5.6.37-linux-glibc2.12-x86_64/mysql-test/t/innodb_mrr-master.opt

mysql-5.6.37-linux-glibc2.12-x86_64/mysql-test/t/ssl_mode_no_ssl-master.opt

mysql-5.6.37-linux-glibc2.12-x86_64/mysql-test/valgrind.supp

mysql-5.6.37-linux-glibc2.12-x86_64/mysql-test/mysql-test-run.pl

[root@LHRDB mysql56]# mv mysql-5.6.37-linux-glibc2.12-x86_64 mysql5637

[root@LHRDB mysql56]# cd mysql5637/

[root@LHRDB mysql5637]# ll

total 68

drwxr-xr-x  2 mysql mysql  4096 Aug 25 18:24 bin

-rw-r--r--  1 mysql mysql 17987 Jun  3 01:42 COPYING

drwxr-xr-x  3 mysql mysql  4096 Aug 25 18:24 data

drwxr-xr-x  2 mysql mysql  4096 Aug 25 18:24 docs

drwxr-xr-x  3 mysql mysql  4096 Aug 25 18:24 include

drwxr-xr-x  3 mysql mysql  4096 Aug 25 18:24 lib

drwxr-xr-x  4 mysql mysql  4096 Aug 25 18:24 man

drwxr-xr-x 10 mysql mysql  4096 Aug 25 18:24 mysql-test

-rw-r--r--  1 mysql mysql  2496 Jun  3 01:42 README

drwxr-xr-x  2 mysql mysql  4096 Aug 25 18:24 scripts

drwxr-xr-x 28 mysql mysql  4096 Aug 25 18:24 share

drwxr-xr-x  4 mysql mysql  4096 Aug 25 18:24 sql-bench

drwxr-xr-x  2 mysql mysql  4096 Aug 25 18:24 support-files

[root@LHRDB mysql5637]# mkdir log

[root@LHRDB mysql5637]# chown mysql.mysql log

[root@LHRDB mysql5637]# ll

total 72

drwxr-xr-x  2 mysql mysql  4096 Aug 25 18:24 bin

-rw-r--r--  1 mysql mysql 17987 Jun  3 01:42 COPYING

drwxr-xr-x  3 mysql mysql  4096 Aug 25 18:24 data

drwxr-xr-x  2 mysql mysql  4096 Aug 25 18:24 docs

drwxr-xr-x  3 mysql mysql  4096 Aug 25 18:24 include

drwxr-xr-x  3 mysql mysql  4096 Aug 25 18:24 lib

drwxr-xr-x  2 mysql mysql  4096 Aug 25 18:32 log

drwxr-xr-x  4 mysql mysql  4096 Aug 25 18:24 man

drwxr-xr-x 10 mysql mysql  4096 Aug 25 18:24 mysql-test

-rw-r--r--  1 mysql mysql  2496 Jun  3 01:42 README

drwxr-xr-x  2 mysql mysql  4096 Aug 25 18:24 scripts

drwxr-xr-x 28 mysql mysql  4096 Aug 25 18:24 share

drwxr-xr-x  4 mysql mysql  4096 Aug 25 18:24 sql-bench

drwxr-xr-x  2 mysql mysql  4096 Aug 25 18:24 support-files

 

 

 

1.8.4  初始化

[root@LHRDB mysql5637]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql56/mysql5637 --datadir=/usr/local/mysql56/mysql5637/data

Installing MySQL system tables...2017-08-25 18:37:13 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).

2017-08-25 18:37:13 0 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.

2017-08-25 18:37:13 0 [Note] /usr/local/mysql56/mysql5637/bin/mysqld (mysqld 5.6.37) starting as process 17757 ...

2017-08-25 18:37:13 17757 [Note] InnoDB: Using atomics to ref count buffer pool pages

2017-08-25 18:37:13 17757 [Note] InnoDB: The InnoDB memory heap is disabled

2017-08-25 18:37:13 17757 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins

2017-08-25 18:37:13 17757 [Note] InnoDB: Memory barrier is not used

2017-08-25 18:37:13 17757 [Note] InnoDB: Compressed tables use zlib 1.2.3

2017-08-25 18:37:13 17757 [Note] InnoDB: Using Linux native AIO

2017-08-25 18:37:13 17757 [Note] InnoDB: Using CPU crc32 instructions

2017-08-25 18:37:13 17757 [Note] InnoDB: Initializing buffer pool, size = 128.0M

2017-08-25 18:37:13 17757 [Note] InnoDB: Completed initialization of buffer pool

2017-08-25 18:37:13 17757 [Note] InnoDB: The first specified data file ./ibdata1 did not exist: a new database to be created!

2017-08-25 18:37:13 17757 [Note] InnoDB: Setting file ./ibdata1 size to 12 MB

2017-08-25 18:37:13 17757 [Note] InnoDB: Database physically writes the file full: wait...

2017-08-25 18:37:13 17757 [Note] InnoDB: Setting log file ./ib_logfile101 size to 48 MB

2017-08-25 18:37:13 17757 [Note] InnoDB: Setting log file ./ib_logfile1 size to 48 MB

2017-08-25 18:37:13 17757 [Note] InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0

2017-08-25 18:37:13 17757 [Warning] InnoDB: New log files created, LSN=45781

2017-08-25 18:37:13 17757 [Note] InnoDB: Doublewrite buffer not found: creating new

2017-08-25 18:37:13 17757 [Note] InnoDB: Doublewrite buffer created

2017-08-25 18:37:13 17757 [Note] InnoDB: 128 rollback segment(s) are active.

2017-08-25 18:37:13 17757 [Warning] InnoDB: Creating foreign key constraint system tables.

2017-08-25 18:37:13 17757 [Note] InnoDB: Foreign key constraint system tables created

2017-08-25 18:37:13 17757 [Note] InnoDB: Creating tablespace and datafile system tables.

2017-08-25 18:37:13 17757 [Note] InnoDB: Tablespace and datafile system tables created.

2017-08-25 18:37:13 17757 [Note] InnoDB: Waiting for purge to start

2017-08-25 18:37:13 17757 [Note] InnoDB: 5.6.37 started; log sequence number 0

2017-08-25 18:37:14 17757 [Note] Binlog end

2017-08-25 18:37:14 17757 [Note] InnoDB: FTS optimize thread exiting.

2017-08-25 18:37:14 17757 [Note] InnoDB: Starting shutdown...

2017-08-25 18:37:15 17757 [Note] InnoDB: Shutdown completed; log sequence number 1625977

OK

 

Filling help tables...2017-08-25 18:37:15 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).

2017-08-25 18:37:15 0 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.

2017-08-25 18:37:15 0 [Note] /usr/local/mysql56/mysql5637/bin/mysqld (mysqld 5.6.37) starting as process 17779 ...

2017-08-25 18:37:15 17779 [Note] InnoDB: Using atomics to ref count buffer pool pages

2017-08-25 18:37:15 17779 [Note] InnoDB: The InnoDB memory heap is disabled

2017-08-25 18:37:15 17779 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins

2017-08-25 18:37:15 17779 [Note] InnoDB: Memory barrier is not used

2017-08-25 18:37:15 17779 [Note] InnoDB: Compressed tables use zlib 1.2.3

2017-08-25 18:37:15 17779 [Note] InnoDB: Using Linux native AIO

2017-08-25 18:37:15 17779 [Note] InnoDB: Using CPU crc32 instructions

2017-08-25 18:37:15 17779 [Note] InnoDB: Initializing buffer pool, size = 128.0M

2017-08-25 18:37:15 17779 [Note] InnoDB: Completed initialization of buffer pool

2017-08-25 18:37:15 17779 [Note] InnoDB: Highest supported file format is Barracuda.

2017-08-25 18:37:15 17779 [Note] InnoDB: 128 rollback segment(s) are active.

2017-08-25 18:37:15 17779 [Note] InnoDB: Waiting for purge to start

2017-08-25 18:37:15 17779 [Note] InnoDB: 5.6.37 started; log sequence number 1625977

2017-08-25 18:37:15 17779 [Note] Binlog end

2017-08-25 18:37:15 17779 [Note] InnoDB: FTS optimize thread exiting.

2017-08-25 18:37:15 17779 [Note] InnoDB: Starting shutdown...

2017-08-25 18:37:17 17779 [Note] InnoDB: Shutdown completed; log sequence number 1625987

OK

 

To start mysqld at boot time you have to copy

support-files/mysql.server to the right place for your system

 

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !

To do so, start the server, then issue the following commands:

 

  /usr/local/mysql56/mysql5637/bin/mysqladmin -u root password 'new-password'

  /usr/local/mysql56/mysql5637/bin/mysqladmin -u root -h LHRDB password 'new-password'

 

Alternatively you can run:

 

  /usr/local/mysql56/mysql5637/bin/mysql_secure_installation

 

which will also give you the option of removing the test

databases and anonymous user created by default.  This is

strongly recommended for production servers.

 

See the manual for more instructions.

 

You can start the MySQL daemon with:

 

  cd . ; /usr/local/mysql56/mysql5637/bin/mysqld_safe &

 

You can test the MySQL daemon with mysql-test-run.pl

 

  cd mysql-test ; perl mysql-test-run.pl

 

Please report any problems at http://bugs.mysql.com/

 

The latest information about MySQL is available on the web at

 

  http://www.mysql.com

 

Support MySQL by buying support/licenses at http://shop.mysql.com

 

New default config file was created as /usr/local/mysql56/mysql5637/my.cnf and

will be used by default by the server when you start it.

You may edit this file to change server settings

 

WARNING: Default config file /etc/my.cnf exists on the system

This file will be read by default by the MySQL server

If you do not want to use this, either remove it, or use the

--defaults-file argument to mysqld_safe when starting the server

[root@LHRDB mysql5637]# cd data

[root@LHRDB data]# ll

total 110604

-rw-rw---- 1 mysql mysql 12582912 Aug 25 18:37 ibdata1

-rw-rw---- 1 mysql mysql 50331648 Aug 25 18:37 ib_logfile0

-rw-rw---- 1 mysql mysql 50331648 Aug 25 18:37 ib_logfile1

drwx------ 2 mysql mysql     4096 Aug 25 18:37 mysql

drwx------ 2 mysql mysql     4096 Aug 25 18:37 performance_schema

drwxr-xr-x 2 mysql mysql     4096 Aug 25 18:24 test

 

 

1.8.5  配置参数文件并启动MySQL

[root@LHRDB mysql5637]# more ./support-files/my.cnf

[mysqld]

basedir=/usr/local/mysql56/mysql5637

datadir=/usr/local/mysql56/mysql5637/data

socket=/usr/local/mysql56/mysql5637/mysql.sock

log-error=/usr/local/mysql56/mysql5637/log/mysqld.log

user=mysql

port=3307

[root@LHRDB mysql5637]# echo '' > /usr/local/mysql56/mysql5637/log/mysqld.log

[root@LHRDB mysql5637]# ./bin/mysqld_safe --defaults-file=./support-files/my.cnf &

[2] 13852

[root@LHRDB mysql5637]# 170827 17:52:15 mysqld_safe Logging to '/usr/local/mysql56/mysql5637/log/mysqld.log'.

170827 17:52:15 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql56/mysql5637/data

 

[root@LHRDB mysql5637]# ps -ef|grep mysql

root     13195 13170  0 17:35 pts/0    00:00:00 tail -f /var/lib/mysql57/mysql5719/log/mysqld_multi.log

root     13671 13198  0 17:45 pts/1    00:00:00 /bin/sh ./bin/mysqld_safe --defaults-file=./support-files/my.cnf

mysql    13811 13671  0 17:45 pts/1    00:00:00 /usr/local/mysql55/mysql5557/bin/mysqld --defaults-file=./support-files/my.cnf --basedir=/usr/local/mysql55/mysql5557 --datadir=/usr/local/mysql55/mysql5557/data --plugin-dir=/usr/local/mysql55/mysql5557/lib/plugin --user=mysql --log-error=/usr/local/mysql55/mysql5557/log/mysqld.log --pid-file=LHRDB.pid --socket=/usr/local/mysql55/mysql5557/mysql.sock --port=3308

root     13852 13198  0 17:52 pts/1    00:00:00 /bin/sh ./bin/mysqld_safe --defaults-file=./support-files/my.cnf

mysql    13990 13852 10 17:52 pts/1    00:00:00 /usr/local/mysql56/mysql5637/bin/mysqld --defaults-file=./support-files/my.cnf --basedir=/usr/local/mysql56/mysql5637 --datadir=/usr/local/mysql56/mysql5637/data --plugin-dir=/usr/local/mysql56/mysql5637/lib/plugin --user=mysql --log-error=/usr/local/mysql56/mysql5637/log/mysqld.log --pid-file=LHRDB.pid --socket=/usr/local/mysql56/mysql5637/mysql.sock --port=3307

root     14015 13198  0 17:52 pts/1    00:00:00 grep mysql

 

 

1.8.6  修改密码

MySQL 5.6的二进制安装默认密码为空。

set password=password('lhr');

[root@LHRDB mysql5719]# mysql -uroot  --socket=/usr/local/mysql56/mysql5637/mysql.sock -p

Enter password:

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

Your MySQL connection id is 4

Server version: 5.6.37 MySQL Community Server (GPL)

 

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

 

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

 

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

 

mysql> set password=password("lhr");

Query OK, 0 rows affected (0.02 sec)

 

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| test               |

+--------------------+

4 rows in set (0.00 sec)

 

 

 

1.8.7  设置远程登录

mysql> select host,user from mysql.user;

+-----------+------+

| host      | user |

+-----------+------+

| 127.0.0.1 | root |

| ::1       | root |

| lhrdb     |      |

| lhrdb     | root |

| localhost |      |

| localhost | root |

+-----------+------+

6 rows in set (0.00 sec)

 

mysql> grant all privileges on *.* to root@'%' identified by 'lhr';

Query OK, 0 rows affected, 1 warning (0.00 sec)

 

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

 

mysql> select host,user from mysql.user;

+-----------+------+

| host      | user |

+-----------+------+

| %         | root |

| 127.0.0.1 | root |

| ::1       | root |

| lhrdb     |      |

| lhrdb     | root |

| localhost |      |

| localhost | root |

+-----------+------+

 

 

 

 

1.8.8  远程登录

D:\Users\xiaomaimiao>mysql -uroot -plhr -h192.168.59.159 -P 3307

Warning: Using a password on the command line interface can be insecure.

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

Your MySQL connection id is 6

Server version: 5.6.37 MySQL Community Server (GPL)

 

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

 

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

 

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

 

mysql>

 

 

 

1.9  MySQL 5.5安装

1.9.1  下载

wps5018.tmp 

 

1.9.2  OS路径设置

[root@LHRDB ~]# lvcreate -n lv_mysqlsoft_55 -L 2G vg_mysqlsoft

  Logical volume "lv_mysqlsoft_55" created

[root@LHRDB ~]# mkfs.ext4 /dev/vg_mysqlsoft/lv_mysqlsoft_55

mke2fs 1.41.12 (17-May-2010)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

131072 inodes, 524288 blocks

26214 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=536870912

16 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks:

        32768, 98304, 163840, 229376, 294912

 

Writing inode tables: done                           

Creating journal (16384 blocks): done

Writing superblocks and filesystem accounting information: done

 

This filesystem will be automatically checked every 24 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

[root@LHRDB ~]# mkdir /usr/local/mysql55

[root@LHRDB ~]# chown mysql /usr/local/mysql55

[root@LHRDB ~]# mount /dev/vg_mysqlsoft/lv_mysqlsoft_55  /usr/local/mysql55/

[root@LHRDB ~]# df -h

Filesystem                                Size  Used Avail Use% Mounted on

/dev/mapper/vg_rootlhr-Vol00              9.9G  4.8G  4.6G  52% /

tmpfs                                     2.0G   68K  2.0G   1% /dev/shm

/dev/sda1                                 194M   35M  150M  19% /boot

/dev/mapper/vg_rootlhr-Vol01              3.0G  1.1G  1.8G  40% /tmp

/dev/mapper/vg_rootlhr-Vol03              3.0G   69M  2.8G   3% /home

/dev/mapper/vg_mysqlsoft-lv_mysqlsoft_57  5.0G  2.7G  2.0G  58% /var/lib/mysql57

.host:/                                   331G  272G   59G  83% /mnt/hgfs

/dev/mapper/vg_mysqlsoft-lv_mysqlsoft_56  2.0G   67M  1.9G   4% /usr/local/mysql56

/dev/mapper/vg_mysqlsoft-lv_mysqlsoft_55  2.0G   67M  1.9G   4% /usr/local/mysql55

 

 

 

1.9.3  安装MySQL 5.5

[root@LHRDB mysql56]# tar -zxvf /tmp/mysql-5.5.57-linux-glibc2.12-x86_64.tar.gz -C /usr/local/mysql55

mysql-5.5.57-linux-glibc2.12-x86_64/scripts/mysql_install_db

mysql-5.5.57-linux-glibc2.12-x86_64/INSTALL-BINARY

mysql-5.5.57-linux-glibc2.12-x86_64/share/slovak/errmsg.sys

mysql-5.5.57-linux-glibc2.12-x86_64/share/norwegian/errmsg.sys

mysql-5.5.57-linux-glibc2.12-x86_64/share/fill_help_tables.sql

mysql-5.5.57-linux-glibc2.12-x86_64/share/spanish/errmsg.sys

mysql-5.5.57-linux-glibc2.12-x86_64/share/czech/errmsg.sys

mysql-5.5.57-linux-glibc2.12-x86_64/share/dutch/errmsg.sys

。。。。。。。。。。。。省略。。。。。。。。。。。。。。

mysql-5.5.57-linux-glibc2.12-x86_64/mysql-test/suite/auth_sec/t/secure_file_priv_null-master.opt

mysql-5.5.57-linux-glibc2.12-x86_64/mysql-test/suite/auth_sec/t/secure_file_priv_warnings_win.test

mysql-5.5.57-linux-glibc2.12-x86_64/mysql-test/suite/auth_sec/t/secure_file_priv_error.test

mysql-5.5.57-linux-glibc2.12-x86_64/mysql-test/suite/auth_sec/t/secure_file_priv_null.test

mysql-5.5.57-linux-glibc2.12-x86_64/mysql-test/suite/auth_sec/t/secure_file_priv_warnings.test

mysql-5.5.57-linux-glibc2.12-x86_64/mysql-test/suite/auth_sec/r/secure_file_priv_warnings.result

mysql-5.5.57-linux-glibc2.12-x86_64/mysql-test/suite/auth_sec/r/secure_file_priv_error.result

mysql-5.5.57-linux-glibc2.12-x86_64/mysql-test/suite/auth_sec/r/secure_file_priv_warnings_win.result

mysql-5.5.57-linux-glibc2.12-x86_64/mysql-test/suite/auth_sec/r/secure_file_priv_null.result

mysql-5.5.57-linux-glibc2.12-x86_64/mysql-test/suite/auth_sec/r/cert_verify.result

mysql-5.5.57-linux-glibc2.12-x86_64/mysql-test/suite/auth_sec/r/secure_file_priv_warnings_not_win.result

[root@LHRDB tmp]# cd /usr/local/mysql55

[root@LHRDB mysql55]# ll

total 4

drwxr-xr-x 13 root root 4096 Aug 27 17:07 mysql-5.5.57-linux-glibc2.12-x86_64

[root@LHRDB mysql55]#

[root@LHRDB mysql55]# mv mysql-5.5.57-linux-glibc2.12-x86_64 mysql5557

[root@LHRDB mysql55]# cd mysql5557/

[root@LHRDB mysql5557]# ll

total 72

drwxr-xr-x  2 root root   4096 Aug 27 17:07 bin

-rw-r--r--  1 7161 31415 17987 Jun  5 14:38 COPYING

drwxr-xr-x  3 root root   4096 Aug 27 17:07 data

drwxr-xr-x  2 root root   4096 Aug 27 17:07 docs

drwxr-xr-x  3 root root   4096 Aug 27 17:07 include

-rw-r--r--  1 7161 31415   301 Jun  5 14:38 INSTALL-BINARY

drwxr-xr-x  3 root root   4096 Aug 27 17:07 lib

drwxr-xr-x  4 root root   4096 Aug 27 17:07 man

drwxr-xr-x 10 root root   4096 Aug 27 17:07 mysql-test

-rw-r--r--  1 7161 31415  2496 Jun  5 14:38 README

drwxr-xr-x  2 root root   4096 Aug 27 17:07 scripts

drwxr-xr-x 27 root root   4096 Aug 27 17:07 share

drwxr-xr-x  4 root root   4096 Aug 27 17:07 sql-bench

drwxr-xr-x  2 root root   4096 Aug 27 17:07 support-files

[root@LHRDB mysql5557]# mkdir log

[root@LHRDB mysql5557]# cd ..

[root@LHRDB mysql55]# chown mysql.mysql .

[root@LHRDB mysql55]# chown -R mysql.mysql .

 

 

 

1.9.4  初始化

[root@LHRDB mysql5557]# ll

total 76

drwxr-xr-x  2 mysql mysql  4096 Aug 27 17:07 bin

-rw-r--r--  1 mysql mysql 17987 Jun  5 14:38 COPYING

drwxr-xr-x  3 mysql mysql  4096 Aug 27 17:07 data

drwxr-xr-x  2 mysql mysql  4096 Aug 27 17:07 docs

drwxr-xr-x  3 mysql mysql  4096 Aug 27 17:07 include

-rw-r--r--  1 mysql mysql   301 Jun  5 14:38 INSTALL-BINARY

drwxr-xr-x  3 mysql mysql  4096 Aug 27 17:07 lib

drwxr-xr-x  2 mysql mysql  4096 Aug 27 17:10 log

drwxr-xr-x  4 mysql mysql  4096 Aug 27 17:07 man

drwxr-xr-x 10 mysql mysql  4096 Aug 27 17:07 mysql-test

-rw-r--r--  1 mysql mysql  2496 Jun  5 14:38 README

drwxr-xr-x  2 mysql mysql  4096 Aug 27 17:07 scripts

drwxr-xr-x 27 mysql mysql  4096 Aug 27 17:07 share

drwxr-xr-x  4 mysql mysql  4096 Aug 27 17:07 sql-bench

drwxr-xr-x  2 mysql mysql  4096 Aug 27 17:07 support-files

[root@LHRDB mysql5557]# pwd

/usr/local/mysql55/mysql5557

[root@LHRDB mysql5557]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql55/mysql5557 --datadir=/usr/local/mysql55/mysql5557/data

Installing MySQL system tables...

170827 17:12:09 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.

170827 17:12:09 [Note] /usr/local/mysql55/mysql5557/bin/mysqld (mysqld 5.5.57) starting as process 19995 ...

OK

Filling help tables...

170827 17:12:10 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.

170827 17:12:10 [Note] /usr/local/mysql55/mysql5557/bin/mysqld (mysqld 5.5.57) starting as process 20002 ...

OK

 

To start mysqld at boot time you have to copy

support-files/mysql.server to the right place for your system

 

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !

To do so, start the server, then issue the following commands:

 

/usr/local/mysql55/mysql5557/bin/mysqladmin -u root password 'new-password'

/usr/local/mysql55/mysql5557/bin/mysqladmin -u root -h LHRDB password 'new-password'

 

Alternatively you can run:

/usr/local/mysql55/mysql5557/bin/mysql_secure_installation

 

which will also give you the option of removing the test

databases and anonymous user created by default.  This is

strongly recommended for production servers.

 

See the manual for more instructions.

 

You can start the MySQL daemon with:

cd /usr/local/mysql55/mysql5557 ; /usr/local/mysql55/mysql5557/bin/mysqld_safe &

 

You can test the MySQL daemon with mysql-test-run.pl

cd /usr/local/mysql55/mysql5557/mysql-test ; perl mysql-test-run.pl

 

Please report any problems at http://bugs.mysql.com/

 

[root@LHRDB mysql5557]# ll

total 76

drwxr-xr-x  2 mysql mysql  4096 Aug 27 17:07 bin

-rw-r--r--  1 mysql mysql 17987 Jun  5 14:38 COPYING

drwxr-xr-x  5 mysql mysql  4096 Aug 27 17:12 data

drwxr-xr-x  2 mysql mysql  4096 Aug 27 17:07 docs

drwxr-xr-x  3 mysql mysql  4096 Aug 27 17:07 include

-rw-r--r--  1 mysql mysql   301 Jun  5 14:38 INSTALL-BINARY

drwxr-xr-x  3 mysql mysql  4096 Aug 27 17:07 lib

drwxr-xr-x  2 mysql mysql  4096 Aug 27 17:10 log

drwxr-xr-x  4 mysql mysql  4096 Aug 27 17:07 man

drwxr-xr-x 10 mysql mysql  4096 Aug 27 17:07 mysql-test

-rw-r--r--  1 mysql mysql  2496 Jun  5 14:38 README

drwxr-xr-x  2 mysql mysql  4096 Aug 27 17:07 scripts

drwxr-xr-x 27 mysql mysql  4096 Aug 27 17:07 share

drwxr-xr-x  4 mysql mysql  4096 Aug 27 17:07 sql-bench

drwxr-xr-x  2 mysql mysql  4096 Aug 27 17:07 support-files

[root@LHRDB mysql5557]# cd data/

[root@LHRDB data]# ll

total 12

drwx------ 2 mysql root  4096 Aug 27 17:12 mysql

drwx------ 2 mysql mysql 4096 Aug 27 17:12 performance_schema

drwxr-xr-x 2 mysql mysql 4096 Aug 27 17:07 test

[root@LHRDB data]# df -h

Filesystem                                Size  Used Avail Use% Mounted on

/dev/mapper/vg_rootlhr-Vol00              9.9G  4.6G  4.9G  49% /

tmpfs                                     2.0G   68K  2.0G   1% /dev/shm

/dev/sda1                                 194M   35M  150M  19% /boot

/dev/mapper/vg_rootlhr-Vol01              3.0G  1.2G  1.7G  42% /tmp

/dev/mapper/vg_rootlhr-Vol03              3.0G   69M  2.8G   3% /home

/dev/mapper/vg_mysqlsoft-lv_mysqlsoft_57  5.0G  2.7G  2.0G  58% /var/lib/mysql57

.host:/                                   331G  273G   58G  83% /mnt/hgfs

/dev/mapper/vg_mysqlsoft-lv_mysqlsoft_56  2.0G  1.4G  575M  70% /usr/local/mysql56

/dev/mapper/vg_mysqlsoft-lv_mysqlsoft_55  2.0G  848M  1.1G  45% /usr/local/mysql55

 

 

1.9.5  配置参数文件并启动MySQL

[root@LHRDB support-files]# more my.cnf

[mysqld]

basedir=/usr/local/mysql55/mysql5557

datadir=/usr/local/mysql55/mysql5557/data

socket=/usr/local/mysql55/mysql5557/mysql.sock

log-error=/usr/local/mysql55/mysql5557/log/mysqld.log

user=mysql

port=3308

[root@LHRDB support-files]# cd ..

[root@LHRDB mysql5557]#

[root@LHRDB mysql5557]# echo '' > /usr/local/mysql55/mysql5557/log/mysqld.log

[root@LHRDB mysql5557]#

[root@LHRDB mysql5557]# ./bin/mysqld_safe --defaults-file=./support-files/my.cnf &

[1] 13671

[root@LHRDB mysql5557]# 170827 17:45:54 mysqld_safe Logging to '/usr/local/mysql55/mysql5557/log/mysqld.log'.

170827 17:45:54 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql55/mysql5557/data

[root@LHRDB mysql5557]# ps -ef|grep mysql

root     13195 13170  0 17:35 pts/0    00:00:00 tail -f /var/lib/mysql57/mysql5719/log/mysqld_multi.log

root     13671 13198  0 17:45 pts/1    00:00:00 /bin/sh ./bin/mysqld_safe --defaults-file=./support-files/my.cnf

mysql    13811 13671  0 17:45 pts/1    00:00:00 /usr/local/mysql55/mysql5557/bin/mysqld --defaults-file=./support-files/my.cnf --basedir=/usr/local/mysql55/mysql5557 --datadir=/usr/local/mysql55/mysql5557/data --plugin-dir=/usr/local/mysql55/mysql5557/lib/plugin --user=mysql --log-error=/usr/local/mysql55/mysql5557/log/mysqld.log --pid-file=LHRDB.pid --socket=/usr/local/mysql55/mysql5557/mysql.sock --port=3308

root     13830 13198  0 17:45 pts/1    00:00:00 grep mysql

 

 

1.9.6  修改密码

MySQL 5.5的二进制安装默认密码为空。

set password=password('lhr');

[root@LHRDB mysql5719]# mysql -uroot  --socket=/usr/local/mysql55/mysql5557/mysql.sock -p

Enter password:

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

Your MySQL connection id is 4

Server version: 5.6.37 MySQL Community Server (GPL)

 

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

 

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

 

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

 

mysql> set password=password("lhr");

Query OK, 0 rows affected (0.02 sec)

 

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| test               |

+--------------------+

4 rows in set (0.00 sec)

 

 

 

1.9.7  设置远程登录

mysql> select host,user from mysql.user;

+-----------+------+

| host      | user |

+-----------+------+

| 127.0.0.1 | root |

| ::1       | root |

| lhrdb     |      |

| lhrdb     | root |

| localhost |      |

| localhost | root |

+-----------+------+

6 rows in set (0.00 sec)

 

mysql> grant all privileges on *.* to root@'%' identified by 'lhr';

Query OK, 0 rows affected, 1 warning (0.00 sec)

 

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

 

mysql> select host,user from mysql.user;

+-----------+------+

| host      | user |

+-----------+------+

| %         | root |

| 127.0.0.1 | root |

| ::1       | root |

| lhrdb     |      |

| lhrdb     | root |

| localhost |      |

| localhost | root |

+-----------+------+

 

 

 

 

1.9.8  远程登录

D:\Users\xiaomaimiao>mysql -uroot -plhr -h192.168.59.159 -P 3308

Warning: Using a password on the command line interface can be insecure.

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

Your MySQL connection id is 9

Server version: 5.5.57 MySQL Community Server (GPL)

 

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

 

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

 

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

 

mysql>

 

 

1.10  配置多版本、多实例开机自启动

1.10.1  配置/etc/my.cnf

[root@LHRDB support-files]# more /etc/my.cnf

[mysqld_multi]

mysqld=mysqld_safe

mysqladmin=/var/lib/mysql57/mysql5719/bin/mysqladmin

log=/var/lib/mysql57/mysql5719/log/mysqld_multi.log

user=root

pass=lhr

 

 

[client]

port=3306

socket=/var/lib/mysql57/mysql5719/mysql.sock

user=root

host=localhost

password=lhr

 

 

[mysqld]

basedir=/var/lib/mysql57/mysql5719

datadir=/var/lib/mysql57/mysql5719/data

socket=/var/lib/mysql57/mysql5719/mysql.sock

log-error=/var/lib/mysql57/mysql5719/log/mysqld.log

user=mysql

port=3306

 

 

[mysqld56]

basedir=/usr/local/mysql56/mysql5637

datadir=/usr/local/mysql56/mysql5637/data

socket=/usr/local/mysql56/mysql5637/mysql.sock

log-error=/usr/local/mysql56/mysql5637/log/mysqld.log

user=mysql

port=3307

 

 

[mysqld55]

basedir=/usr/local/mysql55/mysql5557

datadir=/usr/local/mysql55/mysql5557/data

socket=/usr/local/mysql55/mysql5557/mysql.sock

log-error=/usr/local/mysql55/mysql5557/log/mysqld.log

user=mysql

port=3308

 

 

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

 

[mysqld_safe]

log-error=/var/lib/mysql57/mysql5719/log/mysqld.log

#pid-file=/var/lib/mysql57/mysql5719/data/mysqld.pid

 

 

 

1.10.2  配置开机启动

[root@LHRDB mysql5719]# cd support-files/

[root@LHRDB support-files]# ll

total 24

-rw-r--r--. 1 mysql mysql   773 Jun 22 22:13 magic

-rwxr-xr-x. 1 mysql mysql  1061 Jun 22 22:54 mysqld_multi.server

-rwxr-xr-x. 1 mysql mysql   894 Jun 22 22:54 mysql-log-rotate

-rwxr-xr-x. 1 mysql mysql 10576 Jun 22 22:54 mysql.server

[root@LHRDB support-files]# cp mysqld_multi.server /etc/init.d/mysqld_multi

[root@LHRDB support-files]# chmod 755 /etc/init.d/mysqld_multi

[root@LHRDB support-files]# chkconfig --add mysqld_multi

[root@LHRDB support-files]# chkconfig mysqld_multi on

[root@LHRDB support-files]# chkconfig --level 345 mysqld_multi on

 

 

注意:这里的MySQL服务为mysqld_multi

编辑文件:/etc/init.d/mysqld_multi,修改如下3行的参数值:

. /etc/profile

basedir=/var/lib/mysql57/mysql5719

bindir=/var/lib/mysql57/mysql5719/bin

 

 

由于采用了mysqld_multi来统一管理MySQL的实例,所以,去掉mysql 5.7的开机启动。

chkconfig mysql57 off

[root@LHRDB init.d]# chkconfig mysql57 off

 

重启机器,试试效果:

[root@LHRDB init.d]# reboot

[root@LHRDB init.d]#

Broadcast message from root@LHRDB

        (/dev/pts/1) at 18:27 ...

 

The system is going down for reboot NOW!

 

 

重启之后:

[root@LHRDB ~]# ps -ef|grep mysql

root     12338     1  0 20:19 ?        00:00:00 /bin/sh /var/lib/mysql57/mysql5719/bin/mysqld_safe --basedir=/var/lib/mysql57/mysql5719 --datadir=/var/lib/mysql57/mysql5719/data --socket=/var/lib/mysql57/mysql5719/mysql.sock --log-error=/var/lib/mysql57/mysql5719/log/mysqld.log --user=mysql --port=3306

root     12401     1  0 20:19 ?        00:00:00 /bin/sh /var/lib/mysql57/mysql5719/bin/mysqld_safe --basedir=/usr/local/mysql56/mysql5637 --datadir=/usr/local/mysql56/mysql5637/data --socket=/usr/local/mysql56/mysql5637/mysql.sock --log-error=/usr/local/mysql56/mysql5637/log/mysqld.log --user=mysql --port=3307

root     12471     1  0 20:19 ?        00:00:00 /bin/sh /var/lib/mysql57/mysql5719/bin/mysqld_safe --basedir=/usr/local/mysql55/mysql5557 --datadir=/usr/local/mysql55/mysql5557/data --socket=/usr/local/mysql55/mysql5557/mysql.sock --log-error=/usr/local/mysql55/mysql5557/log/mysqld.log --user=mysql --port=3308 --symbolic-links=0

mysql    12792 12471  0 20:19 ?        00:00:00 /usr/local/mysql55/mysql5557/bin/mysqld --basedir=/usr/local/mysql55/mysql5557 --datadir=/usr/local/mysql55/mysql5557/data --plugin-dir=/usr/local/mysql55/mysql5557/lib/plugin --user=mysql --symbolic-links=0 --log-error=/usr/local/mysql55/mysql5557/log/mysqld.log --pid-file=LHRDB.pid --socket=/usr/local/mysql55/mysql5557/mysql.sock --port=3308

mysql    12822 12338  0 20:19 ?        00:00:00 /var/lib/mysql57/mysql5719/bin/mysqld --basedir=/var/lib/mysql57/mysql5719 --datadir=/var/lib/mysql57/mysql5719/data --plugin-dir=/var/lib/mysql57/mysql5719/lib/plugin --user=mysql --log-error=/var/lib/mysql57/mysql5719/log/mysqld.log --pid-file=LHRDB.pid --socket=/var/lib/mysql57/mysql5719/mysql.sock --port=3306

mysql    12885 12401  0 20:19 ?        00:00:00 /usr/local/mysql56/mysql5637/bin/mysqld --basedir=/usr/local/mysql56/mysql5637 --datadir=/usr/local/mysql56/mysql5637/data --plugin-dir=/usr/local/mysql56/mysql5637/lib/plugin --user=mysql --log-error=/usr/local/mysql56/mysql5637/log/mysqld.log --pid-file=LHRDB.pid --socket=/usr/local/mysql56/mysql5637/mysql.sock --port=3307

root     13205 13179  0 20:20 pts/0    00:00:00 grep mysql

[root@LHRDB ~]# mysqld_multi report

Reporting MySQL servers

MySQL server from group: mysqld57 is running

MySQL server from group: mysqld56 is running

MySQL server from group: mysqld55 is running

[root@LHRDB ~]# netstat -lntp | grep mysqld

tcp        0      0 0.0.0.0:3308                0.0.0.0:*                   LISTEN      12792/mysqld       

tcp        0      0 :::3307                     :::*                        LISTEN      12885/mysqld       

tcp        0      0 :::3306                     :::*                        LISTEN      12822/mysqld

 

 

 

1.10.3  mysqld_multi命令

启动全部实例:mysqld_multi start

查看全部实例状态:mysqld_multi report

启动单个实例:mysqld_multi start 3306

停止单个实例:mysqld_multi stop 3306

查看单个实例状态:mysqld_multi report 3306

 

官网地址:https://dev.mysql.com/doc/refman/5.7/en/mysqld-multi.html

1.11  源码编译安装MySQL 5.7

源码编译安装的更多内容:http://blog.itpub.net/26736162/viewspace-2144212/

1.11.1  下载源码包

地址:https://dev.mysql.com/downloads/mysql/

wps5029.tmp 

说明:这里有两个包,在5.7以后,必须要有boost这个包

1.11.2  增加用户

groupadd mysql

useradd -r -g mysql mysql

 

其中-r表示用户是系统用户,不可登录系统。

1.11.3  创建要安装的目录

[root@LHRDB ~]# df -h

Filesystem                                Size  Used Avail Use% Mounted on

/dev/mapper/vg_rootlhr-Vol00              9.9G  4.6G  4.9G  49% /

tmpfs                                     2.0G   76K  2.0G   1% /dev/shm

/dev/sda1                                 194M   35M  150M  19% /boot

/dev/mapper/vg_rootlhr-Vol01              3.0G  1.8G  1.1G  64% /tmp

/dev/mapper/vg_rootlhr-Vol03              3.0G   69M  2.8G   3% /home

/dev/mapper/vg_mysqlsoft-lv_mysqlsoft_57  5.0G  2.7G  2.0G  58% /var/lib/mysql57

/dev/mapper/vg_mysqlsoft-lv_mysqlsoft_56  2.0G  1.4G  575M  70% /usr/local/mysql56

/dev/mapper/vg_mysqlsoft-lv_mysqlsoft_55  2.0G  848M  1.1G  45% /usr/local/mysql55

.host:/                                   331G  273G   58G  83% /mnt/hgfs

/dev/sr0                                  3.6G  3.6G     0 100% /media/RHEL_6.5 x86_64 Disc 1

/dev/sr0                                  3.6G  3.6G     0 100% /media/lhr/cdrom

[root@LHRDB ~]# vgs

  VG           #PV #LV #SN Attr   VSize  VFree  

  vg_mysqlsoft   1   3   0 wz--n- 10.00g 1020.00m

  vg_rootlhr     2   4   0 wz--n- 19.80g    1.80g

[root@LHRDB ~]# pvs

  PV         VG           Fmt  Attr PSize  PFree  

  /dev/sda2  vg_rootlhr   lvm2 a--  10.00g       0

  /dev/sda3  vg_rootlhr   lvm2 a--   9.80g    1.80g

  /dev/sdb1  vg_mysqlsoft lvm2 a--  10.00g 1020.00m

  /dev/sdb10              lvm2 a--  10.00g   10.00g

  /dev/sdb11              lvm2 a--   9.99g    9.99g

  /dev/sdb2               lvm2 a--  10.00g   10.00g

  /dev/sdb3               lvm2 a--  10.00g   10.00g

  /dev/sdb5               lvm2 a--  10.00g   10.00g

  /dev/sdb6               lvm2 a--  10.00g   10.00g

  /dev/sdb7               lvm2 a--  10.00g   10.00g

  /dev/sdb8               lvm2 a--  10.00g   10.00g

  /dev/sdb9               lvm2 a--  10.00g   10.00g

[root@LHRDB ~]# vgextend vg_mysqlsoft /dev/sdb2

  Volume group "vg_mysqlsoft" successfully extended

[root@LHRDB ~]# vgs

  VG           #PV #LV #SN Attr   VSize  VFree

  vg_mysqlsoft   2   3   0 wz--n- 19.99g 10.99g

  vg_rootlhr     2   4   0 wz--n- 19.80g  1.80g

[root@LHRDB ~]# lvcreate -n lv_mysqlsoft_57sc -L 10G vg_mysqlsoft

  Logical volume "lv_mysqlsoft_57sc" created

[root@LHRDB ~]# mkfs.ext4 /dev/vg_mysqlsoft/lv_mysqlsoft_57sc

mke2fs 1.41.12 (17-May-2010)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

327680 inodes, 1310720 blocks

65536 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=1342177280

40 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks:

        32768, 98304, 163840, 229376, 294912, 819200, 884736

 

Writing inode tables: done                           

Creating journal (32768 blocks): done

Writing superblocks and filesystem accounting information: done

 

This filesystem will be automatically checked every 30 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

[root@LHRDB ~]# mkdir /usr/local/mysql57sc

[root@LHRDB ~]# chown mysql.mysql /usr/local/mysql57sc

[root@LHRDB ~]# mount /dev/vg_mysqlsoft/lv_mysqlsoft_57sc  /usr/local/mysql57sc/

[root@LHRDB ~]# df -h

Filesystem                                  Size  Used Avail Use% Mounted on

/dev/mapper/vg_rootlhr-Vol00                9.9G  4.6G  4.8G  49% /

tmpfs                                       2.0G   76K  2.0G   1% /dev/shm

/dev/sda1                                   194M   35M  150M  19% /boot

/dev/mapper/vg_rootlhr-Vol01                3.0G  1.8G  1.1G  64% /tmp

/dev/mapper/vg_rootlhr-Vol03                3.0G   69M  2.8G   3% /home

/dev/mapper/vg_mysqlsoft-lv_mysqlsoft_57    5.0G  2.7G  2.0G  58% /var/lib/mysql57

/dev/mapper/vg_mysqlsoft-lv_mysqlsoft_56    2.0G  1.4G  575M  70% /usr/local/mysql56

/dev/mapper/vg_mysqlsoft-lv_mysqlsoft_55    2.0G  848M  1.1G  45% /usr/local/mysql55

.host:/                                     331G  273G   58G  83% /mnt/hgfs

/dev/sr0                                    3.6G  3.6G     0 100% /media/RHEL_6.5 x86_64 Disc 1

/dev/sr0                                    3.6G  3.6G     0 100% /media/lhr/cdrom

/dev/mapper/vg_mysqlsoft-lv_mysqlsoft_57sc  9.9G  138M  9.6G   1% /usr/local/mysql57sc

[root@LHRDB ~]# more /etc/fstab

#

# /etc/fstab

# Created by anaconda on Sat Jan 14 18:56:24 2017

#

# Accessible filesystems, by reference, are maintained under '/dev/disk'

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

/dev/mapper/vg_rootlhr-Vol00 /                       ext4    defaults        1 1

UUID=fccf51c1-2d2f-4152-baac-99ead8cfbc1a /boot                   ext4    defaults        1 2

/dev/mapper/vg_rootlhr-Vol01 /tmp                    ext4    defaults        1 2

/dev/mapper/vg_rootlhr-Vol02 swap                    swap    defaults        0 0

tmpfs                   /dev/shm                tmpfs   defaults,size=2G        0 0

devpts                  /dev/pts                devpts  gid=5,mode=620  0 0

sysfs                   /sys                    sysfs   defaults        0 0

proc                    /proc                   proc    defaults        0 0

/dev/vg_rootlhr/Vol03 /home  ext4 defaults        0 0

/dev/vg_mysqlsoft/lv_mysqlsoft_57  /var/lib/mysql57  ext4    defaults  0 0

/dev/vg_mysqlsoft/lv_mysqlsoft_56  /usr/local/mysql56  ext4    defaults  0 0

/dev/vg_mysqlsoft/lv_mysqlsoft_55  /usr/local/mysql55  ext4    defaults  0 0

/dev/sr0 /media/lhr/cdrom iso9660 defaults,ro,loop 0 0

/dev/vg_mysqlsoft/lv_mysqlsoft_57sc  /usr/local/mysql57sc  ext4    defaults  0 0

 

 

 

1.11.4  上传并解压

[root@LHRDB ~]# mkdir -p /tmp/mysql5.7sc

 

wps502A.tmp 

[root@LHRDB ~]# cd /tmp/mysql5.7sc

[root@LHRDB mysql5.7sc]# ll

total 98136

-rw-r--r-- 1 root root 51686763 Aug 28 09:50 mysql-5.7.19.tar.gz

-rw-r--r-- 1 root root 48799895 Aug 28 09:50 mysql-boost-5.7.19.tar.gz

[root@LHRDB mysql5.7sc]# tar -zxf  /tmp/mysql5.7sc/mysql-5.7.19.tar.gz -C /usr/local/mysql57sc/

[root@LHRDB mysql5.7sc]# tar -zxf  /tmp/mysql5.7sc/mysql-boost-5.7.19.tar.gz -C /usr/local/mysql57sc/

[root@LHRDB mysql5.7sc]# ll

total 98140

drwxr-xr-x 36 7161 31415     4096 Jun 22 22:24 mysql-5.7.19

-rw-r--r--  1 root root  51686763 Aug 28 09:50 mysql-5.7.19.tar.gz

-rw-r--r--  1 root root  48799895 Aug 28 09:50 mysql-boost-5.7.19.tar.gz

[root@LHRDB mysql5.7sc]# df -h

Filesystem                                  Size  Used Avail Use% Mounted on

/dev/mapper/vg_rootlhr-Vol00                9.9G  4.7G  4.8G  50% /

tmpfs                                       2.0G   76K  2.0G   1% /dev/shm

/dev/sda1                                   194M   35M  150M  19% /boot

/dev/mapper/vg_rootlhr-Vol01                3.0G  1.6G  1.3G  56% /tmp

/dev/mapper/vg_rootlhr-Vol03                3.0G   69M  2.8G   3% /home

/dev/mapper/vg_mysqlsoft-lv_mysqlsoft_57    5.0G  2.7G  2.0G  58% /var/lib/mysql57

/dev/mapper/vg_mysqlsoft-lv_mysqlsoft_56    2.0G  1.4G  575M  70% /usr/local/mysql56

/dev/mapper/vg_mysqlsoft-lv_mysqlsoft_55    2.0G  848M  1.1G  45% /usr/local/mysql55

.host:/                                     331G  273G   58G  83% /mnt/hgfs

/dev/sr0                                    3.6G  3.6G     0 100% /media/RHEL_6.5 x86_64 Disc 1

/dev/sr0                                    3.6G  3.6G     0 100% /media/lhr/cdrom

/dev/mapper/vg_mysqlsoft-lv_mysqlsoft_57sc  9.9G  683M  9.4G   7% /usr/local/mysql57sc

 

修改目录的权限:

[root@LHRDB local]# cd  /usr/local/mysql57sc

[root@LHRDB mysql57sc]# mv mysql-5.7.19 mysql57

[root@LHRDB mysql57sc]# mkdir ./mysql57/data

[root@LHRDB mysql57sc]# mkdir ./mysql57/log

[root@LHRDB mysql57sc]# chown -R mysql.mysql .

 

 

 

 

1.11.5  安装编译环境所需要的包和一些依赖包

1.11.5.1  配置本地YUM源

mkdir -p /media/lhr/cdrom

mount /dev/sr0 /media/lhr/cdrom/

 

#设置开机自动挂载系统镜像文件 vi /etc/fstab 添加以下内容

/dev/sr0 /media/lhr/cdrom iso9660 defaults,ro,loop 0 0

 

cd /etc/yum.repos.d/

cp rhel-media.repo rhel-media.repo.bk

vi /etc/yum.repos.d/rhel-media.repo

[rhel-media]

name=Red Hat Enterprise Linux 6.5

baseurl=file:///media/lhr/cdrom

enabled=1

gpgcheck=1

gpgkey=file:///media/lhr/cdrom/RPM-GPG-KEY-redhat-release

 

[root@LHRDB ~]# mkdir -p /media/lhr/cdrom

[root@LHRDB ~]# mount /dev/sr0 /media/lhr/cdrom/

mount: block device /dev/sr0 is write-protected, mounting read-only

[root@LHRDB ~]# cd /etc/yum.repos.d/

[root@LHRDB yum.repos.d]# cp rhel-media.repo rhel-media.repo.bk

[root@LHRDB yum.repos.d]# more /etc/yum.repos.d/rhel-media.repo

[rhel-media]

name=Red Hat Enterprise Linux 6.5

baseurl=file:///media/lhr/cdrom

enabled=1

gpgcheck=1

gpgkey=file:///media/lhr/cdrom/RPM-GPG-KEY-redhat-release

 

 

1.11.5.2  安装依赖包

yum install -y cmake make gcc gcc-c++ ncurses-devel

 

[root@LHRDB yum.repos.d]# yum install -y cmake make gcc gcc-c++ ncurses-devel

Loaded plugins: product-id, refresh-packagekit, security, subscription-manager

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

rhel-media                                                                                                                                                                                 | 3.9 kB     00:00 ...

Setting up Install Process

Package 1:make-3.81-20.el6.x86_64 already installed and latest version

Package gcc-4.4.7-4.el6.x86_64 already installed and latest version

Package gcc-c++-4.4.7-4.el6.x86_64 already installed and latest version

Package ncurses-devel-5.7-3.20090208.el6.x86_64 already installed and latest version

Resolving Dependencies

--> Running transaction check

---> Package cmake.x86_64 0:2.6.4-5.el6 will be installed

--> Finished Dependency Resolution

 

Dependencies Resolved

 

==================================================================================================================================================================================================================

Package                                        Arch                                            Version                                                 Repository                                           Size

==================================================================================================================================================================================================================

Installing:

cmake                                          x86_64                                          2.6.4-5.el6                                             rhel-media                                          5.1 M

 

Transaction Summary

==================================================================================================================================================================================================================

Install       1 Package(s)

 

Total download size: 5.1 M

Installed size: 17 M

Downloading Packages:

warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY

Retrieving key from file:///media/lhr/cdrom/RPM-GPG-KEY-redhat-release

Importing GPG key 0xFD431D51:

Userid: "Red Hat, Inc. (release key 2) <security@redhat.com>"

From  : /media/lhr/cdrom/RPM-GPG-KEY-redhat-release

Importing GPG key 0x2FA658E0:

Userid: "Red Hat, Inc. (auxiliary key) <security@redhat.com>"

From  : /media/lhr/cdrom/RPM-GPG-KEY-redhat-release

Running rpm_check_debug

Running Transaction Test

Transaction Test Succeeded

Running Transaction

Warning: RPMDB altered outside of yum.

  Installing : cmake-2.6.4-5.el6.x86_64                                                                                                                                                                       1/1

  Verifying  : cmake-2.6.4-5.el6.x86_64                                                                                                                                                                       1/1

 

Installed:

  cmake.x86_64 0:2.6.4-5.el6                                                                                                                                                                                     

 

Complete!

 

 

 

注意:这里的cmake最低需要2.8.2版本的,不然会报错,先接着往下做吧。

1.11.6  执行编译命令

1.11.6.1  升级cmake的版本

[root@LHRDB mysql-5.7.19]# cmake -version

cmake version 2.6-patch 4

[root@LHRDB mysql-5.7.19]# pwd

/tmp/mysql5.7sc/mysql-5.7.19

[root@LHRDB mysql-5.7.19]# ll

total 332

drwxr-xr-x  3 7161 31415  4096 Jun 22 22:24 boost

drwxr-xr-x  2 7161 31415  4096 Jun 22 22:24 BUILD

drwxr-xr-x  6 7161 31415  4096 Jun 22 22:24 client

drwxr-xr-x  4 7161 31415  4096 Jun 22 22:24 cmake

-rw-r--r--  1 7161 31415 26727 Jun 22 22:13 CMakeLists.txt

drwxr-xr-x  3 7161 31415  4096 Jun 22 22:24 cmd-line-utils

-rw-r--r--  1 7161 31415 13832 Jun 22 22:13 config.h.cmake

-rw-r--r--  1 7161 31415 33704 Jun 22 22:13 configure.cmake

-rw-r--r--  1 7161 31415 17987 Jun 22 22:13 COPYING

drwxr-xr-x  2 7161 31415  4096 Jun 22 22:24 dbug

drwxr-xr-x  2 7161 31415  4096 Jun 22 22:24 Docs

-rw-r--r--  1 7161 31415 66241 Jun 22 22:13 Doxyfile-perfschema

drwxr-xr-x  6 7161 31415  4096 Jun 22 22:24 extra

drwxr-xr-x  5 7161 31415  4096 Jun 22 22:24 include

-rw-r--r--  1 7161 31415   333 Jun 22 22:13 INSTALL

drwxr-xr-x  5 7161 31415  4096 Jun 22 22:24 libbinlogevents

drwxr-xr-x  3 7161 31415  4096 Jun 22 22:24 libbinlogstandalone

drwxr-xr-x  7 7161 31415  4096 Jun 22 22:24 libevent

drwxr-xr-x  4 7161 31415  4096 Jun 22 22:24 libmysql

drwxr-xr-x  3 7161 31415  4096 Jun 22 22:24 libmysqld

drwxr-xr-x  2 7161 31415  4096 Jun 22 22:24 libservices

drwxr-xr-x  2 7161 31415  4096 Jun 22 22:24 man

drwxr-xr-x 10 7161 31415  4096 Jun 22 22:24 mysql-test

drwxr-xr-x  2 7161 31415  4096 Jun 22 22:24 mysys

drwxr-xr-x  2 7161 31415  4096 Jun 22 22:24 mysys_ssl

drwxr-xr-x 10 7161 31415  4096 Jun 22 22:24 packaging

drwxr-xr-x 18 7161 31415  4096 Jun 22 22:24 plugin

drwxr-xr-x  4 7161 31415  4096 Jun 22 22:24 rapid

-rw-r--r--  1 7161 31415  2478 Jun 22 22:13 README

drwxr-xr-x  2 7161 31415  4096 Jun 22 22:24 regex

drwxr-xr-x  3 7161 31415  4096 Jun 22 22:24 scripts

drwxr-xr-x  7 7161 31415 20480 Jun 22 22:24 sql

drwxr-xr-x  2 7161 31415  4096 Jun 22 22:24 sql-common

drwxr-xr-x 14 7161 31415  4096 Jun 22 22:24 storage

drwxr-xr-x  2 7161 31415  4096 Jun 22 22:24 strings

drwxr-xr-x  4 7161 31415  4096 Jun 22 22:24 support-files

drwxr-xr-x  2 7161 31415  4096 Jun 22 22:24 testclients

drwxr-xr-x  5 7161 31415  4096 Jun 22 22:24 unittest

-rw-r--r--  1 7161 31415    88 Jun 22 22:13 VERSION

drwxr-xr-x  3 7161 31415  4096 Jun 22 22:24 vio

drwxr-xr-x  2 7161 31415  4096 Jun 22 22:24 win

drwxr-xr-x  2 7161 31415  4096 Jun 22 22:24 zlib

[root@LHRDB mysql-5.7.19]# cmake \

> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql57sc/mysql57 \

> -DMYSQL_DATADIR=/usr/local/mysql57sc/mysql57/data \

> -DMYSQL_USER=mysql \

> -DWITH_INNOBASE_STORAGE_ENGINE=1  \

> -DWITH_ARCHIVE_STORAGE_ENGINE=1   \

> -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

> -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \

> -DWITH_READLINE=1 \

> -DDOWNLOAD_BOOST=1 \

> -DWITH_BOOST=/usr/local/mysql57sc/mysql57/boost/boost_1_59_0/

CMake Error at CMakeLists.txt:21 (CMAKE_MINIMUM_REQUIRED):

  CMake 2.8.2 or higher is required.  You are running version 2.6.4

 

 

-- Configuring incomplete, errors occurred!

 

 

 

cmake每个参数的介绍参考:http://blog.itpub.net/26736162/viewspace-2144212/

 

下载高版本cmake,http://www.cmake.org/cmake/resources/software.html,解压缩cmake-3.9.1.tar.gz,解压后执行“./bootstrap && make && make install”,如下:

[root@LHRDB ~]# cd /tmp/mysql5.7sc/

[root@LHRDB mysql5.7sc]# ll

total 105664

-rw-r--r--  1 root root   7702497 Aug 28 10:20 cmake-3.9.1.tar.gz

drwxr-xr-x 37 7161 31415     4096 Aug 28 10:38 mysql-5.7.19

-rw-r--r--  1 root root  51686763 Aug 28 09:50 mysql-5.7.19.tar.gz

-rw-r--r--  1 root root  48799895 Aug 28 09:50 mysql-boost-5.7.19.tar.gz

[root@LHRDB mysql5.7sc]# tar -zxf cmake-3.9.1.tar.gz

[root@LHRDB mysql5.7sc]# ll

total 105668

drwxr-xr-x 11 root root      4096 Aug 28 10:42 cmake-3.9.1

-rw-r--r--  1 root root   7702497 Aug 28 10:20 cmake-3.9.1.tar.gz

drwxr-xr-x 37 7161 31415     4096 Aug 28 10:38 mysql-5.7.19

-rw-r--r--  1 root root  51686763 Aug 28 09:50 mysql-5.7.19.tar.gz

-rw-r--r--  1 root root  48799895 Aug 28 09:50 mysql-boost-5.7.19.tar.gz

[root@LHRDB mysql5.7sc]# cd cmake-3.9.1

[root@LHRDB cmake-3.9.1]# ll

total 284

drwxr-xr-x   4 502 games  4096 Aug 10 21:47 Auxiliary

-rwxr-xr-x   1 502 games 48336 Aug 10 21:36 bootstrap

-rw-r--r--   1 502 games  9706 Aug 10 21:36 CMakeCPack.cmake

-rw-r--r--   1 502 games 12897 Aug 10 21:36 CMakeCPackOptions.cmake.in

-rw-r--r--   1 502 games   153 Aug 10 21:36 CMakeGraphVizOptions.cmake

-rw-r--r--   1 502 games 31721 Aug 10 21:36 CMakeLists.txt

-rw-r--r--   1 502 games  4481 Aug 10 21:36 CMakeLogo.gif

-rw-r--r--   1 502 games   790 Aug 10 21:36 cmake_uninstall.cmake.in

-rw-r--r--   1 502 games  3322 Aug 10 21:36 CompileFlags.cmake

-rwxr-xr-x   1 502 games    99 Aug 10 21:36 configure

-rw-r--r--   1 502 games  1851 Aug 10 21:36 CONTRIBUTING.rst

-rw-r--r--   1 502 games  4999 Aug 10 21:36 Copyright.txt

-rw-r--r--   1 502 games   440 Aug 10 21:36 CTestConfig.cmake

-rw-r--r--   1 502 games  6213 Aug 10 21:36 CTestCustom.cmake.in

-rw-r--r--   1 502 games   374 Aug 10 21:36 DartConfig.cmake

-rw-r--r--   1 502 games 28046 Aug 10 21:36 doxygen.config

drwxr-xr-x  18 502 games  4096 Aug 10 21:47 Help

drwxr-xr-x   2 502 games  4096 Aug 10 21:47 Licenses

drwxr-xr-x  12 502 games 20480 Aug 10 21:47 Modules

drwxr-xr-x   3 502 games  4096 Aug 10 21:47 Packaging

-rw-r--r--   1 502 games  3016 Aug 10 21:36 README.rst

drwxr-xr-x  11 502 games 36864 Aug 10 21:47 Source

drwxr-xr-x   4 502 games  4096 Aug 10 21:47 Templates

drwxr-xr-x 240 502 games 12288 Aug 10 21:47 Tests

drwxr-xr-x  21 502 games  4096 Aug 10 21:47 Utilities

[root@LHRDB cmake-3.9.1]#

[root@LHRDB cmake-3.9.1]#  ./bootstrap && make && make install

---------------------------------------------

CMake 3.9.1, Copyright 2000-2017 Kitware, Inc. and Contributors

Found GNU toolchain

C compiler on this system is: gcc  -std=gnu99

C++ compiler on this system is: g++  -std=gnu++0x

Makefile processor on this system is: gmake

g++ is GNU compiler

g++ has setenv

g++ has unsetenv

g++ does not have environ in stdlib.h

g++ has stl wstring

g++ has <ext/stdio_filebuf.h>

---------------------------------------------

g++  -std=gnu++0x     -I/tmp/mysql5.7sc/cmake-3.9.1/Bootstrap.cmk   -I/tmp/mysql5.7sc/cmake-3.9.1/Source   -I/tmp/mysql5.7sc/cmake-3.9.1/Source/LexerParser   -I/tmp/mysql5.7sc/cmake-3.9.1/Utilities  -c /tmp/mysql5.7sc/cmake-3.9.1/Source/cmAddCustomCommandCommand.cxx -o cmAddCustomCommandCommand.o

g++  -std=gnu++0x     -I/tmp/mysql5.7sc/cmake-3.9.1/Bootstrap.cmk   -I/tmp/mysql5.7sc/cmake-3.9.1/Source   -I/tmp/mysql5.7sc/cmake-3.9.1/Source/LexerParser   -I/tmp/mysql5.7sc/cmake-3.9.1/Utilities  -c /tmp/mysql5.7sc/cmake-3.9.1/Source/cmAddCustomTargetCommand.cxx -o cmAddCustomTargetCommand.o

。。。。。。。。。。。。。。 省略 。。。。。。。。。。。。。。。

-- Installing: /usr/local/bin/cmake

-- Installing: /usr/local/bin/ctest

-- Installing: /usr/local/bin/cpack

-- Installing: /usr/local/share/cmake-3.9/include/cmCPluginAPI.h

-- Installing: /usr/local/share/cmake-3.9/editors/vim/indent

-- Installing: /usr/local/share/cmake-3.9/editors/vim/indent/cmake.vim

-- Installing: /usr/local/share/cmake-3.9/editors/vim/syntax

-- Installing: /usr/local/share/cmake-3.9/editors/vim/syntax/cmake.vim

-- Installing: /usr/local/share/cmake-3.9/editors/emacs/cmake-mode.el

-- Installing: /usr/local/share/aclocal/cmake.m4

-- Installing: /usr/local/share/cmake-3.9/completions/cmake

-- Installing: /usr/local/share/cmake-3.9/completions/cpack

-- Installing: /usr/local/share/cmake-3.9/completions/ctest

[root@LHRDB cmake-3.9.1]# which cmake

/usr/local/bin/cmake

[root@LHRDB cmake-3.9.1]# cmake -version

cmake version 3.9.1

 

 

重新开一个shell并继续编译:

[root@LHRDB mysql57]# cmake \

> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql57sc/mysql57 \

> -DMYSQL_DATADIR=/usr/local/mysql57sc/mysql57/data \

> -DMYSQL_USER=mysql \

> -DWITH_INNOBASE_STORAGE_ENGINE=1  \

> -DWITH_ARCHIVE_STORAGE_ENGINE=1   \

> -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

> -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \

> -DWITH_READLINE=1 \

> -DDOWNLOAD_BOOST=1 \

> -DWITH_BOOST=/usr/local/mysql57sc/mysql57/boost/boost_1_59_0/

CMake Deprecation Warning at CMakeLists.txt:26 (CMAKE_POLICY):

  The OLD behavior for policy CMP0018 will be removed from a future version

  of CMake.

 

  The cmake-policies(7) manual explains that the OLD behaviors of all

  policies are deprecated and that a policy should be set to OLD only under

  specific short-term circumstances.  Projects should be ported to the NEW

  behavior and not rely on setting a policy to OLD.

 

 

CMake Deprecation Warning at CMakeLists.txt:32 (CMAKE_POLICY):

  The OLD behavior for policy CMP0022 will be removed from a future version

  of CMake.

。。。。。。。。省略部分。。。。。。。。

  The cmake-policies(7) manual explains that the OLD behaviors of all

  policies are deprecated and that a policy should be set to OLD only under

  specific short-term circumstances.  Projects should be ported to the NEW

  behavior and not rely on setting a policy to OLD.

 

 

-- INSTALL mysqlclient.pc lib/pkgconfig

-- Skipping deb packaging on unsupported platform .

-- CMAKE_BUILD_TYPE: RelWithDebInfo

-- COMPILE_DEFINITIONS: _GNU_SOURCE;_FILE_OFFSET_BITS=64;HAVE_CONFIG_H;HAVE_LIBEVENT1

-- CMAKE_C_FLAGS:  -Wall -Wextra -Wformat-security -Wvla -Wwrite-strings -Wdeclaration-after-statement

-- CMAKE_CXX_FLAGS:  -Wall -Wextra -Wformat-security -Wvla -Woverloaded-virtual -Wno-unused-parameter

-- CMAKE_C_LINK_FLAGS:

-- CMAKE_CXX_LINK_FLAGS:

-- CMAKE_C_FLAGS_RELWITHDEBINFO: -O3 -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DDBUG_OFF

-- CMAKE_CXX_FLAGS_RELWITHDEBINFO: -O3 -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DDBUG_OFF

-- Configuring done

-- Generating done

-- Build files have been written to: /usr/local/mysql57sc/mysql57

 

成功。

1.11.6.2  编译安装

该过程最慢。。。。。虚拟机约40分钟。。。。

[root@LHRDB mysql57]# make && make install

Scanning dependencies of target abi_check

[  0%] Built target abi_check

Scanning dependencies of target INFO_SRC

[  0%] Built target INFO_SRC

Scanning dependencies of target INFO_BIN

[  0%] Built target INFO_BIN

Scanning dependencies of target zlib

[  0%] Building C object zlib/CMakeFiles/zlib.dir/adler32.c.o

[  0%] Building C object zlib/CMakeFiles/zlib.dir/compress.c.o

[  0%] Building C object zlib/CMakeFiles/zlib.dir/crc32.c.o

[  0%] Building C object zlib/CMakeFiles/zlib.dir/deflate.c.o

[  0%] Building C object zlib/CMakeFiles/zlib.dir/gzio.c.o

[  0%] Building C object zlib/CMakeFiles/zlib.dir/infback.c.o

[  0%] Building C object zlib/CMakeFiles/zlib.dir/inffast.c.o

[  0%] Building C object zlib/CMakeFiles/zlib.dir/inflate.c.o

[  0%] Building C object zlib/CMakeFiles/zlib.dir/inftrees.c.o

[  0%] Building C object zlib/CMakeFiles/zlib.dir/trees.c.o

[  0%] Building C object zlib/CMakeFiles/zlib.dir/uncompr.c.o

[  0%] Building C object zlib/CMakeFiles/zlib.dir/zutil.c.o

。。。。。。。。。。省略部分。。。。。。。。。。。。

-- Installing: /usr/local/mysql57sc/mysql57/share/fill_help_tables.sql

-- Installing: /usr/local/mysql57sc/mysql57/share/mysql_sys_schema.sql

-- Installing: /usr/local/mysql57sc/mysql57/share/mysql_test_data_timezone.sql

-- Installing: /usr/local/mysql57sc/mysql57/share/mysql_security_commands.sql

-- Installing: /usr/local/mysql57sc/mysql57/lib/pkgconfig/mysqlclient.pc

-- Installing: /usr/local/mysql57sc/mysql57/bin/mysql_config

-- Installing: /usr/local/mysql57sc/mysql57/bin/mysqldumpslow

-- Installing: /usr/local/mysql57sc/mysql57/bin/mysqld_multi

-- Installing: /usr/local/mysql57sc/mysql57/bin/mysqld_safe

-- Installing: /usr/local/mysql57sc/mysql57/share/aclocal/mysql.m4

[root@LHRDB mysql57]#

[root@LHRDB mysql57]# df -h

Filesystem                                  Size  Used Avail Use% Mounted on

/dev/mapper/vg_rootlhr-Vol00                9.9G  4.7G  4.8G  50% /

tmpfs                                       2.0G   72K  2.0G   1% /dev/shm

/dev/sda1                                   194M   35M  150M  19% /boot

/dev/mapper/vg_rootlhr-Vol01                3.0G  1.6G  1.3G  56% /tmp

/dev/mapper/vg_rootlhr-Vol03                3.0G   69M  2.8G   3% /home

/dev/mapper/vg_mysqlsoft-lv_mysqlsoft_57    5.0G  2.7G  2.0G  58% /var/lib/mysql57

/dev/mapper/vg_mysqlsoft-lv_mysqlsoft_56    2.0G  1.4G  575M  70% /usr/local/mysql56

/dev/mapper/vg_mysqlsoft-lv_mysqlsoft_55    2.0G  848M  1.1G  45% /usr/local/mysql55

/dev/sr0                                    3.6G  3.6G     0 100% /media/lhr/cdrom

/dev/mapper/vg_mysqlsoft-lv_mysqlsoft_57sc  9.9G  7.2G  2.2G  77% /usr/local/mysql57sc

.host:/                                     331G  273G   58G  83% /mnt/hgfs

 

用了大概7.2G,太费空间了。最后的make和make install大概用了40分钟,太费时间了。。。。。

 

1.11.7  初始化MySQL

注意:MySQL 5.7.6之后的版本初始化数据库不再使用mysql_install_db

[root@LHRDB mysql57]# mkdir log

[root@LHRDB mysql57]# chown mysql.mysql log

[root@LHRDB mysql57]# pwd

/usr/local/mysql57sc/mysql57

[root@LHRDB mysql57]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql57sc/mysql57  --datadir=/usr/local/mysql57sc/mysql57/data

2017-08-28T08:34:01.250285Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).

2017-08-28T08:34:02.675706Z 0 [Warning] InnoDB: New log files created, LSN=45790

2017-08-28T08:34:02.743783Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.

2017-08-28T08:34:02.847128Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: a572bb0e-8bcb-11e7-b92e-000c291823c2.

2017-08-28T08:34:02.848708Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.

2017-08-28T08:34:02.851802Z 1 [Note] A temporary password is generated for root@localhost: N9eYPaqv4q!X

这里生成的临时密码为:N9eYPaqv4q!X

 

1.11.8  配置/etc/my.cnf

 

修改文件/etc/my.cnf,加入以下内容:

[mysqld573309]

basedir=/usr/local/mysql57sc/mysql57

datadir=/usr/local/mysql57sc/mysql57/data

socket=/usr/local/mysql57sc/mysql57/mysql.sock

log-error=/usr/local/mysql57sc/mysql57/log/mysqld.log

user=mysql

port=3309

 

1.11.9  启动MySQL

[root@LHRDB mysql5719]# echo '' > /usr/local/mysql57sc/mysql57/log/mysqld.log

[root@LHRDB mysql5719]# chown mysql.mysql /usr/local/mysql57sc/mysql57/log/mysqld.log

[root@LHRDB data]# mysqld_multi report

Reporting MySQL servers

MySQL server from group: mysqld57 is running

MySQL server from group: mysqld56 is running

MySQL server from group: mysqld55 is running

MySQL server from group: mysqld573309 is not running

[root@LHRDB data]# mysqld_multi start 573309

[root@LHRDB data]# mysqld_multi report

Reporting MySQL servers

MySQL server from group: mysqld57 is running

MySQL server from group: mysqld56 is running

MySQL server from group: mysqld55 is running

MySQL server from group: mysqld573309 is running

[root@LHRDB data]# netstat -lntp | grep mysqld

tcp        0      0 0.0.0.0:3308                0.0.0.0:*                   LISTEN      12932/mysqld       

tcp        0      0 :::3307                     :::*                        LISTEN      12858/mysqld       

tcp        0      0 :::3309                     :::*                        LISTEN      29785/mysqld       

tcp        0      0 :::3306                     :::*                        LISTEN      12880/mysqld 

 

 

1.11.10  登录MySQL并修改密码

[root@LHRDB data]# mysql -uroot  --socket=/usr/local/mysql57sc/mysql57/mysql.sock -p

Enter password:

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

Your MySQL connection id is 4

Server version: 5.7.19

 

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

 

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

 

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

 

mysql> set password=password('lhr');

Query OK, 0 rows affected, 1 warning (0.00 sec)

 

mysql> select @@port;

+--------+

| @@port |

+--------+

|   3309 |

+--------+

1 row in set (0.00 sec)

 

 

修改密码也可以用:update mysql.user set authentication_string=password('lhr') where user='root';

 

1.11.11  设置远程登录

mysql> grant all privileges on *.* to root@'%' identified by 'lhr';

Query OK, 0 rows affected, 1 warning (0.00 sec)

 

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

 

mysql> select host,user from mysql.user;

+-----------+---------------+

| host      | user          |

+-----------+---------------+

| %         | root          |

| localhost | mysql.session |

| localhost | mysql.sys     |

| localhost | root          |

+-----------+---------------+

4 rows in set (0.00 sec)

 

 

1.11.12  Windows远程登录

在Windows下远程登录:

D:\Users\xiaomaimiao>mysql -uroot -plhr -h192.168.59.159 -P3309

Warning: Using a password on the command line interface can be insecure.

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

Your MySQL connection id is 5

Server version: 5.7.19 Source distribution

 

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

 

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

 

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

 

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| sys                |

+--------------------+

4 rows in set (0.00 sec)

 

mysql>

 

 

 

 

 

1.12  错误解决

1.12.1  ABORT: Can't find command 'my_print_defaults'.

[root@LHRDB ~]# service mysqld_multi start

WARNING: my_print_defaults command not found.

Please make sure you have this command available and

in your path. The command is available from the latest

MySQL distribution.

WARNING: Log file disabled. Maybe directory or file isn't writable?

ABORT: Can't find command 'my_print_defaults'.

This command is available from the latest MySQL

distribution. Please make sure you have the command

in your PATH.

 

 

解决:

编辑文件:/etc/init.d/mysqld_multi,添加:. /etc/profile,或者在文件/etc/init.d/mysqld_multi中加入下面的变量:

MYSQL_HOME=/var/lib/mysql57/mysql5719

PATH=$MYSQL_HOME/bin:$PATH

 

1.12.2  执行cmake编译时报错

CMake Error at cmake/boost.cmake:81 (MESSAGE):

You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST=<directory>

  This CMake script will look for boost in <directory>. If it is not there,

  it will download and unpack it (in that directory) for you.**

 

解决办法:

cmake -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/root/mysql-5.7.19/boost/boost_1_59_0/

 

或者在执行cmake命令时加上DOWNLOAD_BOOST和WITH_BOOST参数。

 

1.13  参考文档

官方文档:

https://dev.mysql.com/doc/refman/5.7/en/checking-rpm-signature.html

https://dev.mysql.com/doc/refman/5.7/en/linux-installation-rpm.html

https://dev.mysql.com/doc/refman/5.7/en/installing-source-distribution.html

源码编译安装的更多内容:http://blog.itpub.net/26736162/viewspace-2144212/

rpm的安装方式请参考:

http://blog.itpub.net/26736162/viewspace-1349705/

http://blog.itpub.net/26736162/viewspace-1349787/

 

 

第二章 实验中用到的SQL总结

OS路径设置:

vgcreate vg_mysqlsoft /dev/sdb1

lvcreate -n lv_mysqlsoft_57 -L 5G vg_mysqlsoft

mkfs.ext4 /dev/vg_mysqlsoft/lv_mysqlsoft_57

mkdir -p /tmp/mysql5719

mkdir -p /var/lib/mysql57

mount /dev/vg_mysqlsoft/lv_mysqlsoft_57  /var/lib/mysql57/

vi /etc/fstab

 

二进制安装过程:

md5sum mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz

 

tar -zxvf mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz -C /var/lib/mysql57/

mv mysql-5.7.19-linux-glibc2.12-x86_64 mysql5719

 

groupadd mysql

useradd -r -g mysql mysql

 

MySQL 5.6版本:./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql56/mysql5637 --datadir=/usr/local/mysql56/mysql5637/data

MySQL 5.7版本:./bin/mysqld --initialize --user=mysql --basedir=/var/lib/mysql57/mysql5719  --datadir=/var/lib/mysql57/mysql5719/data

more /etc/my.cnf

 

cp mysql.server /etc/init.d/mysql57

chmod 755 /etc/init.d/mysql57

chkconfig --add mysql57

chkconfig mysql57 on

chkconfig --level 345 mysql57 on

 

mysqld_safe --user=mysql &

 

 

MYSQL_HOME=/var/lib/mysql57/mysql5719

PATH=$PATH:$MYSQL_HOME/bin

source /etc/profile

 

#MySQL 5.7初始化时有默认密码,5.6无密码

mysql -uroot  --socket=/usr/local/mysql56/mysql5637/mysql.sock -p

set password=password('lhr');

update mysql.user set authentication_string=password('lhr') where user='root';

grant all privileges on *.* to root@'%' identified by 'lhr';

flush privileges;

 

 

源码安装:

tar -zxf  /tmp/mysql5.7sc/mysql-5.7.19.tar.gz -C /usr/local/mysql57sc/

tar -zxf  /tmp/mysql5.7sc/mysql-boost-5.7.19.tar.gz -C /usr/local/mysql57sc/

mv mysql-5.7.19 mysql57

 

yum install -y cmake make gcc gcc-c++ ncurses-devel

#cmake最低需要2.8.2版本的

 

cmake \

> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql57sc/mysql57 \

> -DMYSQL_DATADIR=/usr/local/mysql57sc/mysql57/data \

> -DMYSQL_USER=mysql \

> -DWITH_INNOBASE_STORAGE_ENGINE=1  \

> -DWITH_ARCHIVE_STORAGE_ENGINE=1   \

> -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

> -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \

> -DWITH_READLINE=1 \

> -DDOWNLOAD_BOOST=1 \

> -DWITH_BOOST=/usr/local/mysql57sc/mysql57/boost/boost_1_59_0/

 

make && make install

 

查看MySQL的端口:

netstat -lntp | grep mysqld

 




这篇关于【MySQL】Linux下MySQL 5.5、5.6和5.7的RPM、二进制和源码安装的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程