MySQL8_rpm方式安装过程中常见问题处理

启动失败

启动失败场景1_Could not open file mysqld.log

问题描述

rpm方式安装完数据库后启动数据库提示不能打开mysqld.log

12月 21 10:23:33 dtweb1 mysqld[26916]: 2023-12-21T02:23:33.925906Z 0 [ERROR] [MY-010187] [Server] Could not open file '/topsoft/mysqldb/logs/mysqld.log' for error logging: Permission denied
问题分析
--查看目录权限,发现是755,没问题
ls -ld /topsoft/mysqldb/logs
解决办法

重新单独设置文件权限,再次启动数据库不报错。

chmod 755 /topsoft/mysqldb/logs/mysqld.log

启动失败场景2_File './binlog.index' not found

问题描述

rpm方式安装完数据库后启动数据库提示无法找到binlog.index文件

mysqld: File './binlog.index' not found (OS errno 13 - Permission denied)
35:24.732753Z 0 [Warning] [MY-010091] [Server] Can't create test file /topsoft/mysql/mysqld_tmp_file_case_insensitive_test.lower-test
2023-12-21T01:35:24.732874Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.23) starting as process 108015
2023-12-21T01:35:24.736728Z 0 [Warning] [MY-010091] [Server] Can't create test file /topsoft/mysql/mysqld_tmp_file_case_insensitive_test.lower-test
2023-12-21T01:35:24.736760Z 0 [Warning] [MY-010091] [Server] Can't create test file /topsoft/mysql/mysqld_tmp_file_case_insensitive_test.lower-test
2023-12-21T01:35:24.738710Z 0 [ERROR] [MY-010119] [Server] Aborting
2023-12-21T01:35:24.738957Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.23)  MySQL Community Server - GPL.
问题分析

发现/etc/my.cnf中无binlog参数,增加binlog参数再次启动数据库不再提示该错误

解决办法
log_bin = /topsoft/mysql/binlog  #二进制日志文件前缀
binlog_format = ROW
binlog_expire_logs_seconds=604800 #mysql binlog日志文件保存的过期时间7天,过期后自动删除;默认值是0,不限制,这样会占用空间太多 单位秒
max_binlog_size = 1G #限制单个文件大小,默认大小:1,073,741,824,即1G,太大了

启动失败场景3_Can't create test file

问题描述

rpm方式安装完数据库后启动数据库提示 Can't create test file。头一回碰到很是懵,无从下手。

[root@dtweb1 mysqldb]# systemctl status mysqld8
● mysqld8.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld8.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since 四 2023-12-21 10:23:33 CST; 2s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 26916 ExecStart=/usr/sbin/mysqld --defaults-file=/etc/my.cnf (code=exited, status=1/FAILURE)
 Main PID: 26916 (code=exited, status=1/FAILURE)

12月 21 10:23:33 dtweb1 mysqld[26916]: 2023-12-21T02:23:33.921118Z 0 [Warning] [MY-010091] [Server] Can't create test file /topsoft/mysqldb/data/mysqld_tmp_file_case_insensitive_test.lower-test
12月 21 10:23:33 dtweb1 mysqld[26916]: 2023-12-21T02:23:33.921225Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.23) starting as process 26916
12月 21 10:23:33 dtweb1 mysqld[26916]: 2023-12-21T02:23:33.924665Z 0 [Warning] [MY-010091] [Server] Can't create test file /topsoft/mysqldb/data/mysqld_tmp_file_case_insensitive_test.lower-test
12月 21 10:23:33 dtweb1 mysqld[26916]: 2023-12-21T02:23:33.924694Z 0 [Warning] [MY-010091] [Server] Can't create test file /topsoft/mysqldb/data/mysqld_tmp_file_case_insensitive_test.lower-test
12月 21 10:23:33 dtweb1 mysqld[26916]: 2023-12-21T02:23:33.925906Z 0 [ERROR] [MY-010187] [Server] Could not open file '/topsoft/mysqldb/logs/mysqld.log' for error logging: Permission denied
12月 21 10:23:33 dtweb1 mysqld[26916]: 2023-12-21T02:23:33.925984Z 0 [ERROR] [MY-010119] [Server] Aborting
12月 21 10:23:33 dtweb1 mysqld[26916]: 2023-12-21T02:23:33.926240Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.23)  MySQL Community Server - GPL.
12月 21 10:23:33 dtweb1 systemd[1]: mysqld8.service: main process exited, code=exited, status=1/FAILURE
12月 21 10:23:33 dtweb1 systemd[1]: Unit mysqld8.service entered failed state.
12月 21 10:23:33 dtweb1 systemd[1]: mysqld8.service failed.
分析过程

