千金良方:MySQL性能优化金字塔法则
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.1 快速安装MySQL

在开始安装MySQL之前,我们先对MySQL做一个简单的介绍。

MySQL原本是一个开放源代码的关系数据库管理系统,原开发者为瑞典的MySQL AB公司,该公司于2008年被昇阳微系统(Sun Microsystems)公司收购。2009年,甲骨文公司(Oracle)收购了昇阳微系统公司,从此,MySQL成为Oracle旗下产品。截至本书写作日期,Oracle MySQL官方MySQL 5.7最新的GA版本为5.7.26。

过去MySQL由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在Internet上的中小型网站中。随着MySQL的不断成熟,现在它也逐渐被应用于更多大规模的网站和应用中,比如维基百科、Google和Facebook等网站。非常流行的开源软件组合LAMP中的“M”指的就是MySQL。

现在,我们开始下载和安装MySQL。

下载MySQL最新的GA版本:

wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

解压缩所下载的二进制安装包:

[root@localhost ~]# mkdir -p /home/mysql/program
[root@localhost ~]# tar xf /soft_resource/mysql-percona-mariadb/mysql-5.7.20-linux-\glibc2.12-x86_64.tar.gz -C /home/mysql/program/
[root@localhost ~]# ll /home/mysql/program/mysql-5.7.20-linux-glibc2.12-x86_64/
总用量 52
drwxr-xr-x  2 root root  4096 12月 11 23:38 bin
-rw-r--r--  171613141517987 9月  13 23:48 COPYING
drwxr-xr-x  2 root root  4096 12月 11 23:39 docs
drwxr-xr-x  3 root root  4096 12月 11 23:38 include
drwxr-xr-x  5 root root  4096 12月 11 23:39 lib
drwxr-xr-x  4 root root  4096 12月 11 23:38 man
-rw-r--r--  1716131415  2478 9月  13 23:48 README
drwxr-xr-x 28 root root 4096 12月 11 23:39 share
drwxr-xr-x 2 root root 4096 12月 11 23:39 support-files

程序目录结构:不同的发行方式(如RPM包、tar.gz源码包、tar.gz编译好的二进制包),目录结构有所不同。这里以二进制安装包为例进行说明,如上面的信息所示,对应的目录解释如下。

● bin:包含客户端程序和mysqld等二进制可执行文件。

● docs:包含ChangeLog等信息。

● include:包含(头)文件的目录。

● lib:可动态加载的so库文件目录。

● man:包含man1、man8,可以利用这两个目录配置MySQL的帮助手册。

● share:包含MySQL初始化的一些SQL脚本以及错误代码、本地化语言文件等。

● support-files:包含单实例启停脚本mysql.server和多实例启停脚本mysqld_multi. server等。

现在,我们创建一个配置文件模板,并创建所需的磁盘目录(注:本节后续内容与“第1章MySQL初始化安装、简单安全加固”有少许重叠,这是为了方便大家跟随操作,这里单独列出了初始化数据库的步骤。如果已有通过二进制安装包安装的数据库环境,则可跳过本节后续内容)。

配置文件模板,详见1.5节“MySQL参数模板”。

创建磁盘目录和用户:

# 创建mysql用户
[root@localhost ~]# useradd mysql -s /sbin/nologin
# 创建磁盘目录
[root@localhost ~]# mkdir -p /home/mysql/data/mysqldata1/{binlog, innodb_log, innodb_ts, \log, mydata, relaylog, slowlog, sock, tmpdir, undo}
[root@localhost ~]# chown mysql.mysql /home/mysql/data -R

简单配置MySQL的快捷方式和环境变量:

[root@localhost ~]# ln -s /home/mysql/program/mysql-5.7.20-linux-glibc2.12-x86_64/\/usr/local/mysql
[root@localhost ~]# export PATH=$PATH:/usr/local/mysql/bin/
[root@localhost ~]# echo 'export PATH=$PATH:/usr/local/mysql/bin/' >> /etc/profile

初始化数据库:

[root@localhost ~]# mysqld --defaults-file=/etc/my.cnf --initialize-insecure

配置MySQL启停脚本(注意,这里是为了方便我们实验和学习,在生产环境中不建议配置自启动脚本):

[root@localhost ~]# cp -ar /usr/local/mysql/support-files/mysql.server/etc/init.d/mysqld
[root@localhost ~]# chmod +x /etc/init.d/mysqld
[root@localhost ~]# chkconfig mysqld on
[root@localhost ~]# chkconfig --list mysqld
mysqld      0:关闭   1:关闭   2:启用   3:启用   4:启用   5:启用   6:关闭

启动并登录MySQL:

# 启动
[root@localhost ~]# service mysqld start
Starting MySQL..                                        [确定]
# 登录(由于初始化数据库时使用了--initialize-insecure选项,所以初始化完成之后没有密码,直接登录)
[root@localhost ~]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.20-log MySQL Community Server(GPL)
Copyright(c)2000, 2017, 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>

至此,数据库快速安装完成。注意:在生产环境中还需要对数据库进行简单加固(例如:删除数据库中的匿名账号及其对应的权限,修改root密码等)。