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没有这个文件, 我到现在还没找到原因,有知道的可以在评论区说一下
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值