• 进入"运维那点事"后,希望您第一件事就是阅读“关于”栏目,仔细阅读“关于Ctrl+c问题”,不希望误会!

MySQL 5.6多方式安装

MySQL 彭东稳 8年前 (2015-12-30) 20524次浏览 已收录 1个评论

一、MySQL RELEASE FORMAT

MySQL官方发行版本一般就有以下几种(官方下载地址),其实大部分软件的发行版大多数情况下也是以下几种,所以只要明白一个软件的发行方式就OK。另外下载MySQL任何包都应该去官方网站下载,记住一定在官方下载且最好直接下载(不使用第三方工具),并且最好下载完成后经过MD5校验。因为MySQL是开源的,所以使用第三方工具或第三方下载无法保证是安全的。

  • mysql-server-5.6.39-1.el7.x86_64.rpm

# 编译好的RPM包版,跟Linux平台下的RPM包相同,此版本把MySQL的功能一般都独立成个体RPM包,所以在安装时需要什么功能安装什么包即可。另外由于RPM包都是编译好的,所以在安装时要选择好对应的系统平台以及架构平台(基本都是X86架构)。

  • mysql-5.6.39.tar.gz

# 源码包版本,也就是没有经过编译的,需要手动编译和安装,灵活性更大可自己定制化。当然越灵活的东西操作起来也就也麻烦。

  • mysql-5.6.39-linux2.6-x86.tar.gz

# 二进制版本,这是经过官方编译好的,所以在官方下载时需要选择“Linux-Generic”,指在Linux系统下编译好的二进制包。不同于RPM包的是,安装需要自己动手,比如权限更改、文件和目录的迁移、初始化等等。这也是安装MySQL推荐的一个使用方式。

  • mysql-5.6.39-1.el6.src.rpm

# 这个版本版本有点特殊,不能够直接使用,是官方提供给用户自己制作成RPM包,这样既可以有RPM包版本的使用便捷,又有源码包的定制化功能。

二、MySQL 5.6 YUM INSTALL

首先从MySQL官方网站下载YUM源,地址:http://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

这里我选择MySQL 5.6的源进行安装MySQL 5.6,手动添加一个YUM源,文件位置 /etc/yum.repos.d/mysql.repo 。

检查一下mysql repo

安装启动配置MySQL

三、MySQL 5.6 SOURCE INSTALL

1. 安装cmake

cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码上可以进行多次不同的编译,如针对于不同平台编译。

2. 创建运行MySQL的用户

3. 创建存放数据和日志的目录(生产环境中使用LVM)

4. 编译安装mysql-5.6.27

cmake时如果出现什么错误,自行Google,都会有解决办法的,一般就是缺少依赖包或者cmake路径有问题。另外,这里我关闭了 DEBUG 模式,就是 -DWITH_DEBUG=0,如果你需要调试MySQL,这里开启即可。

编译常见错误如下:

从上面的错误中我们可以很清楚的看到缺少两个依赖包,我们用yum安装一下即可。

此时注意了,当我们解决完依赖后再次运行cmake还会报错的。因为在多次运行cmake时有个文件我们需要删除,删除当前目录下CMakeCache.txt文件并重新编译,再次运行cmake命令就会正常!

下面开始编译和安装,如果运行ccmake .可以查看刚刚的编译选项。

ccmake ../configure --help一样,都是查看帮助信息。

编译参数解释:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql

指定MySQL的安装路径

-DMYSQL_DATADIR=/data/mysql/3306/data

指定MySQL的数据存放路径。

-DSYSCONFDIR=/data/mysql/3306/conf

指定MySQL的配置文件路径。

-DWITH_INNOBASE_STORAGE_ENGINE=1

-DWITH_FEDERATED_STORAGE_ENGINE=1

MySQL 5.6.27默认编译的存储引擎包括:CVS、INNODB、MYISAM、MRG_MYISAM、MEMORY、ARCHIVE、PERFORMANCE_SCHEMA以及BLACKHOLE;MySQL是插件式存储引擎可以安装其他的存储引擎FEDERATED等。

-DWITHOUT_MEMORY_STORAGE_ENGINE=1

若要明确指定不安装某个存储引擎,可以用-DWITHOUT指定。

-DWITH_READLINE=1

-DWITH_SSL=system

开启SSL

-DWITH_ZLIB=system

开启压缩库。

-DWITH_LIBWRAP=0

关闭TCPWRAPER控制,是Linux下的一种安全访问策略。

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock

指定默认套接字文件路径。

-DENABLED_LOCAL_INFILE=1

可以执行外部SQL脚本,生产环境建议关闭以免带来SQL注入。

-DEXTRA_CHARSETS=all

开启支持所有字符集。

-DDEFAULT_CHARSET=utf8

指定默认字符集。

-DDEFAULT_COLLATION=utf8_general_ci

指定默认数据排序规则一定要跟默认语言结合起来。

-DWITH_DEBUG=0

关闭或开启Debug功能,0表示关闭,1表示开启。生产使用肯定是关闭Debug,如果是调试使用就需要开启Debug。

-DMYSQL_USER=mysql

使用mysql用户运行mysql数据库。

-DENABLE_PROFILING=1

