Centos Mysql安装与配置指南

1.环境说明

centos 7.9
mysql 5.7.37

安装方式:源码编译安装 ,yum 方式安装固然简单,但是会将安装文件分散到不同的目录结构下,会对配置造成不便

2.环境检查

注:centos7系统自带mariadb数据库,先卸载再安装mysql,防止有冲突。 查询是否有安装的mariadb文件,执行命令,如图:

rpm -qa | grep mariadb

若存在,则执行如下命令卸载:

# 根据上述命令展示的信息替换如下的版本
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

3.资源下载

3.1进入mysql官网,寻找对应的mysql 版本,如图:

地址如下:MySQL :: Begin Your Download 右键获取下载链接

3.2 在linux 指定目录执行wget命令,将资源下载
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.37-el7-x86_64.tar.gz

4.Mysql相关配置

4.1 执行命令,解压下载的mysql 压缩包,命令如下:
tar -xvzf mysql-5.7.37-el7-x86_64.tar.gz
4.2 重命名文件夹,并移动到/usr/local 目录结构下
tar -xvzf mysql-5.7.37-el7-x86_64.tar.gz

执行后效果如图:

4.3 创建数据文件夹
# 进入mysql的安装目录
cd /usr/local/mysql
# 执行创建文件夹命令
mkdir data
4.4 创建mysql组、用户 并将mysql 目录授权
4.4.1 先检查是否有mysql用户组和mysql用户,我已添加了,请忽略
groups mysql

若没有,则执行如下命令添加

groupadd mysql
useradd-r -g mysql mysql
4.4.2 改变目录的用拥有者
cd /usr/local/mysql
chown -R mysql .
chgrp -R mysql .

5.Mysql初始化并加入开机启动

5.1 执行初始化命令,如图,红框1是初始化的命令,红框2是初始化完成后生成的默认密码(保留记住,稍后会用)
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
5.2 创建并修改系统配置文件

执行命令:

cd/usr/local/mysql/support-files
cp mysql.server /etc/init.d/mysql
#赋予mysql 可执行权限
chmod+x /etc/init.d/mysql
#添加mysql服务
chkconfig --add mysql
#查看自启动服务列表
chkconfig --list
#如果看到mysql的服务,并且3,4,5都是on的话则成功
#如果是off,则键入chkconfig --level 345 mysql on
service mysql start
# 修改打开的配置文件,将basedir 和 datadir 分别指向
/usr/local/mysql 和 /usr/local/mysql/data 目录

创建my.cnf文件,执行命令

#创建新文件
vi/etc/my.cnf
#增加如下配置
[mysqld]
server-id= 1
port= 3306

basedir=/usr/local/mysql
datadir= /usr/local/mysql/data
transaction_isolation= READ-COMMITTED
character-set-server= utf8mb4
collation-server= utf8mb4_general_ci
init_connect=‘SET NAMES utf8mb4‘
lower_case_table_names= 1
max_connections= 1000
sql_mode="STRICT_TRANS_TABLES,IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

log-output=FILE
general-log=0
general_log_file="slow.log"
slow-query-log=1
long_query_time=2.5

log_bin=ON
log_bin_trust_function_creators=1
innodb_buffer_pool_size=5120M  # 根据系统内存可用数进行配置,最大不超过可用数的80%

如图:

6. 启动mysql 并修改默认密码

6. 1 创建快捷链接指向mysql bin目录
ln -s/usr/local/mysql/bin/mysql /usr/bin
6. 2 登陆,执行如下命令,并输入5.1步骤生成的默认密码
#启动mysql
/etc/init.d/mysql start
#开始登陆
mysql-u root -p

如图表示登陆成功

6. 3 修改默认密码,并允许root 用户 远程登陆该数据库
# 修改默认密码
set password=password('zsh_9007');
# 允许远程登陆
grant all privilegeson*.*to'root'@'%'identifiedby 'zsh_9007';
flush privileges;
6. 4 远程登陆测试

使用navicat等mysql客户端连接测试,如图:

7. 使用ssl登录验证

7.1 修改配置文件
#修改/etc/my.cnf,增加如下一行
require_secure_transport = ON
7.2 生成秘钥文件,然后重启mysql
cd /usr/local/mysql/bin && ./mysql_ssl_rsa_setup --uid=mysql
/bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/localhost.localdomain.pid
7.3 创建用户,并要求ssl验证
mysql > create user 'sudouser'@'%' identified by '0000';
mysql > grant all on *.* to 'sudouser'@'%' identified by '0000' require ssl;
mysql > flush privileges;
7.4 使用ssl进行登录
mysql -u root -p --ssl-mode=require

