码迷,mamicode.com
首页 > 数据库 > 详细

rhel6.5 编译安装 MYSQLmysql-5.6.31

时间:2016-06-26 18:17:00      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:

rhel6.5 编译安装 MYSQLmysql-5.6.31

 

 

首先请登录 MYSQL 官方网站下载 mysql 源文件

http://dev.mysql.com/downloads/mysql/5.6.html

下载社区版本

需要您注册一个帐号

 技术分享

 

选择 5.6.31

 技术分享

 

选择 源码 包 

Source code

 

选择 通用 linux 版本

 

下载之后可以用 rz  或者 xftp  或者用任何东西上传到服务器 root 目录下

对比 MD5

 技术分享

技术分享

 

MD5: a2d1d89c85ee1f5b1059dbfc741f0b0d | Signature

 

Md5 一致   证明文件没有错误

解压

tar zxvf mysql-5.6.31.tar.gz

 技术分享

 

进入 文件夹

 技术分享

 

一、编译安装MySQL前的准备工作

1.安装编译源码所需的工具和库

yum   –y  install gcc gcc-c++ ncurses-devel perl  

yum –y install cmake   (cmake 可以源码编译安装也可以 yum 安装)

如果是mysql5.1系列的直接使用编译安装,不用cmake

从mysql5.5起,mysql源码安装开始使用cmake了,设置源码编译配置脚本。

 

 

2.添加用户

useradd -u 8001 -s /sbin/nologin mysql

 

3.创建数据库存放目录  一般数据库目录比较大 便于备份和管理 创建单独的目录

 

mkdir /data

 技术分享

 

4.创建MYSQL 文件目录

mkdir -p /usr/local/mysql

 技术分享

 

5.编译安装配置文件

cmake

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql    mysql数据文件存放目录  也就是安装目录

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock   mysql sock 的路径

-DDEFAULT_CHARSET=utf8               默认的字符集

-DDEFAULT_COLLATION=utf8_general_ci    默认字符校对

-DWITH_EXTRA_CHARSETS=all   扩展字符支持  默认all

-DWITH_MYISAM_STORAGE_ENGINE=1             存储引擎的支持,默认支持以下几种MyISAM,MERGE,MEMORY,CVS

-DWITH_INNOBASE_STORAGE_ENGINE=1       启用INNOBASE 引擎支持

-DWITH_MEMORY_STORAGE_ENGINE=1        启用MEMORY  引擎支持

-DENABLED_LOCAL_INFILE=1                启用本地数据导入支持

-DMYSQL_DATADIR=/data/mysqldb           数据文件存放的目录

-DMYSQL_USER=mysql                            mysql运行用户

 

此处参数可以根据下面的参数表

 

或者到MYSQL 官方网站去查看具体配置参数

可以直接复制以下内容粘贴到服务器上面直接执行

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/data/mysqldb -DMYSQL_USER=mysql

 

参数说明

-DCMAKE_INSTALL_PREFIX= 指向mysql安装目录
-DINSTALL_SBINDIR=sbin 指向可执行文件目录(prefix/sbin)
-DMYSQL_DATADIR=/var/lib/mysql 指向mysql数据文件目录(/var/lib/mysql)
-DSYSCONFDIR=/etc/mysql 指向mysql配置文件目录(/etc/mysql)
-DINSTALL_PLUGINDIR=lib/mysql/plugin 指向插件目录(prefix/lib/mysql/plugin)
-DINSTALL_MANDIR=share/man 指向man文档目录(prefix/share/man)
-DINSTALL_SHAREDIR=share 指向aclocal/mysql.m4安装目录(prefix/share)
-DINSTALL_LIBDIR=lib/mysql 指向对象代码库目录(prefix/lib/mysql)
-DINSTALL_INCLUDEDIR=include/mysql 指向头文件目录(prefix/include/mysql)
-DINSTALL_INFODIR=share/info 指向info文档存放目录(prefix/share/info)
prefix官方推荐设为/usr
Storage Engine相关
类型csv,myisam,myisammrg,heap,innobase,archive,blackhole
若想启用某个引擎的支持:-DWITH_<ENGINE>_STORAGE_ENGINE=1
如:
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
若想禁用某个引擎的支持:-DWITHOUT_<ENGINE>_STORAGE_ENGINE=1
如:
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1
-DWITHOUT_PARTITION_STORAGE_ENGINE=1
Library相关
-DWITH_READLINE=1 启用readline库支持(提供可编辑的命令行)
-DWITH_SSL=system 启用ssl库支持(安全套接层)
-DWITH_ZLIB=system 启用libz库支持(zib、gzib相关)
-DWTIH_LIBWRAP=0 禁用libwrap库(实现了通用TCP包装的功能,为网络服务守护进程使用)
-DMYSQL_TCP_PORT=3306 指定TCP端口为3306
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock 指定mysql.sock路径
-DENABLED_LOCAL_INFILE=1 启用本地数据导入支持
-DEXTRA_CHARSETS=all 启用额外的字符集类型(默认为all)
-DDEFAULT_CHARSET=utf8 指定默认的字符集为utf8
-DDEFAULT_COLLATION=utf8_general_ci 设定默认排序规则(utf8_general_ci快速/utf8_unicode_ci准确)
-DWITH_EMBEDDED_SERVER=1 编译嵌入式服务器支持
-DMYSQL_USER=mysql 指定mysql用户(默认为mysql)
-DWITH_DEBUG=0 禁用debug(默认为禁用)
-DENABLE_PROFILING=0 禁用Profiling分析(默认为开启)
-DWITH_COMMENT=‘string‘ 一个关于编译环境的描述性注释

 

