CentOS8配置MySQL8.0

最近几天配置了一台阿里云服务器,系统是CentOS 8.2,数据库是MySQL8.0.21,踩了几个坑,在这里详细记录一下所有的操作

文章部分引用自:https://www.cnblogs.com/kasnti/p/11929030.html

CentOS系统版本与MySQL版本

最开始我是按照以往的安装MySQL的路子走的。


官网下载MySQL

CentOS是Red Hat下的,所以在选择MySQL版本下载的时候选择带Red HatRed Hat Enterprise Linux / Oracle Linux

MySQL选择对应的操作系统

因为系统是CentOS 8,内核是x86内核,所以OS Version选择
OS Version选择
选择RPM Bundle下载
mysql下载
因为我这里不在CentOS上做开发,只是部署服务器,所以只选择RPM Package, MySQL Server

下载完成后通过XFTP上传到服务器。


卸载mariadb

防止冲突rpm -qa | grep mariadb查看是否有mariadb

接着rpm -ev 包名卸载掉所有的mariadb

具体截图什么的网上的教程基本上都有


通过yum或者rpm安装

因为yum和rpm没有mysql的包,所以需要下载。(现在说这个是不是有点晚)

启动,然后报错,找不到表,一脸懵逼。

网上找了一下,Linux下MySQL的表名是区分大小写的,WTF?


Linux系统下MySQL表名区分大小写

查看当前是否区分大小写,linux别看了,默认区分

show variables like 'lower%'

真的挺操蛋的,网上的解决方法是

lower_case_table_names =1

但是这个办法只能在你数据库没初始化之前修改,真惊喜。试过了各种网上的删文件,全都不管用,卸载重装吧。

正确且方便的配置方法

如果你已经装了MySQL,先卸载重装

卸载MySQL

停止mysql服务

systemctl stop mysqld

查找npm下安装的所有mysql的相关文件

rpm -qa|grep mysql

使用yum卸载所有的mysql包

yum remove mysql mysql-server mysql-libs mysql-server

查看是否有没卸载的

rpm -qa|grep mysql

如果没有了,再执行下面命令查找残余目录

find -name mysql

删除残余目录,xxx是查找出来的

rm -rf xxx

再次执行,找一下有没有自己遗漏的

find -name mysql

到此MySQL卸载完成


MySQL安装

下载安装

CentOS支持dnf命令,具体自行百度

dnf install @mysql

emm,安装完成。

配置不区分大小写

先不要启动。

跳转目录/etc/my.cnf.d,这个大部分教程都是让找my.cnf,打开后发现里边有一条!includedir /etc/my.cnf.d

/etc/my.cnf.d下的mysql-server.cnf下有[mysqld]

在最下边加上

lower_case_table_names=1

保存。

启动

Linux 服务管理两种方式servicesystemctl

systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。

systemd对应的进程管理命令是systemctl

systemctl兼容service

以下可以去看CentOS 8 安装MySQL 8.0

启动并设置开机启动

systemctl enable --now mysqld

运行mysql_secure_installation脚本,该脚本执行一些与安全性相关的操作并设置MySQL根密码

mysql_secure_installation

会让你配置一些东西

按自己需要的配置就好了

步骤如下:

  1. 要求你配置VALIDATE PASSWORD component(验证密码组件): 输入y ,回车进入该配置

  2. 选择密码验证策略等级, 我这里选择0 (low),回车

  3. 输入新密码两次

  4. 确认是否继续使用提供的密码?输入y ,回车

  5. 移除匿名用户? 输入y ,回车

  6. 不允许root远程登陆? 我这里需要远程登陆,所以输入n ,回车

  7. 移除test数据库? 输入y ,回车

  8. 重新载入权限表? 输入y ,回车

配置远程登陆

如果需要设置root账户远程登陆,上一步骤中,不允许root远程登陆?这一步需要设为n。
接下来本机登录MySQL,将root用户的host字段设为’%’,意为接受root所有IP地址的登录请求:
本机登录MySQL:

mysql -uroot -p<上面步骤中设置的密码>

回车后即可登录,接下来终端变成了mysql>开头:

接着继续执行mysql语句,将将root用户的host字段设为'%'

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

设置完成后输入exit退出mysql,回到终端shell界面,接着开启系统防火墙的3306端口:

firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值