简介
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
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;