linux源码安装mysql8.0的小白教程

1.下载8.x版本的mysql

MySQL :: Download MySQL Community Server (Archived Versions)

2.安装linux

我安装的是Rocky Linux8.6

3.设置ip地址,方便远程连接

使用nmcli或者nmtui设置或修改ip地址

4.使用远程连接工具MobaXterm操作:

(1)将mysql8版本的压缩包上传到mybaxterm

(2)解压缩

tar -Jxvf mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz

(3)移动压缩后的目录到/usr/local/,并改名为mysql

注意:修改权限mysql:mysql

mv mysql-8.0.25-linux-glibc2.12-x86_64 /usr/local/mysql
useradd mysql -s /sbin/nologin
chown -R mysql.mysql /usr/local/mysql

(4)cd /usr/local/mysql

创建配置文件/etc/my.cnf

[root@localhost bin]# vim /etc/my.cnf
[mysqld]
log-error=/usr/local/mysql/log/mysql.err
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
character-set-server=UTF8MB4

创建必要的文件目录:

mkdir /usr/local/mysql/{binlog,data,log,tmpdir,conf} -p

利用配置文件初始化mysql

[root@localhost mysql]# bin/mysqld \
--defaults-file=/etc/my.cnf \
--user=mysql \
--initialize

初始化数据库,它会给出一个临时密码,记住它,后面要用,如果找不到了,需要走忘记密码流程

(5)启动mysql

[root@localhost mysql]# support-files/mysql.server start

如果是开启中的,启动需要重启mysql

[root@localhost mysql]# support-files/mysql.server restart

(6)处理报错

当执行bin/mysql -u root -p命令时,出现以下报错:

mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory


解决办法:

[root@localhost mysql]# find  / -name 'libtinfo.*'
/usr/lib64/libtinfo.so.6
/usr/lib64/libtinfo.so.6.1[root@localhost mysql]# ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5

(7)如果想要service控制它的开启和关闭

[root@localhost mysql]# ls
bin  data  docs  include  lib  LICENSE  man  README  share  support-files
[root@localhost mysql]# cp -a ./support-files/mysql.server /etc/init.d/mysql
#chkconfig --add mysql 这条命令的作用是将 mysql 服务添加到系统的服务管理列表中,使得系统能够通过 chkconfig 工具来管理该服务的启动级别。
[root@localhost mysql]# chkconfig --add mysql
[root@localhost mysql]# service mysql restart
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!
[root@localhost mysql]# service mysql statusSUCCESS! MySQL running (26540)
[root@localhost mysql]# ln -s /usr/local/mysql/bin/mysql /usr/bin

(8)使用临时密码登录验证mysql


[root@localhost mysql]# mysql -uroot -p"is/BIErGB051"
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.25Copyright (c) 2000, 2021, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> 

(9)修改密码

mysql> alter user root@"localhost" identified by "123456"

(10)exit退出,使用新密码登录

[root@localhost mysql]# mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.0.25 MySQL Community Server - GPLCopyright (c) 2000, 2021, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>

(11)使用systemctl控制mysql

• systemd一个更高效的系统&服务管理器

– 开机服务并行启动,各系统服务间的精确依赖

– 服务目录:/usr/lib/systemd/system/

– 主要管理工具:systemctl

systemd方式:

注意: 为了和yum下载的情况一致,设置文件名称为mysqld.service,使用systemctl命令可以省略".service后缀"

systemctl start mysqld #启动mysqld

systemctl stop mysqld #停止mysqld

systemd管理方式思路:

用户--systemctl--》systemd--服务启动配置文件--》mysqld启动

•管理员服务文件默认路径

–/usr/lib/systemd/system/

•重新加载服务启动配置文件(每次修改mysqld.service文件都要执行这个命令一次)

systemctl daemon-reload

再启动mysqld:

systemctl start mysqld

