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
相关推荐
Y3815326624 分钟前
SERP API + Redis 缓存层:4 种方案对比与选型
数据库·redis·缓存
大尚来也26 分钟前
老项目 PHP 5.6 升级 PHP 8 完整迁移步骤与兼容坑汇总
android·adb
用户77833661321129 分钟前
serpbase + GraphQL wrapper 实战:让 SERP 数据走 GraphQL schema
数据库·api
Android研究员1 小时前
Android进阶之事件分发机制深度剖析
android·前端·面试
数字新视界1 小时前
信创动环监控品牌的技术架构及应用解析
数据库·物联网·需求分析·机房管理·动环监控
宇宙第一小趴菜1 小时前
五、Oracle vs MySQL 架构深度对比笔记
mysql·oracle·架构
洵有兮2 小时前
sql注入通关笔记
数据库·笔记·sql·sql注入
海兰2 小时前
【高速缓存】RedisVL 高级查询(全文搜索、混合搜索和 多向量搜索)
数据库·人工智能·redis·缓存
峥嵘life2 小时前
Android WiFi连接过程 wpa_supplicant 日志分析
android·开发语言·php
DBA_G2 小时前
GBase 8s数据库大对象存储详解
数据库