centOS8配置mysql8的坑

centOS8配置mysql8的坑

自己安装过程总结 可能与其他人情况不一致 欢迎补充
准备:检查mysql用户组和用户是否存在,如果没有,则创建

[root@localhost /] cat /etc/group | grep mysql
[root@localhost /] cat /etc/passwd |grep mysql
[root@localhost /] groupadd mysql
[root@localhost /] useradd -r -g mysql mysql

1 首先去oracle下载一个linux版本的mysql 官网下载很慢(可以把他的链接拼接一下放到迅雷去下载 10M/s还是很快的
我这边是linux mysql8版本的64位的(建议不要下高版本 因为有很多坑跟老版本不一样)
https://dev.mysql.com/downloads/mysql/
下载完之后放入/usr/local/ 目录下 这边下载一个FTP传输工具更方便 然后把下载好的文件上传
(1)如果你是tar.gz的后缀 进行解压

tar xzvf mysql-8.0.18-linux-glibc2.12-x86_64.tar.gz

(2)如果你是xz文件
首先打包成tar文件

xz -d demo.tar.xz

紧接着用

tar -xvf demo.tar

进行解压。

2 解压会生成一个文件夹 改名为 mysql
3 在/usr/local/mysql目录下创建data目录

[root@localhost /] mkdir /usr/local/mysql/data

4 更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限

[root@localhost /] chown -R mysql:mysql /usr/local/mysql
[root@localhost /] chmod -R 755 /usr/local/mysql

5 编译安装并初始化mysql,务必记住初始化输出日志末尾的密码(数据库管理员临时密码)

[root@localhost /] cd /usr/local/mysql/bin
[root@localhost bin] ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

在这里插入图片描述
记录日志最末尾位置root@localhost:后的字符串,此字符串为mysql管理员临时登录密码。
6 启动mysql服务器

[root@localhost /] /usr/local/mysql/support-files/mysql.server start

网上解决:
这边可能会报错

Starting MySQL... ERROR! The server quit without updating PID file

这边网上有说杀进程
查看是否存在mysql和mysqld的服务,如果存在,则结束进程,再重新执行启动命令

#查询服务
ps -ef|grep mysql
ps -ef|grep mysqld

#结束进程
kill -9 PID

#启动服务
 /usr/local/mysql/support-files/mysql.server start

在这里插入图片描述
我解决方式:在root下

[root@localhost /]cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

7 添加软连接,并重启mysql服务

[root@localhost /]  ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql 
[root@localhost /]  ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
[root@localhost /]  service mysql restart

8 启动成功后,连接数据库 并修改root的密码 这是新版本的

[root@localhost /] mysql -u root -p
Enter password:
mysql>alter user 'root'@'localhost' identified by  'yourpass';

老版本的修改密码

mysql>set password for root@localhost = password('yourpass');

9 开放远程连接(网上方式)

mysql>use mysql;
msyql>update user set user.Host='%' where user.User='root';
mysql>flush privileges;

在这里插入图片描述

到这里 我们mysql是安装了 也可以在linux访问了

但是用远程的客户端访问连接不上
解决方式:
1.因为我是买的阿里云的服务器 首先先去阿里云管理中心处添加一个3306端口的tcp

点击云服务器ESC->网络和安全->安全组;进入点击最后的 配置规则

发现只默认开放了三个规则:
在这里插入图片描述
选择22端口的克隆:
在这里插入图片描述
选mysql默认是3306的端口号 确定

2.依然不行 在root下执行以下命令

1.不管防火墙关没关,都是用systemctl stop firewalld 关闭防火墙。
2.然后使用yum install iptables-services 安装或者更新服务
3.然后使用systemctl enable iptables 启动iptables
4.最后使用systemctl start iptables 打开iptables
5.输入命令vim /etc/sysconfig/iptables
6.既可以修改iptables文件
配置防火墙,开启3306端口,在此文件上添加一个如下命令

-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT

查看防火墙状态 看看有没有3306

iptables -L -n -v

在这里插入图片描述

开启3306

iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

//查看host的状态

iptables -nL --line-number

在这里插入图片描述

如果此时都配置好了 本地客户端访问 linux的mysql
出现

 client does not support authentication protocol requested by server;consider upgrading mysql client

解决:在root下

命令窗口:登录mysql:

mysql -u root -p 

登录后执行:

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的root账号密码';

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的root账号密码';

SELECT plugin FROM mysql.user WHERE User = 'root';

不出意外 应该是可以了
补充几个命令
mysql退出三种方法:

mysql > exit;
mysql > quit;
mysql > \q;

查看mysql的文件都处在哪些文件夹下

find / -name mysql

1、检查mysql进程是否启动

ps -ef|grep -i mysql

2、查看端口是否监听

netstat -ntlp

//重新启动mysql

service mysqld restart

参考网站:
https://www.jianshu.com/p/276d59cbc529
https://www.jb51.net/article/160736.htm
https://blog.csdn.net/L15207491048/article/details/85279866

---------------此文章只是自己安装做的总结 有错的地方还希望各位大佬指正 方便新人更快的学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值