一、概述
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。关系数据库将数据保存在不同的表中,这样就增加了速度并提高了灵活性。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。
优点:速度快、轻量、开源、性能优良、简单易用、总体拥有成本低、开放源码。
二、搭建MySQL
上传文件包至opt目录中并解压
所需软件包:mysql-boost-5.7.20.tar.gz
[root@localhost ~]# cd /opt
[root@localhost opt]# ll
-rw-r--r--. 1 root root 48833145 Sep 29 04:23 mysql-boost-5.7.20.tar.gz
[root@localhost opt]# tar xf mysql-boost-5.7.20.tar.gz
[root@localhost opt]# ll
drwxr-xr-x. 36 7161 31415 4096 Sep 13 2017 mysql-5.7.20
-rw-r--r--. 1 root root 48833145 Sep 29 04:23 mysql-boost-5.7.20.tar.gz
安装MySQL所需环境
[root@localhost opt]# yum -y install \
ncurses \ //一种计算机语言,字符终端处理库
ncurses-devel \ //字符终端下屏幕控制的基本库,在TTY下登录到主机上mysql需要
bison \ //语法分析器生成器
cmake //跨平台的安装(编译)工具
配置模块
[root@localhost opt]# cd /opt/mysql-5.7.20
[root@localhost mysql-5.7.20]# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ //指定安装位置
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ //通讯文件,缺少无法登陆
-DSYSCONFDIR=/etc \ //指定系统配置目录
-DSYSTEMD_PID_DIR=/usr/local/mysql \ //指定PID文件路径
-DDEFAULT_CHARSET=utf8 \ //指定默认字符集
-DDEFAULT_COLLATION=utf8_general_ci \ //指定默认字符集校对规则
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ //innobase存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ //归档存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ //黑洞存储引擎
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ //
-DMYSQL_DATADIR=/usr/local/mysql/data \ //数据库数据目录
-DWITH_BOOST=boost \ //boost库
-DWITH_SYSTEMD=1 //
编译安装及调整权限
[root@localhost mysql-5.7.20]# make && make install
[root@localhost mysql-5.7.20]# chown -R mysql:mysql /usr/local/mysql/
建立调整配置文件
[root@localhost mysql-5.7.20]# vi /etc/my.cnf //原有内容删除,替换以下内容
[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
[root@localhost mysql-5.7.20]# chown mysql:mysql /etc/my.cnf
设置环境变量
[root@localhost mysql-5.7.20]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
[root@localhost mysql-5.7.20]# echo 'export PATH' >> /etc/profile
[root@localhost mysql-5.7.20]# source /etc/profile
[root@localhost mysql-5.7.20]# cd /usr/local/mysql/
[root@localhost mysql]# bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
[root@localhost mysql]# cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
[root@localhost mysql]# systemctl enable mysqld
[root@localhost mysql]# systemctl start mysqld
[root@localhost mysql]# systemctl status mysqld
[root@localhost mysql]# netstat -anpt | grep 3306
tcp6 0 0 :::3306 :::* LISTEN 9641/mysqld
[root@localhost mysql]# mysqladmin -u root -p password "abc123"
[root@localhost mysql]# mysql -u root -p
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.01 sec)
此时MySQL部署完成