标签:
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