2024-01-04 17:36阅读: 511评论: 0推荐: 0

centos7 安装 mysql5.7

安装环境

操作系统:Centos7.9
安装用户:root
数据库版本:5.7.44

安装前检查

历史安装检查

检查是否安装过,有则卸载

# 检查是否安装过mysql
rpm -qa | grep -i mysql
# 检查是否安装过mariadb
rpm -qa | grep -i mariadb
# 使用 yum 卸载
yum remove -y mariadb-libs-5.5.64-1.el7.x86_64
# 使用 rpm 卸载
rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64

历史遗留配置检查

需清理数据目录及文件如下:

  • 安装目录:可通过 whereis mysql 获得;
  • 数据目录:可选,如果数据目录和安装目录是分开的,就需要单独清理;
  • 配置文件:默认是 /etc/my.cnf;
  • 日志文件:一般是 /var/log 目录下与mysql相关的日志目录和文件,例如 mysqld.log,如果有另外指定的日志目录,也要清理掉;
  • 服务启动脚本:主要有以下几个
    • /etc/init.d/mysql
    • /etc/systemd/system/mysql.service
    • /usr/lib/systemd/system/mysql.service
  • 其他临时文件:如 /tmp 目录下和mysql相关的临时文件。

mysql用户组检查(非离线安装可跳过)

如果是离线安装mysql,需要手动创建mysql组和用户,因为mysql服务默认由mysql用户运行。

id mysql # 检查是否存在mysql用户,不存在则创建
groupadd mysql # 创建mysql用户组
useradd -r -g mysql mysql -s /sbin/nologin # 创建mysql用户,指定属组为mysql,并禁止其登录

开始安装

在线安装

1 安装mysql安装源

下载安装包

wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

安装MySQL源

yum -y localinstall mysql57-community-release-el7-11.noarch.rpm

2 安装mysql

yum -y install mysql-community-server --nogpgcheck

3 启动服务

启动 mysql 服务

systemctl start mysqld

设置开机启动(可选)

systemctl enable mysqld
systemctl daemon-reload

离线安装

1 下载离线安装包

先在官方网址下载离线安装包后(默认选择最新的版本,示例中最新版本为5.7.44),上传到要部署的服务器。

官方下载地址https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.44-el7-x86_64.tar.gz

image

2 上传安装包并解压

将安装包上传到要部署的服务器,然后进行解压,默认解压到 /usr/local 。

tar zxvf mysql-5.7.44-el7-x86_64.tar.gz -C /usr/local

3 配置安装目录

  • 修改默认目录名称
cd /usr/local
mv mysql-5.7.44-el7-x86_64 mysql
  • 创建配置目录(数据存储、日志、临时文件、运行文件)
mkdir -pv mysql/{data,log,tmp,run}
  • 创建日志文件(启动错误日志、默认错误日志、慢查询日志、通用查询日志)
touch log/{mysqld_safe_error.log,alert.log,slow.log,general.log}

4 创建配置文件

创建服务配置文件 /etc/my.cnf 。

touch /etc/my.cnf

配置参考。

# mysqld_safe脚本启动时读取的配置
[mysqld_safe]
# 存放 MySQL 后台程序 pid 的文件位置
pid-file=/usr/local/mysql/run/mysqld.pid
# 启动错误日志
log-error=/usr/local/mysql/log/mysqld_safe_error.log
# 本地 mysql 客户端程序的配置块
[mysql]
# 本地 mysql 客户端连接的端口
port=3306
# 本地 mysql 客户端命令行提示信息
prompt=\\u@\\d \\r:\\m:\\s>
# 本地 mysql 客户端字符集
default-character-set=utf8mb4
# 开启命令补全
no-auto-rehash

# 所有mysql客户端程序读取的配置块
[client]
# 连接端口
port=3306
# mysql的主机和客户机在同一host上的时候,使用unix domain socket做为通讯协议的载体文件
socket=/usr/local/mysql/run/mysql.sock

