安装Mysql(Centos7版本)
前言
本人打算学习云计算技术,打算从Mysql开始,并长期更新实操步骤。今天是进行Mysql的安装。
一.源码安装
- 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
避免使用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 用户,否则初始化会报错)
使用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 # 进入解压后的目录
-
写一个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)
- 初始化并配置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
- 启动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 级别是 "开" 就对)
- 登录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;
安装完成
经验教训
- 需要安装boost才能进行mysql的安装,未安装boost会导致cmake失败。
二.yum安装
- 下载官方的yum源
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
- 安装下载的仓库配置包
sudo rpm -ivh mysql80-community-release-el7-3.noarch.rpm
- 安装Mysql
sudo yum install mysql-community-server -y
sudo yum install mysql-community-server --nogpgcheck -y #提示公钥出错可用这个
- 启动Mysql服务,自启mysql和查看服务状态
systemctl start mysqld #启动
systemctl enable mysqld #自启
systemctl status mysqld #查看状态
-
查看临时密码
sudo grep 'temporary password' /var/log/mysqld.log
root@localhost: XXXXX
- 运行安全脚本进行初始配置
mysql_secure_installation
这步会提示临时密码过期,请输入新密码。(密码要数字,大小写字母,特殊字符)
是否更改root密码
是否根据提供的密码继续
是否移除anonymous用户
是否禁用root远程登录
是否移除测试数据库
是否重新刷新权限表
7.弄完后可以使用命令登录Mysql
Mysql -uroot -p
登录成功。
经验教训
1.当安装提示公钥有问题时可以使用免公钥的命令进行安装。
总结
Mysql的安装最主要的是mysql的配置部分,Mysql的配置部分需要准确无误,不然Mysql会无法正常工作。