Mysql数据库编译安装及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数据库,这两种方式都得会安装。实际上它们达到的效果都是一样的,只要能达到我们的目的,用哪种方式安装均可。

猜你喜欢

转载自blog.csdn.net/IT_ZRS/article/details/108308034
今日推荐