配置过程不算太长的等待过程

 

如果配置参数错误,或者想重新配置  请删除mysql文件目录内的CMakeCache.txt

rm –rf  CMakeCache.txt

 

删除这个文件后请重新运行,编译安装配置文件

 

 

 

6. 授权用户

[root@data~ ] chown -R mysql:mysql  /usr/local/mysql/

修改/usr/local/mysql/ 的拥有者和用户组 为mysql

 

[root@data~ ] chown –R mysql:mysql /data

修改 /data/mysqldb 的 拥有者和用户组 为 mysql

 

chmod 1777 /tmp

修改 sock 文件的目录为 最大权限

8 执行编译

Make

漫长的等待  此处省略无数字节。。。。。。。。。。。

9 执行安装

Makeinstall

可以忍受的等待  省略很多字节 。。。。。。。。。。。。。

 

10创建配置文件

首先进入mysql 文件目录

Cd /usr/local/mysql         进入

cp support-files/ my-default.cnf /etc/my.cnf  复制配置文件到/etc并改名

 

如果不进入mysql 文件目录 运行以下命令

[root@data~ ] cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

 

11设置环境变量      复制mysql服务启动脚本及加入PATH路径

   [root@data~ ] echo‘exportPATH=/usr/local/mysql/bin:$PATH‘ >>/etc/profile

    source !$

 

 技术分享

 

 

 

12创建服务启动脚本,添加开机启动

[root@data mysql ] cp support-files/mysql.server /etc/init.d/mysqld

 技术分享

 

13[root@data mysql ]  chmod +x /etc/init.d/mysqld  给脚本添加执行权限

 技术分享

 

14  修改服务启动脚本,修改以下两个参数

打开

[root@data mysql ] vi /etc/init.d/mysqld

修改的参数   

[root@data mysql ] basedir=/usr/local/mysql  MySQL安装目录

[root@data mysql ] datadir= /data/mysqldb   数据存放目录

 

:set nu

在第 46 行找到 需要设置的参数

 

 技术分享

 

 

:wq

保存退出

 

 

15添加开机启动

[root@data mysql ] chkconfig mysqld on  添加开机启动

 

 

16增加初始化工具的执行权限

[root@data mysql ] chmod +x scripts/mysql_install_db

 技术分享

 

17运行初始化命令。。。。。

[root@data mysql ] /usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysqldb --user=mysql

哈哈等待时间不算太长

 

下面为初始化命令之后输出的内容

 

 技术分享

技术分享

技术分享

 

To start mysqld at boot time you have to copy

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

 

要在引导时启动mysqld,你需要复制

support-files/mysql.server文件到你的系统的正确的地方

已经做过

 

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

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

请牢记设置密码为MySQL root用户!

为此,启动服务器,然后发出以下命令:

 

  /usr/local/mysql/bin/mysqladmin -u root password ‘new-password‘

  /usr/local/mysql/bin/mysqladmin -u root -h data password ‘new-password‘

 

这两个的意思是 用mysqladmin工具 修改密码 

 

Alternatively you can run:

另外,您也可以运行 下面的命令   运行安全初始化

/usr/local/mysql/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:

你可以开始与MySQL守护程序:

cd . ; /usr/local/mysql/bin/mysqld_safe &

程序路径

 

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

您可以测试与mysql-test-run.pl MySQL守护程序

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/mysql/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

 

 

请到http://bugs.mysql.com/报告任何问题

 

关于MySQL的最新信息可在以下网站上时

 

  http://www.mysql.com

 

通过http://shop.mysql.com买盘支撑/许可证支持MySQL

 

新的默认配置文件创建为 /usr/local/mysql/my.cnf和

将使用默认服务器,当你启动它。

您可以编辑这个文件来更改服务器设置

 

警告:默认的配置文件在系统上的/etc/my.cnf存在

该文件将默认由MySQL服务器读取

如果你不想用这个,要么删除它,或者使用

--defaults-file参数来启动服务器时mysqld_safe的

 

以上为最后成功安装的输出内容

 

见证奇迹的时候到了

 

18启动数据库

[root@data ~] Service mysqld start

 

 技术分享

 

 

启动成功

Starting MySQL. SUCCESS!     启动MySQL成功!

 

 

 