参考一博主的步骤,说是selinux参数未设置禁用导致

解决办法

selinux参数设置禁用,再次启动数据库不再提示该错误

sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
setenforce 0 

3306端口不通

问题描述

rpm方式安装完数据库后,数据库连接工具不能访问数据库,ip通端口不通

分析过程

刚开始以为是tcp中无3306端口导致,设置了禁用ipv6后依然不能访问,排除tcp中无3306端口导致。

[root@dtweb1 logs]# netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:59681         0.0.0.0:*               LISTEN      109980/KvEdrSvc     
tcp        0      0 0.0.0.0:58595           0.0.0.0:*               LISTEN      1284/sshd           
tcp        0      0 127.0.0.1:55566         0.0.0.0:*               LISTEN      1700/logagent       
tcp        0      0 0.0.0.0:10007           0.0.0.0:*               LISTEN      114368/../jdk1.8//b 
tcp        0      0 0.0.0.0:10008           0.0.0.0:*               LISTEN      114368/../jdk1.8//b 
tcp6       0      0 :::58595                :::*                    LISTEN      1284/sshd           
tcp6       0      0 :::33060                :::*                    LISTEN      73573/mysqld        
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      114677/../jdk1.8/bi 
tcp6       0      0 :::3306                 :::*                    LISTEN      73573/mysqld        
tcp6       0      0 :::63443                :::*                    LISTEN      1700/logagent       
tcp6       0      0 :::8088                 :::*                    LISTEN      114677/../jdk1.8/bi

--查看防火墙 发现并未开启防火墙
systemctl status firewalld

--禁用ipv6
vi /etc/sysctl.conf
##add by disable ipv6
net.ipv6.conf.all.disable_ipv6 =1
net.ipv6.conf.default.disable_ipv6 =1
net.ipv6.conf.eth0.disable_ipv6 =1

--生效
sysctl -p

解决办法

原因暂时未知,参考一博主的做法客户端竟然神奇的能访问数据库了。

--停止数据库
systemctl stop mysqld
--禁用开机启动
systemctl disable mysqld
--启动数据库  ,数据库连接成功
systemctl start mysqld
--设置开机启动
systemctl enable mysqld

服务器本地登录失败

问题描述

rpm方式安装完数据库后,服务器本地登录失败,提示不能连接sock文件

[root@dtweb1 logs]# mysql -uroot -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

分析过程

查找服务器上都有哪些sock文件

--查找服务器上都有哪些sock文件
[root@dtweb1 logs]# find / -name mysql.sock
-rw-r--r-- 1 mysql mysql  342 Sep 27 14:27  /topsoft/mysql/mysql.sock

--指定-S 参数登录数据库,登录成功
mysql -uroot -p -S  /topsoft/mysql/mysql.sock

解决办法

创建软链接,再次登录正常

ln -s /topsoft/mysql/mysql.sock /var/lib/mysql/mysql.sock
相关推荐
花生糖@20 分钟前
Android XR 应用程序开发 | 从 Unity 6 开发准备到应用程序构建的步骤
android·unity·xr·android xr
是程序喵呀24 分钟前
MySQL备份
android·mysql·adb
casual_clover25 分钟前
Android 之 List 简述
android·list
指尖上跳动的旋律32 分钟前
shell脚本定义特殊字符导致执行mysql文件错误的问题
数据库·mysql
一勺菠萝丶42 分钟前
MongoDB 常用操作指南(Docker 环境下)
数据库·mongodb·docker
m0_748244831 小时前
StarRocks 排查单副本表
大数据·数据库·python
C++忠实粉丝2 小时前
Redis 介绍和安装
数据库·redis·缓存
锋风Fengfeng2 小时前
安卓15预置第三方apk时签名报错问题解决
android
wmd131643067122 小时前
将微信配置信息存到数据库并进行调用
数据库·微信
是阿建吖!2 小时前
【Linux】基础IO(磁盘文件)
linux·服务器·数据库