【MySQL】Linux下MySQL 5.5、5.6和5.7的RPM、二进制和源码安装
各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~:
① MySQL的二进制安装过程(重点)
② MySQL多实例管理(mysqld_multi)
③ MySQL的源码编译安装过程
④ Linux的逻辑卷的使用
⑤ 文件的MD5值
⑥ 访问MySQL的几种客户端工具(Navicat和MySQLWorkbench)
⑦ 修改MySQL的密码
⑧ 设置MySQL的远程访问
⑨ 设置MySQL的开机启动以及多实例的开机启动
⑩ RPM、二进制和源码编译的优缺点
自从去年3月份开始写书到现在,基本上大部分内容都写完了。一个字,累!三个字,真心累!我也因此错过了很多的东西,当然也收获了很多,一切都随缘吧。现在来说说博客吧,虽然我的博客在这段时间更新比较频繁,但是大多内容都不是来自我的原创,基本都是整理自网络。可能有的朋友就会骂小麦苗了,抄袭抄袭,我不反驳,因为这的确是抄袭。为啥小麦苗要这么做,可能基于这么几个原因吧。第一,干货类的文章,本来原创的内容就少,网上的文章也大多是一个抄一个的,很多内容,原创作者已经很难找到了。第二,个别文章并不是很完善,如果不整理在一块,若下次碰到相同的内容,还是得网上再天翻地覆的搜一遍,太浪费时间了。第三,这些非原创的文章,不仅仅是给网友做参考,更重要的是,小麦苗自己也参考。毕竟人的记忆力是有限的,小麦苗也经常搜索自己的文章,所以,这并不可耻。第四,有的文章写得很好,但是里边有个别地方写得不严谨,或者写得有错误,这个时候,小麦苗整理到自己博客的时候就可以顺便修改过来。说再多,有的网友觉得,这都是借口,好吧。抄袭就是抄袭,再多借口也改变不了抄袭的本质。小麦苗不再多说了,只想说一句,不喜勿喷。
从今天开始,小麦苗会准备OCM和MySQL的学习。所以,今天就先把MySQL的各个版本安装一下吧。要学习MySQL,估计5.5、5.6和5.7版本的都需要安装。不过,相比Oracle而言,MySQL还是更好安装一点。
小麦苗出版的书籍:http://blog.itpub.net/26736162/viewspace-2142121/
废话已经说了很多了,下面开始安装吧。
在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服务器
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的安装方式请参考:
<a>http://blog.itpub.net/26736162/viewspace-1349705/</a>
<a>http://blog.itpub.net/26736162/viewspace-1349787/</a>
官网中相应地有以上三种方式对应的下载链接,其中源码安装,对应"Source Code";.tar.gz对应"Linux - Generic",.rpm则对应于"Red Hat Enterprise Linux / Oracle Linux",如下图所示,
1.目录大小。MySQL 5.7的二进制安装后大约3G,所以可以分配5G空间;而5.5和5.6版本的二进制包安装可以分配2G左右。
2.MySQL 5.7的源码包需要分配10G的空间。cmake最低需要2.8.2版本。
3.下载和上传后需要校验md5值,防止上传的文件不完整。
4.源码编译安装比较费时费力。
在官网:http://dev.mysql.com/downloads/mysql/中,选择以下版本的MySQL下载:
注意:MD5: dbe7e5e820377c29d8681005065e5728,下载完成后需要校验。
注意:不要下载rpm类型的包,安装路径不灵活,默认路径不能修改,一台服务器只能MySQL安装一个 MySQL。下图下载后均是rpm包:
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
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
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
本文转自lhrbest 51CTO博客,原文链接:http://blog.51cto.com/lhrbest/1960271,如需转载请自行联系原作者