目录
- 一、编译安装
- 二、yum安装
- 三、总结
一、编译安装
(1)清理安装环境
以下这几步操作的目的是清空相关数据库环境(包括mariadb数据库、mysql残留数据等),为即将要安装的mysql做环境准备,本次安装的数据库版本是mysql5.7的。如果你用的是新装的系统,那么这一步可以跳过,继续执行下面步骤。
yum erase -y mariadb mariadb-server mariadb-libs mariadb-devel --卸载相关mariadb数据库
userdel -r mysql --删除mysql用户
rm -rf /etc/my* --删除mysql配置文件
rm -rf /var/lib/mysql --删除mysql数据
systemctl stop firewalld --临时关闭防火墙
systemctl disable firewalld --永久关闭防火墙
setenforce 0 --临时关闭selinux
vim /etc/sysconfig/selinux --永久关闭selinux,修改配置文件
(2)创建mysql用户
useradd -r mysql -M -s /bin/nologin
参数解释:
-M --不创建用户家目录
-s --指定登录shell
(3)上官网下载源码包
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.27.tar.gz
(4)安装编译工具
yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make
yum -y install cmake
(5)创建mysql目录
mkdir -p /usr/local/{data,mysql,log}
(6)解压mysql包
tar xzvf mysql-boost-5.7.27.tar.gz -C /usr/local/
【注:】如果安装的MySQL5.7及以上的版本,在编译安装之前需要安装boost,因为高版本mysql需要boots库的安装才可以正常运行,否则会报CMake Error at cmake/boost.cmake:81错误,安装包里面自带boost包。
(7)进行编译安装
cd /usr/local/mysql-5.7.27/ --先cd到解压的mysql目录
========================================================================================
cmake . \
-DWITH_BOOST=boost/boost_1_59_0/ \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DINSTALL_MANDIR=/usr/share/man \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1
========================================================================================
提示:boost也可以使用如下指令自动下载,如果不下载bost压缩包,把下面的这一条添加到配置中第二行
-DDOWNLOAD_BOOST=1/
参数详解:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ --安装目录
-DSYSCONFDIR=/etc \ --配置文件存放 (默认可以不安装配置文件)
-DMYSQL_DATADIR=/usr/local/mysql/data \ --数据目录,错误日志文件也会在这个目录
-DINSTALL_MANDIR=/usr/share/man \ --帮助文档
-DMYSQL_TCP_PORT=3306 \ --默认端口
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ --sock文件位置,用来做网络通信的,客户端连接服务器的时候用
-DDEFAULT_CHARSET=utf8 \ --默认字符集。字符集的支持,可以调
-DEXTRA_CHARSETS=all \ --扩展的字符集支持所有的
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_READLINE=1 \ --上下翻历史命令
-DWITH_SSL=system \ --使用私钥和证书登陆(公钥) 可以加密。 适用与长连接。坏处:速度慢
-DWITH_EMBEDDED_SERVER=1 \ --嵌入式数据库
-DENABLED_LOCAL_INFILE=1 \ --从本地倒入数据,不是备份和恢复。
-DWITH_INNOBASE_STORAGE_ENGINE=1 --默认的存储引擎,支持外键
make && make install --安装
(8)数据库初始化
cd /usr/local/mysql
chown -R mysql.mysql .
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
【注意】:只需要初始化一次即可。初始化完成之后,要记住提示最后的密码用于登陆或者修改密码.
(9)设置环境变量
echo 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile
source /etc/profile
echo $PATH
/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
vim /etc/my.cnf --如果打开文件有内容将文件中所有内容注释掉,在添加如下内容
========================================================================================
[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set = utf8
[mysqld]
port = 3306
user = mysql
basedir = /usr/local/mysql --指定安装目录
datadir = /usr/local/mysql/data --指定数据存放目录
socket = /tmp/mysql.sock
character_set_server = utf8
(10)启动MySQL
cd /usr/local/mysql
./bin/mysqld_safe --user=mysql & --后台启动
(11)登录MySQL
/usr/local/mysql/bin/mysql -uroot -p'GP9TKGgY9i/8' #这里的密码在第(8)步数据库初始化完后生成时
(12)启动MySQL数据库
- 拷贝启动脚本到/etc/init.d/目录下,并改名mysqld
cp support-files/mysql.server /etc/init.d/mysqld
- 重载系统服务,并将MySQL数据库设置开机自启动
systemctl daemon-reload --加载系统服务
chkconfig mysqld on --设置开机启动
- 启动MySQL数据库
/etc/init.d/mysqld start --启动mysqld
/etc/init.d/mysqld stop --停止mysqld
(13)修改MySQL数据库登录密码
/usr/local/mysql/bin/mysqladmin -uroot -p'GP9TKGgY9i/8' password 'ZRSanqy@123'
再次登录MySQL数据库
/usr/local/mysql/bin/mysql -uroot -p'ZRSanqy@123' --修改后即可使用该密码登录MySQL了数据库
至此,mysql数据库编译安装完成。
二、yum安装
(1)关闭防火墙及selinux
systemctl stop firewalld --临时关闭防火墙
systemctl disable firewalld --永久关闭防火墙
setenforce 0 --临时关闭selinux
vim /etc/sysconfig/selinux --永久关闭selinux,修改配置文件
(2)去mysql官网下载安装包
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
(3)安装mysql的yum仓库
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
yum -y install yum-utils --安装yum工具包
(4)配置yum源
vim /etc/yum.repos.d/mysql-community.repo
或者
yum-config-manager --enable mysql57-community --将禁用的yum源库启用
yum-config-manager --disable mysql80-community --将启用的yum源库禁用
(5)安装数据库
yum install -y mysql-community-server
(6)启动数据库并做开机启动
systemctl start mysqld --启动mysql
systemctl enable mysqld --mysql设置开机自启
(7)查找密码
grep password /var/log/mysqld.log --密码保存在日志文件中
=======================================================================================================
2019-08-18T14:03:51.991454Z 1 [Note] A temporary password is generated for root@localhost: woHtkMgau9,w
(8)修改密码
mysqladmin -u root -p'woHtkMgau9,w' password '新密码'
至此,mysql数据库yum安装完成。
三、总结
- mysql编译安装和yum安装方式有所不同:对于源码编译安装,需要下载源码包,然后进行编译安装;对于yum安装,是通过下载并安装rpm包,再进行yum安装。
- mysql编译安装和yum安装的优缺点:
- 编译安装优点:在进行编译安装时可指定相应的安装路径,以及设定相应参数等,较yum安装来说灵活性很高;
- 编译安装缺点:对于编译安装来说,可能需求多个依赖包才能进行编译,因此这种安装方式不会自动解决依赖包,导致在安装过程中耗时耗力。
- yum安装优点:方便快捷,会自动解决依赖包,也是我们最常用的一种安装方式;
- yum安装缺点:在安装过程中,人为无法干预安装过程,会一次性安装完成,不能按需安装。
- 不管用那种方式安装mysql数据库,这两种方式都得会安装。实际上它们达到的效果都是一样的,只要能达到我们的目的,用哪种方式安装均可。