红联Linux门户
Linux帮助

Linux网站架构系列之MySQL-部署篇

发布时间:2015-05-07 10:41:47来源:linux网站作者:sunsky

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。本篇将为大家讲解mysql的简单部署。


mysql的分为四个版本:
Alpha版:一般只在软件开发公司内部运行,不对外公开。
Beta版:完成功能的开发和所有的测试工作之后的产品,不会存在较大的漏洞和BUG,并且邀请和提供给用户体验与测试,以便更全面地测试软件的不足之处或存在的问题。
RC版:属于生产环境发布之前的一个小版本或称候选版本,是测试Beta版本二收集到的BUG或不足之处,根据手机到的信息而进行修复和完善之后的产品。
GA版本:软件产品正式发布的版本,也成生产版本的产品。


并且mysql为了更好发展将版本路线分为了三条。
第一条产品线:从5.0版本升级到5.1的系列版本,继续完善与改进其用户体验和性能,同时增加新功能。
第二条产品线:为了更好的整合MySQL AB公司,社区和新功能。版本编号从5.4开始,目前发展到5.6。
第三条产品线:为了更好推广MySQL Cluster 版本,从6.0版本开始,目前发展到7.3版本。

由于mysql不同产品线之间的编译安装方法还有差别,因此本篇将分别为大家讲解mysql的5.1.7版本和5.6.13版本的简单部署。
5.1.7版本

环境
CentOS6.4 x86_64位 采用最小化安装,系统经过了基本优化
selinux为关闭状态,iptables为无限制模式
ip:192.168.1.113/24
mysql版本:mysql-5.1.70
源码包存放位置:/server/tools
源码包编译安装位置:/etc/local/软件名称
数据库存放位置:/mydata


一、准备工作
1、开发环境部署
[root@c64-web ~]# yum groupinstall "Development tools" "Server Platform Development" -y #安装这两个开发环境的软件包组
[root@c64-web ~]# yum install pcre* -y #安装pcre兼容的正则表达式
2、创建用户及目录

[root@c64-web ~]# groupadd mysql  #添加mysql组
[root@c64-web ~]# useradd -r mysql -s /sbin/nologin -M mysql #创建mysql用户,并加入mysql组,不创建家目录,关闭登陆
[root@c64-web ~]# mkdir /mydata  #创建数据库存放目录
[root@c64-web ~]# chown -R mysql.mysql /mydata

3、下载源码包

[root@c64-web ~]# cd /server/tools
[root@c64-web tools]# wget http://mysql.ntu.edu.tw/Downloads/MySQL-5.1/mysql-5.1.70.tar.gz


二、编译安装
准备工作已经做好了,现在我们就开始编译安装mysql。

[root@c64-web tools]# tar zxf mysql-5.1.70.tar.gz
[root@c64-web tools]# cd mysql-5.1.70
[root@c64-web mysql-5.1.70]# ./configure \
--prefix=/usr/local/mysql \    #设定mysql安装路径,默认为/usr/local
--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock \  #指定Mysql socket文件存放目录
--localstatedir=/usr/local/mysql/data \    #设定mysql的数据文件存放位置
--enable-assembler \            #允许使用汇编模式(优化性能)
--enable-thread-safe-client \  #以线程方式编译客户端
--with-mysqld-user=mysql \      #指定MySQL运行的系统用户
--with-big-tables \            #启用大表支持
--without-debug \              #使用非debug模式
--with-pthread \                #强制使用pthread线程序库编译
--enable-assembler \            #使用一些字符函数的汇编版本(优化性能)
--with-extra-charsets=complex \ #字符支持
--with-readline \              #支持行编辑
--with-ssl \                    #启用ssl加密
--with-embedded-server \        #编译成embedded MySQL library (libmysqld.a),
--enable-local-infile \        #让mysql支持从本地文件 导入数据库
--with-plugins=partition        #数据库插件
--with-plugins=innobase \      #分表功能,将一个大表分割成多个小表
--with-mysqld-ldflags=-all-static \    #服务器使用静态库(优化性能)
--with-client-ldflags=-all-static      #客户端使用静态库(优化性能)
[root@c64-web mysql-5.1.70]# make && make install

执行了上面的操作之后,mysql-5.1.7版本就编译安装成功了。

下面为快速复制编译文本:

[root@c64-web mysql-5.1.70]# ./configure --prefix=/usr/local/mysql5.1.17 --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock --localstatedir=/usr/local/mysql/data --enable-assembler --enable-thread-safe-client --with-mysqld-user=mysql --with-big-tables --without-debug --with-pthread --enable-assembler --with-extra-charsets=complex --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=partition,innobase --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static