启用profiling性能分析功能。

5. 设置MySQL安装路径权限

这里因为是使用root用户安装,所以需要设置安装目录的权限,如果是使用mysql用户安装的就不需要了,因为目录默认会是mysql用户和组。

6. 初始化MySQL

7. 复制MySQL样例服务脚本到/etc/rc.d/init.d/

8. 添加环境变量

9. 提供一份MySQL配置文件

MySQL 5.6提供的配置文件没法用,大部分参数都默认配置了。这里提供了一份适合生产环境优化过的配置文件。在 /data/mysql/3306/conf/my.cnf 文件。

PS:要想灵活设置这些参数需要对MySQL有一个很好的认识后,才能设置出适合自己使用的值。

11. 设置密码连接数据库

12. 运行mysql_secure_installation程序

在安装完MYSQL之后,可以选择运行mysql_secure_installation程序,用来设置相关的安全访问属性,需要安装mysql-client。

运行mysql_secure_installation会执行下面几个设置:

1. Enter current password for root (enter for none): – 输入当前root密码

2. Set root password? [Y/n] – 设置root密码

3. Remove anonymous users? [Y/n] – 移除匿名用户

4. Disallow root login remotely? [Y/n] – 禁止root远程访问

5. Remove test database and access to it? [Y/n] – 移除test数据库

6. Reload privilege tables now? [Y/n] – 刷新授权表

四、MySQL 5.6 BINARY INSTALL

1. 前提

在使用二进制安装之前,请确认如果你以前使用操作系统本机软件包管理系统(例如Yum或APT)安装了MySQL,则使用本机二进制文件安装时可能会遇到问题。确保你以前的MySQL安装已完全删除(使用你的软件包管理工具移除),另外也应该检查配置文件,如/etc/my.cnf/etc/mysql目录如果存在,并删除它们。

MySQL依赖于libaio库,如果此库未在本地安装,则数据目录初始化和后续服务器启动步骤将会失败。例如,在基于Yum的系统上:

2. 解压安装MySQL

在MySQL官方下载对应的二进制包,然后解压并做软连接。

在安装目录下,应该会存在如下相关目录:

目录 目录的内容
bin,scripts mysqld服务器,客户端和其他实用程序
data 日志文件,数据库文件(默认初始化在此目录下)
docs MySQL手册的Info格式
include 包含头文件
lib 包含库文件
mysql-test 测试套件
man unix man手册
share 错误消息,字典和初始化SQL
sql-bench 基准测试
support-files 其他支持文件,包括示例配置文件等

3. 创建用户及调整权限

运行MySQL需要使用mysql用户,所以我们需要创建一个mysql用户,且我这里同时创建了MySQL数据存放目录并赋予mysql用户权限。

4. 初始化MySQL

MySQL 5.6使用mysql_install_db脚本初始化MySQL,另外初始化MySQL需要使用MySQL用户,且对应目录的权限需要正确。

这种方式初始化,只能按照官方默认配置初始化MySQL,需要注意一点,如果你的服务器上已经存在MySQL配置文件(如:/etc/my.cnf、/etc/my.cnf.d/*.cnf),初始化时会默认去匹配这几个路径的配置文件进行初始化操作。

生产环境正确的做法应该是有一个标准配置文件,在初始化时使用--defaults-file用指定配置文件来初始化。这个时候就需要先提供一个配置文件,比如上面提供那份配置文件。然后再进行初始化操作,需要注意的一点是这些参数的先后顺序不能错:

这样就会按照你的标准配置文件来进行MySQL初始化操作。

5. 输出执行文件

在MySQL安装的bin目录下是MySQL所有的可执行文件,包括客户端、服务端及相关工具。为了方便操作,一般都加入到系统的PATH环境变量,这样我们就可以直接输入对应命令及命令的自动补全。

6. 输出帮助文件

7. 输出库文件

8. 输出头文件

9. 启动MySQL

更常见的方式还是使用mysqld_safe工具来启动MySQL(真正提供服务的还是mysqld程序),启动时需要指定配置文件。

使用mysqld_safe工具来启动MySQL是一个常见做法,由mysqld_safe来启动mysqld程序。mysqld_safe增加了一些安全特性,例如当出现错误时重启服务器并向错误日志文件写入运行时间信息,另外还会在启动mysqld服务后继续监控其运行情况,并在其死机时重新启动它等等。

如果启动时不指定配置文件呢?我们可以看一下mysqld的帮助信息。

意思就是,如果启动时没有指定配置文件,那么MySQL会以上面这种顺序来查找配置文件并应用,不是只读一个文件哦,是应用所有文件。就是说最后MySQL应用的参数是所有文件的合集,后面的文件参数会覆盖前面的文件参数。这样就会带来一个问题,如果你的服务器上有多个配置文件时,可能会出现你设置的参数总是无法生效,这个时候可能就是出现了参数覆盖。

对于安装基本完结,自己多多尝试。


如果您觉得本站对你有帮助,那么可以支付宝扫码捐助以帮助本站更好地发展,在此谢过。
喜欢 (1)
[资助本站您就扫码 谢谢]
分享 (0)

您必须 登录 才能发表评论!

(1)个小伙伴在吐槽