19  运行输出内容里面提到的 初始化安全配置

 [root@data ~] mysql_secure_installation  安全初始化配置

 

 技术分享

 

 

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL

      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

注:运行此脚本的所有部分建议对所有的MySQL

      服务器在生产中使用!请仔细阅读每一步!

 

In order to log into MySQL to secure it, we‘ll need the current

password for the root user.  If you‘ve just installed MySQL, and

you haven‘t set the root password yet, the password will be blank,

so you should just press enter here.

为了登录到MySQL来保护它,我们需要的当前密码为root用户。如果您刚刚安装了MySQL,和你没有设置root密码然而,密码为空,

所以你只要按enter键在这里。

 

 

1)Enter current password for root (enter for none):

 

输入当前的密码:

 

当然这里直接回车就可以了 ,因为我们刚刚安装没有运行修改密码命令

 

技术分享

 

 

 

OK, successfully used password, moving on...

OK,成功地使用密码,继续前进......

 

Setting the root password ensures that nobody can log into the MySQL

root user without the proper authorisation.

 

设置root密码,确保没有人可以登录到MySQL的

root用户没有适当的授权。

这里的时候可以输入一个密码 来确保数据库的安全设置之后请 牢记您的密码

 

我在这里制作的是真实服务器所以我在这里输入密码

 

2)Set root password? [Y/n]

设置root的密码? [Y/ N]

 技术分享

 

 

 

大写的 Y

 

 

 技术分享

 

输入两次密码后

提示

Password updated successfully!

Reloading privilege tables..

密码更新成功!

重装授权表..

Success

成功

继续我们的工作

 

 技术分享

 

 

By default, a MySQL installation has an anonymous user, allowing anyone

to log into MySQL without having to have a user account created for

them.  This is intended only for testing, and to make the installation

go a bit smoother.  You should remove them before moving into a

production environment.

 

默认情况下,MySQL安装有一个匿名用户,允许任何人

登录到MySQL,而不必对创建的用户帐户

他们。这仅用于测试,并且使安装

走位更顺畅。在生产环境,您应该删除它们。

 

3)Remove anonymous users? [Y/n]

删除匿名用户? [Y/ N]

 技术分享

 

我是生产环境,我选择Y

 

 技术分享

 

 

 

Normally, root should only be allowed to connect from ‘localhost‘.  This

ensures that someone cannot guess at the root password from the network.

 

通常情况下,ROOT应该只允许从‘localhost‘的连接。 这个

确保其他人无法从网络猜测到root的密码。

4)Disallow root login remotely? [Y/n]

禁止远程root登录? [Y/ N]

当然选 Y

 

我们继续

。。。。success  成功

 

 技术分享

 

 

By default, MySQL comes with a database named ‘test‘ that anyone can

access.  This is also intended only for testing, and should be removed

before moving into a production environment.

 

默认情况下,MySQL带有一个名为“test”的数据库,任何人都可以访问这个数据库

这也是仅用于测试,并应在生产环境中删除。

5)Remove test database and access to it? [Y/n]

删除访问测试数据库 [Y/ N]

 

当然 还是  Y

--Dropping test database                删除测试数据库

… success !                            成功

- Removing privileges on test database...-  在测试数据库中删除权限...

... Success!                             成功 

 技术分享

 

我们继续。。。。。。。。。

Reloading the privilege tables will ensure that all changes made so far

will take effect immediately.

 

重装授权表将确保迄今为止所做的所有更改将立即生效。

 

6)Reload privilege tables now? [Y/n]

 

现在刷新授权表? [Y/ N]

 

我们也是选择  Y

 

 技术分享

 

All done!  If you‘ve completed all of the above steps, your MySQL

installation should now be secure.

 

Thanks for using MySQL!

全做完了!如果你已经完成了所有上述步骤后,你的MySQL

安装现在应该是安全的。

感谢您使用MySQL!

Cleaning up...

不安全因素清理干净   

 

走起 。。。。。。。。。。

 

20测试登录  用你刚才设置的密码

 技术分享

 

 

输入密码

 

 技术分享

 

登录成功。。。

 

恭喜恭喜

 

不过我们还有一点工作要做

就是在生产环境中的 一些小配置

 

21 MySQL安全优化小配置

用户安全

1)mysql>select user,host from mysql.user;

 技术分享

 

 

2)mysql>delete from mysql.user where user=‘‘;

 

 技术分享

 

3)mysql>delete from mysql.user where host=‘data‘;

 技术分享

 

4)delete from mysql.user where host=‘::1‘;

 技术分享

 

5)mysql>select user,host from mysql.user;

 

 技术分享

 

你的数据库安全了,你现在可以使用您的MYSQL 数据库了

                                                  

 

老七 2016.06.26

 

rhel6.5 编译安装 MYSQLmysql-5.6.31

标签:

原文地址:http://www.cnblogs.com/rmrf/p/5618282.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!