三、启动配置
1、创建目录软链接
mysql安装完成之后,我们要先为编译安装好的目录添加软链接。此操作在生产环境中为重要调优参数,添加这条软链接的目的有两点:1、方便人类使用。2、便于以后升级版本。
[root@c64-web mysql-5.1.70]# cd /root
[root@c64-web ~]# ln -s /usr/local/mysql5.1.17 /usr/local/mysql
2、创建其它相应目录及权限设置
[root@c64-web ~]# mkdir -p /mydata/data #建立mysql数据文件目录
[root@c64-web ~]# chown -R mysql /usr/local/mysql #授权mysql用户访问mysql的安装目录
3、获取Mysql主配置文件并修改
[root@c64-web ~]# ll /server/tools/mysql-5.1.70/support-files/*.cnf
-rw-r--r-- 1 root root 4714 11月 6 02:25 /server/tools/mysql-5.1.70/support-files/my-huge.cnf
-rw-r--r-- 1 root root 19763 11月 6 02:25 /server/tools/mysql-5.1.70/support-files/my-innodb-heavy-4G.cnf
-rw-r--r-- 1 root root 4688 11月 6 02:25 /server/tools/mysql-5.1.70/support-files/my-large.cnf
-rw-r--r-- 1 root root 4699 11月 6 02:25 /server/tools/mysql-5.1.70/support-files/my-medium.cnf
-rw-r--r-- 1 root root 2467 11月 6 02:25 /server/tools/mysql-5.1.70/support-files/my-small.cnf #中小型公司用这个即可
[root@c64-web mysql-5.1.70]# /bin/cp /server/tools/mysql-5.1.70/support-files/my-small.cnf /etc/my.cnf
修改mysql的主配置文件/etc/my.cnf,添加如下1行
datadir=/mydata #我们自定义的数据库存放目录
4、让系统识别源码包安装的软件
a)将mysql的库文件路径加入系统的库文件搜索路径中
方法一:直接做软链接
[root@c64-web ~]# ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql

方法二:利用ldconfig导入系统库(推荐)

[root@c64-web ~]# echo "/usr/local/mysql/lib" >> /etc/ld.so.conf.d/mysql.conf
[root@c64-web ~]# ldconfig

b)输出mysql的头文件到系统头文件

[root@c64-web ~]# ln -s /usr/local/mysql/include/mysql /usr/include/mysql

c)配置mysql命令全局使用路径
[root@c64-web ~]# echo "PATH=/usr/local/mysql/bin:$PATH" >>/etc/profile
[root@c64-web ~]# source /etc/profile

5、以mysql用户的身份建立用户表
[root@c64-web ~]# mysql_install_db --user=mysql --datadir=/mydata  #初始化mysql数据库文件
[root@c64-web ~]# mysqld_safe &  #此命令在上条命令的输出中找

由于上一条我们添加了全局路径,所以这里可以直接输入命令进行操作。
mysql数据库启动的另外一种方法
[root@c64-web ~]# /bin/cp /server/tools/mysql-5.1.70/support-files/mysql.server /etc/init.d/mysqld    #拷贝mysql启动脚本mysql命令路径
[root@c64-web ~]# chmod 700 /usr/local/mysql/bin/mysqld      #使脚本可执行
[root@c64-web ~]# /etc/init.d/mysqld start    #这是启动数据库方法之一
[root@c64-web ~]# /etc/init.d/mysqld stop    #关闭数据库的方法
[root@c64-web ~]# killalll mysqld #关闭数据库的另外一种方法

6、检查mysql数据库是否启动:
12 [root@c64-web ~]# netstat -lnt|grep 3306
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                  LISTEN

可以看到,我们的mysql服务已经启动起来了。这里如果发现3306端口没起来,请tail -100 /usr/local/mysql/data/机器名.err 检查日志报错进行调试。

7、设置初始账户,并登陆后台

[root@c64-web ~]# mysqladmin -u root password 123456  #设置密码
[root@c64-web ~]# history -c  #设置之后注意清除历史记录,防止密码泄露
[root@c64-web ~]# mysql -u root -p    #连接数据库查看
Enter password:  #这里输入刚才设置的密码
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.70 Source distribution
Copyright (c) 2000, 2013, 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 |
| test |
+--------------------+
3 rows in set (0.00 sec)
mysql> select user();    #查看现有用户
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
mysql> quit  #退出
Bye


到底我们mysql-5.1.17的部署就完成了,下面将是5.6.13的部署。
5.6.13版本
mysql的第二条产品线和第一条产品线的产品主要在数据存储引擎和编译安装的方法上有点区别,因此这里我就主要对编译安装的部分进行讲解,其它地方都是大同小异的。
mysql-5.6.13源码包下载地址:http://mysql.ntu.edu.tw/Downloads/MySQL-5.6/mysql-5.6.13.tar.gz
编译参数详解:

[root@c64-web mysql-5.6.13]# cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \          #指定mysql安装目录
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \                #Unix socket文件路径,自定义此路径防报错
-DDEFAULT_CHARSET=gbk \                            #默认字符
-DDEFAULT_COLLATION=gbk_chinese_ci \              #校验字符
-DEXTRA_CHARSETS=all \                            #安装所有扩展字符集
-DWITH_MYISAM_STORAGE_ENGINE=1 \                  #安装myisam存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \                #安装innodb存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \                  #安装archive存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \                #安装blackhole存储引擎
-DWITH_MEMORY_STORAGE_ENGINE=1 \                  #安装memory存储引擎
-DWITH_FEDERATED_STORAGE_ENGINE=1                  #安装frderated存储引擎
-DWITH_READLINE=1 \                                #快捷键功能
-DENABLED_LOCAL_INFILE=1 \                        #允许从本地导入数据
-DMYSQL_DATADIR=/usr/local/mysql/data \            #数据库存放目录
-DMYSQL_USER=mysql \                              #数据库属主
-DMYSQL_TCP_PORT=3306 \                            #数据库端口
-DSYSCONFDIR=/etc \                                #MySQL配辑文件
-DWITH_SSL=yes                                    #数据库SSL

下面为快捷复制执行命令:

[root@c64-web mysql-5.6.13]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=gbk -DDEFAULT_COLLATION=gbk_chinese_ci -DEXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 -DSYSCONFDIR=/etc -DWITH_SSL=yes

执行之后,还是用make&&make install 来执行编译安装。
后来的其它操作和5.1.13一样,这里就不再写一遍了。


相关文章:
Linux网站架构系列之Apache-部署篇:http://www.linuxdiyf.com/linux/11987.html