【mysql8.0.19 安装bug记录(一步一bug)】阿里云安装配置一次mysql,快废了....

安装参考链接
具体几天我不记得了,虽然没有一周,但也差不多。
反反复复各种搜bug贴,重来,再重来,再重来。。。。。。

总算,在各种尝试之后,我 成!功!了!

首先呢,mysql安装有几种方式,有用安装包的,yum下载安装,还有用docker等等一些方法;其中,机器能联网的,后两种比较简单
那,我选择的是第一种,我的考虑是
我们公司用的比较多的是第一种,但我是小白嘛,也不会让我安装配置,我就想学下;其次呢,听说第一种在企业用的也挺多的,所以,就用第一种喽;

下次可以试试使用后两种安装,毕竟有阿里云给我造嘿嘿嘿,不怕麻烦

废话不多说,走着

一、下载安装包,上传到服务器

MySql官网安装包,我安装的是8.0.19版的

根据自己的服务器类型进行选择

我下载的是最后一个,解压后有以下4个文件,我只用到了第二个。我看别人的教程说只要用第二个,以.xz结尾的。所以,可以直接下载👆第二个261M的那个

我下了最后一个,也直接用了
在这里插入图片描述

不要傻傻注册哦

使用远程连接工具将安装包上传到服务器,存储的文件夹希望你们好好规整下,初次上手,不能乱,必要时可以拿小本本记下来

我的所有安装包放在 /export/sort

加压包在 /export/install

复制mysql解压后的文件到/usr/local,并重命名,所以真正的安装目录其实是/usr/local

二、创建用户和用户组

这一部包含创建用户组
创建mysql用户
创建mysql数据目录/data/mysql(自己存放的位置目录)
赋予mysql该数据目录的权限
我进行这一步的时候,一头雾水,不知道为什么要创建用户组和mysql用户,不能直接用root操作吗

基于安全
让MySQL运行的时候使用一个独立的账号
如果MySQL被黑了那么开始拿到的权限就是那个创建的账号而不是默认的root
我们在编译安装的时候创建一个mysql组和一个mysql用户,并把datadir和安装目录属主改为mysql
在MySQL启动的时候,单进程mysqld,该进程的属主就是mysql
这样就保证了mysql服务的独立性,即使mysql服务被黑掉,得到了mysql用户权限,也不会影响整个系统的安全

三、编辑mysql启动文件-/etc/my.cnf

请完全按照格式,除了自己的安装目录及数据目录,其他的不要乱改乱换位置!!!

四、初始化mysql

我初始化显示成功了,也有密码;但在/data/mysql下找不到mysql.log日志文件;后来,我重新初始化了
这里说下重新初始化,因为我操作了很多次,找不到问题就重新初始化,机智如我哈哈哈

# 1.清空数据目录(就是上面我授权的数据目录)
rm -rf /data/mysql 
# 2.初始化数据库(这里的用户,安装目录,数据目录都要是自己建的)
/usr/local/mysql/bin/mysqld    --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/
# 3.重新启动
/etc/init.d/mysql start

最后重启,如果mysql/mysqld命令找不到,报错bash: mysql:command not found
使用👇方法
cp /usr/local/mysql/support-files/mysql-server /etc/init.d/mysql
cp /usr/local/mysql/support-files/mysql-server /etc/init.d/mysqld
前面的/usr/local/mysql 对应自己的mysql安装目录
这样mysql / mysqld都可以使用了

五、登录并修改密码

使用mysql -uRoot -p输入密码后报错

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

这里的mysql.sock是我在my.cnf配置文件中配置的

whereis命令找不到,find \ -name mysql.sock 可以找到

乱七八糟试了很多方法:什么移动my.cnf中socket的位置,或者自己在这个目录下新建一个mysql.sock,建立软连接等等

都!不!行!

因为/tmp/mysql.sock是mysql初始化时自己生成的,后来文件被我改乱了,只能重新初始化

后来使用下面的方法,立竿见影

首先看mysql是否启动/etc/init.d/mysqld status,没启动则重启
启动了就继续下面的步骤

# 1.找到mysql.sock的位置。我找到了两个一个是my.cnf中配置的地址,还有一个在/tmp/mysql.sock
find / -name mysql.sock
# 2.一个个验证;就是用不同的文件尝试启动mysql
mysql -u root -p -S /var/lib/mysql/mysql.sock

注意,这里使用findwhere 命令找到的结果有可能不一样,where找不到,用find命令试试

最后使用- S /tmp/mysql.sock,启动成功

再把my.cnf配置文件里的socket=/var/lib/mysql/mysql.sock这个换成/tmp/mysql.sock

这个写的比较详细,提供了其他解决方案

对了,再次强调!!!my.cnf文件中除了mysql安装目录等按照本机地址配置,其他的不要乱改(如[client],[mysqld]等等),真的很容易出错

最后,我遇到的一些较为“个性化”的bug

  1. 报错-bash ./mysqld No such file or directory
    答:初始化需要进入mysql安装目录的bin目录下!!!
  2. 尝试重新初始化报错 initialize specified but the data directory has files in it. Aborting
    答:重新初始化要按照我上面的步骤,相关目录删干净
  3. Starting MySQL... ERROR! The server quit without updating PID file
  4. 没有按照my.cnf中配置的那样生成mysql.log日志文件。初始化明明已经成功,密码也生成了,我居然找不到这个日志文件!查找的目录没有错哦,就是我的数据文件/data/mysql
  5. 还有这个bug unknown variable server-id=3306等一系列的unknown variable。。。
    ps -ef | grep mysql 能查看mysql在运行,但是端口居然不是3306

一般出现上面最后3种情况,我的解决方案是

bug记录的差不多了,可能没有记全
希望你们马到成功!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值