[root@localhost system]# cd   /usr/lib/systemd/system   
[root@localhost system]# vim mysqld.service
[Unit]
Description=MySQL Server
After=network.target[Service]
Type=forkingPIDFile=/usr/local/mysql/data/mysql1.pid
ExecStart=/usr/local/mysql/support-files/mysql.server start
ExecStop=/usr/local/mysql/support-files/mysql.server stop[Install]
WantedBy=multi-user.target[root@localhost system]# systemctl daemon-reload[root@localhost system]# systemctl stop mysqld
[root@localhost system]# systemctl status mysqld
[root@localhost system]# systemctl start mysqld

5.使用shell脚本安装,mysql并启动:

为了更好的效果,新建一个Linux虚拟机处理:

(1) 设置hostname,方便查看pid文件(因为pid的文件名称与hostname有关):

就设置为mysql1

(2) 准备/etc/my.cnf文件(为了方便使用之前的同名文件也可)

[mysqld]
log-error=/usr/local/mysql/log/mysql.err
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
character-set-server=UTF8MB4

(3)shell脚本文件install_mysql.sh

#!/bin/bashif [ -d "/usr/local/mysql" ];thenecho "/usr/local/mysql文件夹已经存在,请确认是否安装了mysql"exit
fi
echo "正在解压压缩包"
tar -Jxf mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz
mv mysql-8.0.25-linux-glibc2.12-x86_64 /usr/local/mysql#创建一些必要的文件夹
mkdir /usr/local/mysql/{binlog,data,log,tmpdir,conf} -p#检查mysql进程
mysql_pid=`ps -ef | grep mysqld | wc -l`
if [ $mysql_pid -eq 1 ];thenecho "mysql进程没有运行"
elseecho "有mysql进程运行,请检查"
fi#检查mysql用户
mysql_user=`cat /etc/passwd | grep -w mysql | wc -l`
if [ $mysql_user -eq 1 ];thenecho "mysql用户已经存在"
elseecho "mysql用户不存在,开始添加mysql用户"useradd mysql -s /sbin/nologinecho "添加mysql用户成功"
fi#处理libtinfo.so.5报错
ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5#修改目录权限
chown -R mysql.mysql /usr/local/mysql#增加配置文件
if [ -f "/etc/my.cnf" ];thenecho "/etc/my.cnf文件存在"
elseecho "/etc/my.cnf文件不存在"exit
fi#初始化
echo "开始初始化"
/usr/local/mysql/bin/mysqld \
--defaults-file=/etc/my.cnf \
--user=mysql \
--initialize
#判断初始化是否成功
mysql_init=`cat /usr/local/mysql/log/mysql.err | grep -i "root@localhost:" | wc -l`
if [ $mysql_init -eq 1 ];thenecho "mysql初始化成功"
elseecho "mysql初始化失败"exit
fi#获取临时密码
temp_pwd=$(grep 'temporary password' /usr/local/mysql/log/mysql.err)
pwd=${temp_pwd##* }
echo "临时密码是: ${pwd}"#配置启动脚本
if [ ! -f "/etc/init.d/mysql.server" ];thencp /usr/local/mysql/support-files/mysql.server /etc/init.d/ -rfchmod 700 /etc/init.d/mysql.server
fi#启动mysql
/etc/init.d/mysql.server start#增加家环境变量
mysql_path=`grep 'export PATH=$PATH:/usr/local/mysql/bin' /etc/profile | wc -l`
if [ $mysql_path -eq 0 ];thenecho "export PATH=\$PATH:/usr/local/mysql/bin" >> /etc/profilesource /etc/profile
fi#通过临时密码登录mysql,并修改密码
mysql -uroot -p${pwd} --connect-expired-password -e 'alter user root@"localhost" identified by "123456"'
echo "mysql8.0.25安装完成!"

(4)给脚本添加执行权限

chomod +x install_mysql.sh

(5)执行脚本

./install_mysql.sh

注意:如果要使用service命令处理mysql,需要再将/etc/init.d/mysql.server改为/etc/init.d/mysql,如下图所示,也可以直接到脚本文件相应的位置修改代码!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/870853.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一图看懂 | 蓝卓油气行业解决方案

我国是全球最大的能源消费国,保障国家能源安全是我国能源发展的首要任务,油气作为我国能源体系的重要组成部分,是支撑我国工业和经济社会发展的基础和“压舱石,也是必须筑牢的能源安全底线。 蓝卓根据油气田行业发展趋势&#xf…

前端实现一键复制功能

1、下载插件 npm i vue-clipboard32.0.0 2、在需要复制的文件中引入插件并使用&#xff1a; JS: import useClipboard from "vue-clipboard3"; const { toClipboard } useClipboard(); HTML: <el-tooltip content"复制内容" placement"top&…

自然语言处理基本概念

自然语言处理基本概念 所有学习循环神经网络的人都是看这一篇博客长大的&#xff1a; https://colah.github.io/posts/2015-08-Understanding-LSTMs/ import jieba import torch from torch import nns1 "我吃饭了&#xff01;" s2 "今天天气很好&#xff01…

电脑录屏软件哪个效果最好 怎么一边录屏一边直播 电脑录屏软件好用免费推荐

随着科技的发展&#xff0c;电脑的更新迭代也越来越快&#xff0c;各项功能的进步与完善使得人们的工作和生活越来越离不开电脑&#xff0c;其中录屏功能就很好的体现了网络的便利&#xff0c;人们可以将在电脑画面的变化通过录屏功能记录下来&#xff0c;以便后续学习和回顾。…

python-小理与他的画(赛氪OJ)

[题目描述] 小理是个画家&#xff0c;他希望有一天他的画能让心仪的她看到。 只是后来她有了他&#xff0c;他却只有他的画&#xff0c;他望着他的画&#xff0c;默默的发呆。 可惜做题的你&#xff0c;画不出他画的她&#xff0c;所以&#xff0c;我们只好画点简单的画&#x…

centos9+mysql8.0下mycat1.6部署

#创作灵感# 整理一下mysql代理技术&#xff0c;这个当时是和mysql集群部署一个项目的&#xff0c;一并整理出来供参考。 1、环境准备 此处使用的为M-M-SS双主双从结构集群&#xff0c;集群部署方法放在我的上一篇文章中 防火墙可以使用firewall-cmd放行&#xff0c;演示环境…

民航飞机维修工卡、放行单推广使用电子签章,每天可省约3万张纸

据某民航公司对外公布数据显示&#xff0c;通过在飞机航线维修工作中应用电子签章&#xff0c;以日均1000个航班计算&#xff0c;每天可节省约3万张纸、每年可节约1200多万元的费用成本。 小小一枚印章的转变&#xff0c;电子签章是如何做到的&#xff1f; 据了解&#xff0c;…

PowerCreatorCMS UploadResourcePic 任意文件上传漏洞复现

0x01 产品简介 PowerCreator CMS是翰博尔信息技术有限公司(简称翰博尔PowerCreator)推出的一款教育资源管理平台,专注于教育领域的信息化解决方案。PowerCreator CMS是集成了软件平台和硬件设备、多系统高度融合的教育资源管理平台。它旨在通过技术手段提升教育资源的管理、…

jenkins打包java项目报错Error: Unable to access jarfile tlm-admin.jar

jenkins打包boot项目 自动重启脚本失败 查看了一下项目日志报错&#xff1a; Error: Unable to access jarfile tlm-admin.jar我检查了一下这个配置&#xff0c;感觉没有问题&#xff0c;包可以正常打&#xff0c; cd 到项目目录下面&#xff0c;手动执行这个sh脚本也是能正常…

基于java+springboot+vue实现的作业管理系统(文末源码+Lw)110

基于SpringBootVue的实现的作业管理系统&#xff08;源码数据库万字Lun文流程图ER图结构图演示视频软件包&#xff09; 功能描述&#xff1a; 作业管理系统有管理员&#xff0c;教师&#xff0c;学生三个角色。教师和学生都可以进行注册然后再登录。学生可以修改自己的密码&…

总结之企业微信(一)——创建外部群二维码,用户扫码入群

创建外部群 企微接口中没有直接通过服务端API接口创建外部群 可以通过jssdk创建外部群&#xff1a;引用jssdk调用会话接口wx.openEnterpriseChat https://work.weixin.qq.com/api/doc/90000/90136/90511 创建外部群二维码 需要通过企业微信的应用&#xff0c;并且配置客户联…

直播麦克风哪个品牌音质最好,领夹麦克风品牌排行榜前十名推荐

​在这个快节奏的时代&#xff0c;无论是专业播客、商务会议、在线教学还是日常通话&#xff0c;清晰的声音传递已成为沟通的关键。传统的有线麦克风虽好&#xff0c;但在移动性和灵活性上稍显不足。而无线领夹麦克风&#xff0c;以其小巧便携、高保真音质和卓越的抗干扰能力&a…

有一个Time类,包含数据成员minute(分)和sec(秒),模拟秒表,每次走1秒,满60秒进1分钟,此时秒又从0起算,要求输出分和秒的值

单目运算符只有一个操作数&#xff0c;如!a,-b,&c,*p&#xff0c;还有最常用的i和--i等。重载单目运算符的方法与重载双目运算符的方法是类似的。但由于单目运算符只有一个操作数&#xff0c;因此运算符重载函数只有一个参数&#xff0c;如果运算符重载函数作为成员函数&am…

袋鼠云产品支持全栈信创适配,更加安全可靠、自主可控

随着国产替换的深化&#xff0c;企业对信创产品的需求逐渐融合更丰富的业务诉求以及未来数智规划&#xff0c;正从“同类替换”转向“迭代升级”。 当前&#xff0c;袋鼠云的产品与芯片、服务器、数据库、操作系统、中间件、云平台等主流信创厂商全面兼容适配&#xff0c;为企…

体育资讯小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;球员管理&#xff0c;教练管理&#xff0c;赛事日程管理&#xff0c;赛事类型管理&#xff0c;联赛积分榜管理 开发系统&#xff1a;Windows 架构模式&#xff1a;SSM JDK版本&a…

pico+unity3d开启彩色透视

1、点击游戏对象、点击XR、点击添加XR Origin&#xff0c;并把自带的摄像对象删除 2、添加脚本 using System.Collections; using System.Collections.Generic; using UnityEngine; using Unity.XR.PXR;//引入xr对象 public class toushi : MonoBehaviour {// Start is called…

监控房价和挂牌数量的工具-以成都房价为例

介绍 本文将介绍如何通过zervice提供的工具来监控成都房价&#xff08;其他城市或者地区类似&#xff09;&#xff0c;包括价格和挂牌数量。可以对购房一族提供数据参考。 数据来源 数据来源方面&#xff0c;本文以成都为例&#xff0c;我们会使用链家数据-> 选择地图找房…

【解密】记一次辽宁省某综合实践教学管理平台加解密算法分析

最近接到需求&#xff0c;于是准备弄一下&#xff0c;发现对方整个流程是&#xff1a;先加密在请求&#xff0c;请求得到的数据再进行拼接加密&#xff0c;不过花了2个小时还是完成了解密 哈哈 找到请求发现请求数据加密 在启动器里面发现登录方法 打印出各个关键变量数据 …

QT之嵌入外部第三方软件到本窗体中

一、前言 使用QT开发&#xff0c;有时需要调用一些外部程序&#xff0c;但是单独打开一个外部窗口有的场合很不合适&#xff0c;最好是嵌入到开发的QT程序界面中。还有就是自己开发的n个程序&#xff0c;一个主程序托n个子程序&#xff0c;为了方便管理将各个程序独立&#xf…

【TS】typescript 获取函数入参类型、返回值类型、promise返回值类型

文章目录 1. 准备工作2. 获取函数入参的类型3. 获取函数返回值类型4. 获取promise返回值类型 1. 准备工作 创建 utils.ts interface User {id: number;name: string;age: number; } interface Params {method: string;url: string; }function getUserList(params: Params,other…