简介

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。MySQL关系型数据库于1998年1月发行第一个版本。它使用系统核心提供的多线程机制提供完全的多线程运行模式,提供了面向C、C++、Eiffel、Java、Perl、PHP、Python以及Tcl等编程语言的编程接口(APIs),支持多种字段类型并且提供了完整的操作符支持查询中的SELECT和WHERE操作。

实验环境

系统环境:centos 7

宿主机IP地址:192.168.100.201

yum挂载目录:/mnt/sr0

相关源码包链接:https://pan.baidu.com/s/1f3v-qM-vwK-nT-EKEScZkQ 密码:t927

mysql-5.7.17.tar.gz 软件包的安装目录空间最小不少于8G,否则make完成后会报警空间不足!

实验目标

搭建出MySQL数据库基础服务

实验步骤

1.安装环境包

yum -y install
ncurses \ #提供字符终端处理库 ncurses-devel \ #字符终端下屏幕控制的基本库 bison \ #gcc gcc-c++的语法分析器 cmake #跨平台的安装工具

2.源码编译及安装

(1)创建运行账户

useradd -s /sbin/nologin mysql

(2)解包

tar zxvf mysql-5.7.17.tar.gz -C /opt/ tar zxvf boost_1_59_0.tar.gz -C /usr/local/ #c++运行库 cd /usr/local/ #需要指向的路径,便于识别 mv boost_1_59_0 boost #重命名

(3)配置

cd mysql-5.7.17/

 cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \         #安装目录
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \   #连接文件
-DSYSCONFDIR=/etc \                        # mysql配置文件存在路径
-DSYSTEMD_PID_DIR=/usr/local/mysql \         #进程文件所在路径
-DDEFAULT_CHARSET=utf8  \                    #字符集
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \          #存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ 
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \ #数据库文件所在路径
-DWITH_BOOST=/usr/local/boost \         #支持c++运行库
-DWITH_SYSTEMD=1                      #使系统支持mysql

(4)编译及安装

make && make install

备注:此过程等待时间很长,约40分钟左右,要有心理准备! 3.安装后的调整

(1)对数据库目录进行权限设置

[root@localhost etc]# chown mysql:mysql /etc/my.cnf [root@localhost etc]# ls -l | grep "my.cnf" #查看权限 -rw-r--r--. 1 mysql mysql 728 8月 23 02:15 my.cnf #权限已改为mysql drwxr-xr-x. 2 root root 31 7月 28 04:14 my.cnf.d

(2)建立配置文件

[root@localhost mysql-5.5.24]# cp support-files/my-medium.cnf /etc/my.cnf #创建配置文件 [root@localhost mysql-5.5.24]# vim /etc/my.cn #修改配置文件

[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

(3)初始化数据库

cd /usr/local/mysql/

bin/mysqld
--initialize-insecure \ #生成数据库密码,为空 --user=mysql
--basedir=/usr/local/mysql
--datadir=/usr/local/mysql/data

(4)设置环境变量

echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile #环境变量文件 echo 'export PATH' >> /etc/profile #设置全局模式 source /etc/profile #执行使其生效

4.添加系统服务

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ #复制启动脚本 systemctl daemon-reload #刷新识别启动脚本 systemctl start mysqld #启动MySQL

netstat -anpt | grep 3306 #查看端口 [root@localhost mysql]# netstat -anpt | grep 3306 tcp6 0 0 :::3306 :::*

systemctl enable mysqld #添加开机自启动

mysqladmin -u root password "abc123" #设置登陆密码 mysql -uroot –pabc123 #登录mysql

5.实现远程登录

grant all privileges on *.* to 'root'@'%' identified by 'abc123' with grant option; #设置权限,实现远程登陆 flush privileges;