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密码等)。