当前位置: 首页 > ops >正文

如何在Redhat Linux7.9下安装配置MySQL

      最近在做后端开发过程中,经常需要访问数据库,之前都在在windows环境下大家mysql环境,相对容易一些,linux环境下的mysql数据库配置有些复杂,我参考了一大堆资料,有些细致,有些略,为了后续自己在其他新服务器下的快速配置,也为给大家一个完整的配置过程,特意编写了如何在Redhat Linux7.9环境下安装配置Mysql,包括如何下载,建立用户,设置权限,初始化,配置,服务注册启动和远程用户访问权限设置等等。具体记录如下。

一.下载mysql安装包

本次主要下载Linux Generic glibc2.12 x86,64bit安装包,大家可以根据自己的操作系统情况下载相应的版本,目前看该配置方法对应mysql8系列应该都支持。具体如下。
官网 https://downloads.mysql.com/archives/community/
下载 mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
解压:tar xvJf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz

目录改名(解决路径名太长问题):mv mysql-8.0.26-linux-glibc2.12-x86_64 mysql8
移动文件夹:mv mysql8 /usr/local/
进入mysql8目录,新增目录:mkdir data

二.创建mysql组和用户

groupadd mysql #增加用户组
useradd -r -g mysql mysql #增加用户
passwd mysql #修改mysql用户密码,密码修改为mysql123456,后续可以用该用户登录OS

三.配置目录权限

#先移动到当前目录下,一定要做,否则后面第四步mysql的启动会出错,没有文件写权限。
chown -R mysql.mysql /usr/local/mysql8/
或者
chown -R mysql:mysql ./
或者
chmod -R 755 /usr/local/mysql8/data

四.Mysql初始化,注意是否存在相关的目录,如果不存在,要先新建data目录

./bin/mysqld --user=mysql --basedir=/usr/local/mysql8/ --datadir=/usr/local/mysql8/data/ --lower-case-table-names=1 --initialize 
说明:–lower-case-table-names=1 即设置不区分表明大小写
输出默认的临时密码:

S_K<Ee<gfdkgNf  #系统默认给的密码,后面修改为root1980099
五.Mysql配置

按照自己的文件路径配置,主要是mysqld的配置,关于其他配置,可自行搜索,若有【mysql-safe】的配置,可以先注释掉。
vi /etc/my.cnf
初始内容如下
样例:

[mysqld]
basedir = /usr/local/mysql8
datadir=/usr/local/mysql8/data
# socket=/var/lib/mysql/mysql.sock
socket = /tmp/mysql.sock
log-error = /usr/local/mysql8/data/error.log
pid-file = /usr/local/mysql8/data/mysql.pid
tmpdir = /tmp
port = 3306
character-set-server=UTF8MB4# 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# 解决“java.sql.SQLException: Expression #1 of ORDER BY clause is not in SELECT list,references column”
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
lower_case_table_names=1
六.建立MySQL服务(注意当前路径应该在mysql8,即support-files的根目录)

1.添加Mysql到系统服务
cp -a ./support-files/mysql.server /etc/init.d/mysql # 若mysqld,以下mysql相应的修改mysqld,如下所示

chmod +x /etc/init.d/mysql #授权服务
chkconfig --add mysql #添加服务

2.检查服务是否生效
chkconfig --list mysql
3.启动Mysql服务
service mysql start
service mysql status
停止:service mysql stop
重启:service mysql restart
4.登陆Mysql
注意:登录后记得先修改密码,默认密码是前面第四步生成的临时密码。
mysql -uroot -p
修改密码,命令如下

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root1980099';

用新密码重新登陆:mysql -uroot -p
show databases;

七.创建远程用户,可以不是root,比如test用户,用test替换下面的root

查看mysql用户

select host, user, authentication_string, plugin from user;

创建远程用户:

CREATE USER 'root'@'%' IDENTIFIED BY 'root20250011';

修改加密规则并更新密码:

# 修改加密规则并更新密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root20250011';

#GRANT ALL ON 表示所有权限,% 表示通配所有 host,可以访问远程。为上面创建的远程root用户设置权限。

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

刷新权限:

flush privileges;

重新启动mysql,详见第六步的服务重启命令。

八、本地和远程连接测试

经过前面七步的设置,完成了本地root用户和远程root用户的设置,具体用户信息如下。
远程用户:远程连接正常,用户为root,密码为root20250011,因为远程连接的是%或者指定ip
本地用户:本地连接正常,用户为root,密码为root1980099,因为本地连接是%localhost
连接测试情况如下图。
1.本地连接-mysql命令行工具

2.远程连接-dbeaver工具

http://www.xdnf.cn/news/12820.html

相关文章:

  • 历史数据分析——辽港股份
  • Java高频面试之并发编程-24
  • Semantic-SAM: Segment and Recognize Anything at Any Granularity
  • 大模型如何选型?嵌入模型如何选型?
  • 【PhysUnits】17.2 配套变量结构体 Var(variable.rs)
  • 一套个人知识储备库构建方案
  • UE的AI行为树Selector和Sequence如何理解
  • 数据结构——D/串
  • comfyui 工作流中 图生视频 如何增加视频的长度到5秒
  • C++ - string 的使用 #auto #范围for #访问及遍历操作 #容量操作 #修改操作 #其他操作 #非成员函数
  • Vivado软件开发流程操作详解
  • 五年级数学知识边界总结思考-下册
  • 【会员专享数据】1980—2022年中国逐日月年潜在蒸散发栅格数据
  • JavaScript 数组学习总结
  • Spyglass:跨时钟域同步(时钟门控单元)
  • eBPF系列--BCC中提供的BPF maps高级抽象如何映射到内核的BPF maps?
  • 【Ragflow】27.RagflowPlus(v0.4.1):小版本迭代,问题修复与功能优化
  • 比较一组结构之间的变换
  • Python爬虫实战:研究PySocks库相关技术
  • Halcon案例(三):C#联合Halcon识别排线
  • 【整数逐位除法求余补〇完整版】2022-4-11
  • 1 Studying《Linux Media Documentation》
  • 深度学习模块缝合
  • 【redis】线程IO模型
  • 第16届蓝桥杯青少Stema11月 Scratch编程——初/中级组真题——行走的图形
  • GD图像处理与SESSiON
  • MySQL(63)如何进行数据库读写分离?
  • 进程与线程的区别
  • SQL Server从入门到项目实践(超值版)读书笔记 16
  • Linux多线程-进阶