目录
2.4、CentOS 7下启动、关闭、重启、查看MySQL服务
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
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';