简介
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的关系数据库管理系统应用软件。MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL作为网站数据库。
实验环境
系统环境:centos7.4
服务器IP地址:192.168.100.71
yum挂载目录:/mnt/sr0
相关源码包下载地址:百度云下载 密码:r26y
建步骤
1、添加新硬盘作为解压目录
[root@redhat7_5 ~]# fdisk /dev/sdb
[root@redhat7_5 ~]# mkfs.ext4 /dev/sdb1 #格式化分区,写入系统文件
[root@redhat7_5 ~]# mount /dev/sdb1 /opt/ #挂载至解压目录下
[root@redhat7_5 ~]# df -h
2、安装相关依赖包
[root@redhat7_5 ~]# mount /dev/sr0 /mnt/sr0/ #挂在光盘
[root@redhat7_1 ~]# yum -y install \
ncurses \
ncurses-devel \
bison \
cmake
3、创建进程用户
[root@redhat7_1 ~]# useradd -s /sbin/nologin mysql
4、解压相应源码包
[root@redhat7_1 ~]# tar zxvf mysql-5.7.17.tar.gz -C /opt/
[root@redhat7_1 ~]# tar zxvf boost_1_59_0.tar.gz -C /usr/local/
[root@redhat7_1 ~]# cd /usr/local/
[root@redhat7_1 local]# mv boost_1_59_0 boost
5、安装mysql
[root@redhat7_1 ~]# cd /opt/mysql-5.7.17/
[root@redhat7_1 ~]# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-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 \
-DWITH_SYSTEMD=1
注意:如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧
[root@redhat7_1 mysql-5.7.17]# make && make install #时间稍慢,要等待……
6、修改mysql权限
[root@redhat7_1 ~]# chown -R mysql:mysql /usr/local/mysql/
7、编辑主配置文件
[root@redhat7_1 ~]# vim /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[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
8、相关优化
[root@redhat7_1 ~]# chown mysql:mysql /etc/my.cnf
[root@redhat7_1 ~]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
[root@redhat7_1 ~]# echo 'export PATH' >> /etc/profile
[root@redhat7_1 ~]# source /etc/profile
9、初始化服务
[root@redhat7_1 ~]# cd /usr/local/mysql/
[root@redhat7_1 mysql]# bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
10、启动服务
[root@redhat7_1 ~]# cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
[root@redhat7_1 ~]# systemctl daemon-reload
[root@redhat7_1 ~]# systemctl start mysqld
[root@redhat7_1 ~]# systemctl enable mysqld
[root@redhat7_1 ~]# netstat -anpt | grep 3306
11、登录mysql
[root@redhat7_1 ~]# mysqladmin -u root -p password '123'
[root@redhat7_1 ~]# mysql -u root -p123