CentOS7 安装MySQL8.0.18 及配置表名小写等注意事项

目录

1、使用场景

2、卸载和重新安装MySQL8.x

2.1 卸载mysql8.x

2.2 安装mysql8.x

2.3、mysql8.x 开启远程连接 配置方式

2.4、CentOS 7下启动、关闭、重启、查看MySQL服务

4、总结

5、参考文章


1、使用场景

        因为最近需要再一台新的服务器上部署项目,于是本人使用了一个开源项目的自动安装MySQL的脚本。最后在导入了数据表(表名小写的),最后在启动程序时候,报错.qrtz_TRIGGERS不存在;我查看导入数据库的表名全是小写的。网上说修改更改 my.cnf文件 lower_case_table_names=1但是  启动报错 mysql8.0。本人试验过至少两次结果都是修改后无法启动MySQL啦。

        于是为了能够把相关项目能够跑起来;于是必须要设置MySQL8.X的数据库表不区分大小写。网上找到一个靠谱的文章

lower_case_table_names=1 启动报错 mysql8.0 此文章也说明了必须重新安装;在初始化时,设置 lower-case-table-names         原因:

         mysql8.0 要求我们不能在initialize之后再更改 lower_case_table_names 的值,也就是说,再通过更改 my.cnf 文件是不管用的。

2、卸载和重新安装MySQL8.x

2.1 卸载mysql8.x

  • 关闭mysql
service mysqld stop
  • 查看安装的mysql
rpm -qa|grep -i mysql

  • 卸载安装的mysql
rpm -ev mysql-community-client-8.0.18-1.el7.x86_64 --nodeps
rpm -ev mysql-community-common-8.0.18-1.el7.x86_64 --nodeps
												   
rpm -ev mysql-community-server-8.0.18-1.el7.x86_64 --nodeps
rpm -ev mysql-community-libs-8.0.18-1.el7.x86_64   --nodeps

rpm -ev mysql80-community-release-el7-3.noarch     --nodeps
  • 删除mysql相关目录
find / -name mysql

rm -rf /etc/logrotate.d/mysql
rm -rf /usr/bin/mysql
rm -rf /usr/lib64/mysql
rm -rf /var/lib/mysql
rm -rf /var/lib/mysql/mysql
  • 删除my.cnf
rm -rf /etc/my.cnf
  • 检查卸载情况
rpm -qa|grep -i mysql

显示为空,卸载完毕。

2.2 安装mysql8.x

# 下载mysql rpm
wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm

# 安装rpm
rpm -Uvh mysql80-community-release-el7-3.noarch.rpm

# yum 安装mysql服务
yum install -y mysql-community-server

#注意事项 安装完毕之后执行如下初始化语句 在初始化时,设置 lower-case-table-names

/usr/sbin/mysqld --initialize --user=mysql --lower-case-table-names=1

# 启动mysql服务
systemctl start mysqld.service

# 查看mysql服务状态
systemctl status mysqld.service

# 查看安装的mysql密码
grep 'temporary password' /var/log/mysqld.log

TEMP_PWD=$(grep 'temporary password' /var/log/mysqld.log)
PWD=${TEMP_PWD##* }
echo "${PWD}"

注意其中 语句 在初始化时,设置 lower-case-table-names

/usr/sbin/mysqld --initialize --user=mysql --lower-case-table-names=1
# 登陆
mysql -uroot -p${PWD}

# 进入到mysql命令行时,修改密码
# 修改密码
# ALTER USER 'root'@'localhost' IDENTIFIED BY 'SpringBoot@123';

2.3、mysql8.x 开启远程连接 配置方式

关键语句

root用户的host值为localhost,这代表只能本地连接,将localhost修改为%

update user set host='%' where user='root';

此文章及有价值:mysql 8.0.13开启远程连接 配置方式

2.4、CentOS 7下启动、关闭、重启、查看MySQL服务

  • 启动命令
service mysqld start
  • 关闭命令
service mysqld stop
  • 重启命令
service mysqld restart
  • 查看服务状态
service mysqld status
  • 查看MySql系统配置
cat /etc/my.cnf

此处参考文章:CentOS 7下启动、关闭、重启、查看MySQL服务

3、成果

   经过上面的卸载然后在初始化时候指定表名可以小写后;启动quazt的定时器任务一切正常。

4、总结

       此篇文章涉及的知识点众多;主要包含以下几点:

      (1)、MySQL8.x之后如果要求表名不区分大小写一定要注意必须在安装的时候指定,否则不起左右或者修改后也就启动不了数据库啦。MySQL5.7可以直接修改。

      (2)、针对数据库远程可以访问问题root%操作

      (3)、授权拒绝问题也是比较常见的问题

本文也是在实际之中遇见问题后,查阅了多方资料;抽出时间进行总结的;主要也是对自己实践的归类总结;以后遇见类似问题可以直接参考;同时也为其他朋友门遇见类似问题提供一个参考可行方案。

5、参考文章

lower_case_table_names=1 启动报错 mysql8.0

Linux(CentOS7)下安装Mysql8数据库

安装脚本参考文章

mysql 8.0.13开启远程连接 配置方式

mysql将某数据库的全部权限赋给某用户,提示1044错误Access denied(注意此文)应该N为Y

//原文
update mysql.user set grant_priv='N' where host='localhost';
//修改为
update mysql.user set grant_priv='Y' where host='localhost';

猜你喜欢

转载自blog.csdn.net/jianxia801/article/details/103386650