# mysql服务端程序mysqld、mysqld_safe和mysqld_multi的配置文件
[mysqld]
# 进程崩溃时生成core file dump文件,便于程序调试和问题排查
core-file
# 该参数指定了安装 MySQL 的安装路径(mysql安装目录),填写全路径可以解决相对路径所造成的问题。
basedir=/usr/local/mysql
# 该参数指定MySQL的数据文件的存放目录,数据库文件即我们常说的 MySQL data 文件。
datadir=/usr/local/mysql/data
# 临时目录
tmpdir=/usr/local/mysql/tmp
# 用于错误消息的区域设置。默认值是en_US。服务器将参数转换为语言名,并将其与lc_messages_dir的值结合,以生成错误消息文件的位置。
lc_messages=zh_CN
# 错误消息所在的目录。服务器使用该值和lc_messages的值来生成错误消息文件的位置。
lc_messages_dir=/usr/local/mysql/share
# 默认的错误日志目的地。如果目标是控制台,则值为stderr。否则,目标是一个文件,log_error值是文件名。
log-error=/usr/local/mysql/log/alert.log
# 慢查询日志文件名。默认值是host_name-slow.log,但可以通过slow_query_log_file选项更改初始值。
slow_query_log_file=/usr/local/mysql/log/slow.log
# 通用查询日志文件的名称。默认值是host_name.log,但初始值可以通过general_log_file选项更改。
general_log_file=/usr/local/mysql/log/general.log
# mysql的主机和客户机在同一host上的时候,使用unix domain socket做为通讯协议的载体文件
socket=/usr/local/mysql/run/mysql.sock
# 服务端字符集
character-set-server=utf8mb4
# 此变量控制写入错误日志的消息中的时间戳的时区,以及写入文件的一般查询日志和慢查询日志消息中的时间戳的时区。
log_timestamps=SYSTEM
# 操作系统中可用于mysqld的文件描述符的数量。
open_files_limit=61535
# 同时允许的最大客户端连接数。
max_connections=1000
# mysql_stmt_send_long_data() C API函数发送的一个包或任何生成/中间字符串的最大大小,或任何参数的最大大小。默认是64MB。
max_allowed_packet=256M
# 如果设置为0,表名将按指定的方式存储,并且比较区分大小写。如果设置为1,表名将以小写形式存储在磁盘上,比较不区分大小写。如果设置为2,则表名按给定值存储,但以小写进行比较。此选项也适用于数据库名称和表别名。
lower_case_table_names=1
# 慢查询日志是否开启。取值为0(或OFF)表示关闭日志,取值为1(或ON)表示打开日志。默认值取决于是否给出——slow_query_log选项。日志输出的目标由log_output系统变量控制;如果该值为NONE,则即使启用了日志,也不会写入任何日志项。
slow_query_log=1
# validate_password插件的加载方法
plugin-load-add=validate_password.so
# validate-password在服务器启动时使用该选项来控制插件的激活
validate-password=FORCE_PLUS_PERMANENT

5 初始化数据库

  • 修改安装目录归属
chown -R mysql.mysql /usr/local/mysql
  • 初始化数据库
cd /usr/local/mysql
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

【注意】 5.7.44 推荐使用 mysqld --initialize 代替 mysql_install_db 进行初始化。

  • 安装目录授权
chmod u+rwx -R /usr/local/mysql
  • 服务配置授权
# 修改配置归属
chown mysql.mysql /etc/my.cnf
# 修改配置权限
chmod 644 /etc/my.cnf

6 启动服务

使用 service 方式启动

  1. 配置开机自启
# 把启动脚本 mysql.server 放到开机初始化目录 /etc/init.d/ ,并重命名为 mysqld
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
  1. 启动mysql服务
# 启动服务
service mysqld start
# 检查服务
service mysqld status

使用 systemd 方式启动

  1. 创建启动文件
touch /etc/systemd/system/mysql.service
  1. 打开启动文件,粘贴以下内容:
[Unit]
Description=MySQL Server
Documentation=https://dev.mysql.com/doc/refman/5.7/en/

[Service]
ExecStart=/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf
User=mysql
Group=mysql
Restart=always
RestartSec=3
LimitNOFILE=infinity

[Install]
WantedBy=multi-user.target

【注意】根据mysql实际安装路径和需求,修改ExecStart行中的MySQL启动命令和参数。

  1. 重载system配置
systemctl daemon-reload
  1. 启动mysql服务
# 启动服务
systemctl start mysql
# 添加开机自启
system enable mysql
# 检查服务
systemctl status mysql

7 配置mysql环境变量

  1. 打开全局配置 /etc/profile,添加内容 export PATH=$PATH:/usr/local/mysql/bin 后保存退出,也可以直接执行下方命令进行添加。
echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
  1. 重载配置。
source /etc/profile
  1. 验证配置
mysql -V

配置数据库

1 修改root登录密码

在线安装方式
查看服务日志文件,获取初始密码。

grep 'temporary password' /var/log/mysqld.log | tail -n 1

初始密码在 root@localhost: 后面,如下示例
image

离线安装方式

grep 'temporary' /usr/local/mysql/log/alert.log

2 登录mysql

mysql -u root -p

3 修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

【注意】mysql默认要求密码需要符合其口令复杂度策略,即包含字母大小写数字特殊符号等,如果只需要设置简单的密码,可以先修改密码校验级别,再修改密码。

-- 密码验证安全级别默认为medium,改为low,即不强制校验
set global validate_password_policy=LOW;

4 设置远程访问,刷新权限

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '新密码' WITH GRANT OPTION;
FLUSH PRIVILEGES;

常见问题

提示 ERROR 1820 (HY000) 错误

该错误表明你需要在执行其他语句之前先重置你的密码,通常是发生在首次安装MySQL或者首次登录到MySQL时,MySQL要求用户在使用数据库之前更改临时密码。

本文作者:505donkey

本文链接:https://www.cnblogs.com/505donkey/p/17945759

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   505donkey  阅读(511)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起