前言
常见的 MySQL 安装方式有如下三种:
RPM 包方式:这种方式安装适合对数据库要求不太高的场合,安装速度快;
通用二进制包方式:安装速度相较于源码方式快,可以自定义安装目录。
源码编译安装:安装过程比较慢,机器性能不好的情况下,大约需要30分钟左右,通常适用于mysql定制化的安装,比如需要加入一些第三方的插件及依赖库等
RPM
首先去官网下载mysql捆绑包,然后上传服务器开始安装。
解压tar包
tar -xvf mysql-5.7.35-1.el7.x86_64.rpm-bundle.tar
然后会得到这些包。

最后进行安装。
使用yum或rpm命令都可以。
我这里使用yum
yum -y install *

安装完成后查看默认配置文件在/etc/my.cnf

直接启动mysql

到这里mysql就已经部署完成啦,但是mysql登录密码是多少呢?
MySQL 5.7 以后,不在允许使用空密码进行登录,默认会初始化一个密码到 MySQL Error 日志中,配置参数 log-error= 指定的文件。
cat /var/log/mysqld.log | grep password

输入密码就成功登录啦

到这mysql的RPM部署方式就结束啦。
卸载步骤
卸载mysql包,删除相关目录。

通用二进制包
去官网下载二进制包,然后安装部署依赖环境。
创建mysql用户,安装mysql依赖gcc c++ libaio等。。
yum -y install make gcc-c++ cmake bison-devel ncurses-devel readline-devel libaio-devel perl libaio wget lrzsz vim libnuma* bzip2 xz
创建mysql用户
useradd -M -s /sbin/nologin -r mysql
创建mysql相关目录
mkdir -p /usr/local/mysql/data
解压mysql包到/usr/local/mysql
更改目录所有者及所属组
chown -R mysql.mysql /usr/local/mysql
初始化
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data

获得mysql的登录密码。
编辑mysql配置文件
Vim /etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/tmp/mysql.sock
user=mysql
port=3306
character-set-server=utf8
# 取消密码验证
#skip-grant-tables
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# skip-grant-tables
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
拷贝启动文件到系统
设置开机自启
启动服务
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chkconfig mysql on
Service mysql start
登陆

更改密码

完事!
编译安装
官网下载编译安装的包mysql-boost-5.7和boost-1.59
解压boost包到/usr/local/boost
解压mysql-boost-5.7并cd进去
安装依赖
yum -y install make gcc-c++ cmake bison-devel ncurses-devel perl openssl-devel
创建mysql目录
执行编译参数
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql57 -DMYSQL_DATADIR=/usr/local/mysql57/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DENABLE_DOWNLOADS=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost
检查是否安装编译成功
echo $?
0代表成功,1代表失败
如果编译出错删掉CMakeCache.txt
继续编译安装
make && make install
vim /etc/profile
# 最后一行添加
export PATH=/usr/local/mysql57/bin:/usr/local/mysql57/lib:$PATH
#终端执行⬇️
source /etc/profile
#配置文件
[mysqld]
datadir=/usr/local/mysql57/data
socket=/usr/local/mysql57/mysql.sock
user = mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error=/usr/local/mysql57/logs/mysqld.log
pid-file=/usr/local/mysql57/pids/mysqld.pid
[client]
default-character-set=utf8
socket=/usr/local/mysql57/mysql.sock
[mysql]
default-character-set=utf8
socket=/usr/local/mysql57/mysql.sock
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
初始化数据库
mysqld_safe --basedir=/usr/local/mysql57 --datadir=/usr/local/mysql57/data --user=mysql
拷贝mysql启动文件
Mysql解压路径/support-files/mysql.server /etc/init.d/mysqld57
并给予执行权限。
开机自启
chkconfig --add mysqld57
chkconfig mysqld57 on
chkconfig --list | grep mysqld57
大坑进行实践
Starting MySQL.. ERROR! The server quit without updating PID file (/usr/local/mysql57/data/VM_159_140_centos.pid).
1.给予权限,执行 "chown -R mysql.mysql /usr/local/mysql57/data/" 然后重新启动mysqld
2.进程占用 执行"ps -ef|grep mysqld" 查看是否有mysqld进程,如果有就"kill" 掉
3.datadir目录,/etc/my.cnf查看在[mysqld]下有没有指定数据目录(datadir)
4.skip-federated字段问题,/etc/my.cnf配置文件注释掉的skip-federated字段
5.错误日志目录不存在,使用“chown” “chmod”命令赋予mysql所有者及权限
Comments NOTHING