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’是你想使用的验证密码。