linux安装mysql8步骤(亲测可用,多次研究的方法)重新安装mysql方法(压缩包方法)

参考:linux安装mysql8步骤 - 云+社区 - 腾讯云 (tencent.com)

PS:百度上搜索的结果,Linux-mysql8安装没有小细节,漏了一些东西

1.检查是否还有之前的版本信息

要完全卸载mysql,要不然会出现一些奇奇怪怪的bug

这个是最重要的,网上的卸载方法没有完全卸载干净

查询我自己写的,https://www.cnblogs.com/yylmzxc/p/16282782.html

卸载教程

 

有2种方法,下面这个是我多次测试成功的方法

压缩包版本:

2.下载mysql压缩包

这里直接提供链接给大家:

链接:https://pan.baidu.com/s/1yBCDbDYUmQWjcM1SdS7Xng 提取码:t37m

3.上传到服务器上并解压

这里我们还是通过winscp工具上传到 /usr/local路径下,进入/usr/local路径下

cd /usr/local

并且通过下面的命令进行解压

tar -xvf mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz

解压完毕之后我们还是将解压后的文件重命名为mysql

mv mysql-8.0.21-linux-glibc2.12-x86_64 /usr/local/mysql

4.创建数据文件夹以及用户组并赋予权限

mkdir /usr/local/mysql/data
groupadd mysql
useradd -g mysql mysql
chown -R mysql.mysql /usr/local/mysql/

以上所有操作都是在/usr/local路径下执行

5. 创建mysql_install_db安装文件初始化数据库

mkdir mysql_install_db
chmod 777 ./mysql_install_db

以上操作也是在/usr/local路径下

 

!!!!给mysql权限:这个很重要,网上的方法漏了这个可能会bug

sudo chmod -R 777 mysql

接下来我们切换到/usr/local/mysql路径下

cd mysql

初始化数据库

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

同样的这里我们会看到初始密码,记下来

6.修改my.cnf配置文件

vim /etc/my.cnf

将下面的内容添加到该文件中:

!!!把文件my.conf内的内容删除换成这个

!!这个地方出错也会bug

主要记住进入vi模式或者vim模式要点击一下i

这个地方也是坑

直接复制的话这个[mysqld]没了

然后就bug

配置文件:

[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
socket = /usr/local/mysql/mysql.sock
character-set-server=utf8
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# 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


#
# include all files from the config directory
#

[client]
socket = /usr/local/mysql/mysql.sock
default-character-set=utf8



然后esc退出
wq保存
!!!!换权限
chmod 644 my.cnf
改成644
如果是777权限可能会bug


7.将mysql服务添加到系统服务之中

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

chmod +x /etc/rc.d/init.d/mysqld
    
chkconfig --add mysqld
  
chkconfig  --list mysqld

8.配置全局的环境变量

vi /etc/profile

在最下面添加这两行代码:

export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib
export PATH

使环境变量立即生效:

source /etc/profile

9.启动mysql服务并修改密码

service mysql start
mysql -uroot -p密码

通过下面这句代码就可直接修改密码,不用像之前一样那么复杂:

ALTER user 'root'@'localhost' IDENTIFIED BY '密码';

10.设置能够远程登录

use mysql;
update user set host='%' where user='root' limit 1;
flush privileges;

这样还不够,我们还需要去开启服务器的3306端口,退出mysql后,执行以下代码:

firewall-cmd --zone=public --add-port=3306/tcp --permanent;
firewall-cmd --reload;
firewall-cmd --list-ports;




然后应该可以连接了
下面这个错误应该是Navicat版本低
用Navicat15应该可以跳过这个

这样之后我们就可以去尝试通过Navicat进行连接了,但是这时候会出现 2059错误

这主要是因为 新版本的MySQL使用的是caching_sha2_password验证方式,但此时的navicat还没有支持这种验证方式。

我们只需要重新登录mysql,然后通过以下的命令即可解决:

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

flush privileges;

‘root’可以改为你自己定义的用户名,‘localhost’指的是该用户开放的IP,可以是’localhost’(仅本机访问,相当于127.0.0.1),可以是具体的’...’(具体某一IP),也可以时’%’(所有IP均可访问)。'password’是你想使用的验证密码。

 
posted @ 2022-05-17 22:49  yylmzxc  阅读(1477)  评论(0编辑  收藏  举报