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