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

linux Ubuntu 安装mysql-8.0.39 二进制版本

我看到网上很多都写的乱七八糟, 我自己总结了一个
首先, 去Mysql官网上下载一个mysql-8.0.39二进制版本的安装包
这个你自己去下载我这里就写一个安装过程和遇到的坑

第一步 解压mysql压缩包和创建my.cnf文件

说明:

  1. 二进制安装指定版本MySQL的时候,需要手动写配置文件到/etc目录下。
  2. 至于为什么要写在etc文件夹底下,你可以看一下这个文章https://blog.csdn.net/DataIntel_XiAn/article/details/96473095

解压命令和建立my.cnf文件

tar xvJf xxxx
touch /etc/my.cnf

my.cnf配置文件

[mysql]
default-character-set=utf8mb4
[client]
#port=3306
socket=/var/lib/mysql/mysql.sock
[mysqld]
bind-address=0.0.0.0
port=3306
server-id=3306
user=mysql
general_log = 1
general_log_file=/var/log/mysql/mysql.log
socket=/var/lib/mysql/mysql.sock
basedir=/usr/local/mysql/mysql-8.0.39
datadir=/usr/local/mysql/mysql-8.0.39/data
log-bin=/usr/local/mysql/mysql-8.0.39/data/mysql-bin
innodb_data_home_dir=/usr/local/mysql/mysql-8.0.39/data
innodb_log_group_home_dir=/usr/local/mysql/mysql-8.0.39/data/
character-set-server=utf8mb4
lower_case_table_names=1
autocommit=1
symbolic-links=0
default-authentication-plugin=mysql_native_password# Disabling symbolic-links is recommended to prevent assorted security risks
# 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
[mysqld_safe]
log-error=/usr/local/mysql/mysql-8.0.39/data/mysql.log
pid-file=/usr/local/mysql/mysql-8.0.39/data/mysql.pid
#
# include all files from the config directory

第二步 安装必要插件 建立必要文件夹和赋予权限

安装libaio1这个插件, 我在做数据库初始化的时候报错没有这个插件, 如果你们有这个插件或者做数据库初始化的时候没有报错 那就不用安装

sudo apt-get update
sudo apt-get install libaio1

这里建立的文件夹都是写在my.cnf中的路径配置,如果你们觉得这个路径不好,可以改但是记得同步修改上面my.cnf中的路径
在这里插入图片描述

建立必要文件夹和赋予权限(这里包含了必要的data文件夹)

mkdir /usr/local/mysql/mysql-8.0.39/data
chmod 777 /usr/local/mysql/mysql-8.0.39/data
mkdir /var/lib/mysql
chmod 777 /var/lib/mysql
mkdir /var/log/mysql
chmod 777 /var/log/mysql/

第三步:创建mysql用户组

groupadd mysql
useradd -g mysql mysql

第四步: 配置环境变量

我这里的路径是/usr/local/mysql/mysql-8.0.39/ 这里记得改成你们自己的

vim /etc/profile
export PATH=$PATH:/usr/local/mysql/mysql-8.0.39/bin:/usr/local/mysql/mysql-8.0.39/lib
source /etc/profile

第五步: 初始化数据库

进入到mysql中的bin目录下,执行这个命令 这里路径也要注意修改成你们自己的

./mysqld --user=mysql --basedir=/usr/local/mysql/mysql-8.0.39 --datadir=/usr/local/mysql/mysql-8.0.39/data/ --initialize

这里要记得复制一下,初始密码,待会修改密码的时候要用在这里插入图片描述

第六步: 初始化socket

如果你发现的socket=/var/lib/mysql/mysql.sock 这个目录中存在mysql.sock这个文件, 你可以跳过这一步
还是进入到mysql的bin目录中
执行mysqld

./mysqld

这里如果你们卡住了, 可以重新连接一下服务器终端就好了

第七步: 连接数据库更改密码赋予root用户远程连接权限

abc12345这个是我修改的密码

mysql -uroot -p'xxxx'
alter user 'root'@'localhost' identified by 'abc12345';
CREATE USER 'root'@'%' IDENTIFIED BY 'abc12345';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

我遇到的问题

  1. 一开始不存在my.cnf没经验,不知道要自己添加,所以有了创建my.cnf文件的步骤
  2. 一开始不了解数据库这个配置文件, my.cnf上的配置文件都是在其他博主哪里复制过来了,然后运行都有问题, 网上也是乱七八糟的。我遇到的问题是没有监听端口和ip 原因是my.cnf中没有bind-address=0.0.0.0
  3. 这个卡了我很久在做数据库初始化的时候没有生成socket,报错:“ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)”,所以就导致我执行连接数据库命令的时候报错,之后我偶然发现执行bin目录下的mysqld文件可以成功生成socket文件
    为什么会导致mysql.sock没有这个文件, 我到现在还没找到原因,有知道的可以在评论区说一下
http://www.lryc.cn/news/411704.html

相关文章:

  • ZooKeeper日志自动清理实用脚本
  • KVM+GFS分布式存储系统构建高可用
  • CIFAR-10 数据集图像分类与可视化
  • 没有了高项!!2024软考下半年软考高级哪个最容易考过?
  • 用户自定义Table API Connector(Sources Sinks)
  • 自闭症儿童能否摘帽?摘帽成功的秘诀揭秘
  • 主题巴巴WordPress主题合辑打包下载+主题巴巴SEO插件
  • git把本地文件上传远程仓库的流程
  • 基于springboot+vue+uniapp的养老院管理系统小程序
  • el-popover实现点击空白区域关闭,弹窗区域不关闭
  • Disjoint Set Union
  • 手写 Hibernate ORM 框架 05-基本效果测试
  • Unity材质球自动遍历所需贴图
  • C++那些事之结构化绑定
  • ECRS工时分析软件:工业工程精益生产的智慧引擎
  • 大语言模型的核心岗位及其要求
  • 【屏驱MCU】RT-Thread 文件系统接口解析
  • 进程管理工具top ps
  • 2年社招冲击字节,一天三面斩获offer
  • oppo,埃科光电25届秋招,快手25届技术人才专项计划等几千家企业岗位内推
  • 【Vulnhub系列】Vulnhub Lampiao-1 靶场渗透(原创)
  • MySQL:ORDER BY 排序查询
  • UML类图 详解
  • 【IEEE出版 | 高录用率 | 快速检索 | 有ISBN号!】2024年智能计算与数据挖掘国际学术会议 (ICDM 2024,9月20-22)
  • DaoCloud配置不同环境的流水线(Q)
  • 基础的Shell命令
  • 量子仿真speedUp的经验
  • 电测量数据交换DLMS∕COSEM组件第61部分:对象标识系统(OBIS)(下)
  • 【Java】重生之String类再爱我一次---练习题(012)
  • NSSCTF-GDOUCTF 2023新生赛