云-安装Mysql(Centos7版本)

安装Mysql(Centos7版本)

前言

本人打算学习云计算技术,打算从Mysql开始,并长期更新实操步骤。今天是进行Mysql的安装。

一.源码安装

  1. 卸载系统自带 MariaDB以及安装依赖环境

  • CentOS7 默认装了 MariaDB,会和 MySQL 冲突,需要删除。
rpm -qa | grep mariadb       #查mariadb包
rpm -e --nodeps 查到的包名     #卸载mariadb,不包含依赖

在这里插入图片描述

  • 安装编译依赖
yum install -y gcc gcc-c++ cmake ncurses ncurses-devel bison openssl-devel libaio-devel

在这里插入图片描述

  1. 创建Mysql用户

避免使用root来登录mysql,规范,安全,权力量身定制化。

  • 创建用户和组

    groupadd Mysql #创Mysql组
    useradd -r -g mysql -s /sbin/nologin Mysql  # 创建 mysql 用户(归到 mysql 组,且不允许登录系统)
    
  • 创建安装目录与数据

mkdir -p /usr/local/Mysql # 安装目录
mkdir -p /data/Mysql # 数据目录
chown -R Mysql:Mysql /usr/local/Mysql/
chown -R Mysql:Mysql /data/Mysql/ # 给目录赋权(必须是 mysql 用户,否则初始化会报错)
  1. 下载源码

使用wget从官方下载5.7版本的源码包

wget https://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.44.tar.gz # 下载源码
tar -zxvf mysql-5.7.44.tar.gz # 解压
cd mysql-5.7.44 # 进入解压后的目录
  1. 编译与安装

  • 写一个bash脚本进行cmake配置

    #!/bin/bash
    cmake \
    -DCMAKE_INSTALL_PREFIX=/usr/local/Mysql \  # 安装目录
    -DMYSQL_DATADIR=/data/Mysql \              # 数据目录
    -DMYSQL_USER=Mysql \                       # 运行用户
    -DMYSQL_TCP_PORT=3306 \                    # 端口(默认3306)
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \         # 启用 InnoDB 引擎
    -DWITH_SSL=1 \                             # 启用 SSL(安全)
    -DDOWNLOAD_BOOST=1 \                       #允许自动安装Boost(较慢,推荐下载好后传至机器上)
    -DWITH_BOOST=/usr/local/boost \            #定义Boost文件的位置
    -DCMAKE_CXX_FLAGS="-std=c++11"             # 解决 CentOS7 编译器兼容问题
    
  • 编译与安装

    make -j4 # 编译(-j4 表示用 4 个 CPU 核心,速度更快,根据自己服务器核心数调整)
    make install # 安装(把编译好的文件放到 /usr/local/mysql)
    

在这里插入图片描述

  1. 初始化并配置Mysql
  • 初始化Mysql
cd /usr/local/Mysql/bin  # 进入安装目录的 bin 文件夹

./mysqld --initialize --user=Mysql --basedir=/usr/local/Mysql --datadir=/data/Mysql  # 执行初始化命令(初始化 用户为Mysql,根目录为/usr/local/mysql,数据目录为 /data/mysql)

在这里插入图片描述

A temporary password is generated for root@localhost: XXX

  • 配置my.cnf
cat > /etc/my.cnf << EOF
[mysqld]
basedir=/usr/local/Mysql
datadir=/data/Mysql
socket=/tmp/Mysql.sock
user=Mysql
port=3306
character-set-server=utf8mb4
[mysql]
socket=/tmp/Mysql.sock
default-character-set=utf8mb4
EOF
  1. 启动Mysql
  • 复制启动脚本

    cp /usr/local/src/mysql-5.7.44/support-files/mysql.server /etc/init.d/mysql
    # 从源码目录复制启动脚本到 /etc/init.d(服务管理目录)
    chmod +x /etc/init.d/mysql # 给脚本加执行权限
    

    启动Mysql

    service mysql start  # 启动 MySQL
    service mysql status #  MySQL状态
    

    在这里插入图片描述

  • 开机自启

    chkconfig --add mysql # 添加到系统服务
    chkconfig mysql on # 设置开机启动
    chkconfig --list mysql # 验证(2-5 级别是 "开" 就对)
    

    在这里插入图片描述

  1. 登录mysql并修改密码
  • 配置环境变量

    echo "export PATH=$PATH:/usr/local/Mysql/bin" >> /etc/profile # 写入环境变量(永久生效)
    source /etc/profile # 刷新环境变量(立即生效)
    
  • 登录mysql

mysql -u root -p # 用临时密码登录
  • 修改root密码
-- 修改密码(替换成你的新密码,比如 123456,生产环境用复杂密码)
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
-- 刷新权限
FLUSH PRIVILEGES;
-- 退出 MySQL
exit;

安装完成

在这里插入图片描述

经验教训

  1. 需要安装boost才能进行mysql的安装,未安装boost会导致cmake失败。

二.yum安装

  1. 下载官方的yum源
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
  1. 安装下载的仓库配置包
sudo rpm -ivh mysql80-community-release-el7-3.noarch.rpm
  1. 安装Mysql
sudo yum install mysql-community-server -y
sudo yum install mysql-community-server --nogpgcheck -y #提示公钥出错可用这个
  1. 启动Mysql服务,自启mysql和查看服务状态
systemctl start mysqld #启动
systemctl enable mysqld #自启
systemctl status mysqld #查看状态

在这里插入图片描述

  1. 查看临时密码

    sudo grep 'temporary password' /var/log/mysqld.log
    

在这里插入图片描述
root@localhost: XXXXX

  1. 运行安全脚本进行初始配置
mysql_secure_installation

这步会提示临时密码过期,请输入新密码。(密码要数字,大小写字母,特殊字符)

在这里插入图片描述

是否更改root密码

在这里插入图片描述

是否根据提供的密码继续

在这里插入图片描述

是否移除anonymous用户

在这里插入图片描述

是否禁用root远程登录

在这里插入图片描述

是否移除测试数据库

在这里插入图片描述

是否重新刷新权限表

在这里插入图片描述

7.弄完后可以使用命令登录Mysql

Mysql -uroot -p

在这里插入图片描述

登录成功。

经验教训

1.当安装提示公钥有问题时可以使用免公钥的命令进行安装。


总结

Mysql的安装最主要的是mysql的配置部分,Mysql的配置部分需要准确无误,不然Mysql会无法正常工作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值