登录后,进入mysql,查看ssl相关参数:

mysql > show variables like '%ssl%';

Navicat配置:

7.5 JDBC访问
jdbc:mysql:/localhost:3306/test?verifyServerCertificate=false&useSSL=true&characterEncoding=utf-8

8 开启 general_log

注意:开启 general log 将所有到达MySQL Server的SQL语句记录下来。 一般不会开启开功能,因为log的量会非常庞大。但个别情况下可能会临时的开一会儿general log以供排障使用。

8.1 编辑 /etc/my.cnf,增加 log-output=TABLE 、general_log=ON 两个参数,其中 log-output 可以是TABLE、FILE等,这里选择TABLE便于查询管理。
log-output=TABLE
general_log=ON
8.2 重启mysql服务

在mysql库中就能看到 general_log表,存储引擎默认是CSV。

8.3 定期清理 general_log 数据(表),这里是清理15天之前的日志
vim /general_log_fresh.sql
#脚本如下:
SETGLOBAL general_log = 'OFF';
use mysql;
RENAMETABLE mysql.general_log TO mysql.general_log_temp;
DELETEfrom mysql.general_log_temp where event_time <DATE_ADD(curdate(),INTERVAL-15DAY);
RENAMETABLE mysql.general_log_temp TO general_log;
SETGLOBAL general_log = 'ON';

每天凌晨1点执行清理

#执行
crontab -e
#设置如下内容
0 1 * * *  mysql -uroot -p'0000' --ssl_mode=require < /usr/local/general_log_fresh.sql

9 配置密码复杂度策略

修改 /etc/my.cnf,加入以下配置,然后重启mysql服务:

plugin-load=validate_password.so
validate_password_check_user_name=ON
validate_password_policy= MEDIUM
validate_password_length= 10
validate_password_mixed_case_count= 2
validate_password_number_count= 2
validate_password_special_char_count= 2

说明:

validate_password_policy:密码安全策略,默认MEDIUM策略 
策略     检查规则:
0 or LOW     Length
1 or MEDIUM     Length; numeric, lowercase/uppercase, and special characters
2 or STRONG     Length; numeric, lowercase/uppercase, and special characters; dictionary file
validate_password_dictionary_file:密码策略文件,策略为STRONG才需要
validate_password_length:密码最少长度 
validate_password_mixed_case_count:大小写字符长度,至少1个
validate_password_number_count:数字至少1个  validate_password_special_char_count:特殊字符至少1个

创建一个用户试试:

mysql>createuser'sudo2'@'%'identifiedby '0000';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql>createuser'sudo2'@'%'identifiedby '123456&^Aa';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql>createuser'sudo2'@'%'identifiedby '1234Bb&^Aa';
Query OK, 0 rows affected (0.00 sec)
mysql>flushprivileges;
Query OK, 0 rows affected (0.00 sec)

安装过程可能存在的问题:

1.初始化的密码丢失

进入mysql 安全模式,重置密码

2.mysql 初始化时创建文件失败

检查登陆用户是否对这些文件夹存在权限

3.建议的启动方式:失败自动重启服务:

/bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --datadir=/usr/local/mysql/data

  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CentOS安装和配置MySQL的步骤如下: 1. 下载MySQL安装包并解压缩。 引用提到,MySQL的数据库目录位于/var/lib/mysql,配置文件位于/usr/share/mysql,相关命令位于/usr/bin。 2. 将解压后的mysql.server文件复制到/etc/init.d/mysql,并赋予可执行权限。 引用中提到了具体的命令: ``` cd /usr/local/mysql/support-files cp mysql.server /etc/init.d/mysql chmod +x /etc/init.d/mysql ``` 3. 将MySQL添加为自启动服务,并启动MySQL服务。 使用以下命令: ``` chkconfig --add mysql service mysql start ``` 4. 修改MySQL的配置文件,将basedir和datadir分别指向安装目录和数据文件夹。 引用中提到了具体的步骤。 5. 创建MySQL的数据文件夹,并设置权限。 执行以下命令: ``` cd /usr/local/mysql mkdir data ``` 至此,您已经成功安装和配置了MySQL数据库服务器。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [CentosMySQL安装配置](https://blog.csdn.net/qq_45192943/article/details/122367620)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Centos Mysql安装与配置指南](https://blog.csdn.net/ppboyhai/article/details/128938278)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值