返回顶部
首页 > 资讯 > 数据库 >MySQL有何常见问题及对应的解决方案
  • 607
分享到

MySQL有何常见问题及对应的解决方案

2024-04-02 19:04:59 607人浏览 薄情痞子
摘要

下文给大家带来关于Mysql有何常见问题及对应的解决方案,感兴趣的话就一起来看看这篇文章吧,相信看完mysql有何常见问题及对应的解决方案对大家多少有点帮助吧。一、 忘记 Mysql 的 root 密码1.

下文给大家带来关于Mysql有何常见问题及对应的解决方案,感兴趣的话就一起来看看这篇文章吧,相信看完mysql有何常见问题及对应的解决方案对大家多少有点帮助吧。

一、 忘记 Mysql 的 root 密码

1. 登录到数据库所在的云服务器,手工 kill 掉 mysql 进程。

(1) 登录到数据库所在的云服务器,手工 kill 掉 MySQL 进程:

root@boGon:/data/mysql# kill `cat ./mysql.pid`

其中,mysql.pid 指的是 MySQL 数据目录下的 pid 文件,它记录了 MySQL 服务的进程号。

(2) 使用 --skip-grant-tables 选项重启 MySQL 服务:

zj@bogon:/data/mysql$ sudo /usr/local/mysql/bin/mysqld --skip-grant-tables --user=root &

--skip-grant-tables 选项意思是启动 MySQL 服务时跳过权限表认证。启动后,连接到 MySQL 的 root 将不需要口令。

(3) 用空密码的 root 用户连接到 mysql ,并且更改 root 口令:

zj@bogon:/usr/local/mysql/bin$ mysql -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3Server version: 5.7.18-log Source distribution
Copyright (c) 2000, 2017, oracle and/or its affiliates. All rights reserved.
Oracle is a reGIStered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]> set passWord = password('123456');
ERROR 1290 (HY000): The MySQL Server is running with the --skip-grant-tables option so it cannot execute this statementMySQL [(none)]> use mysql
Database changed
MySQL [mysql]> update user set authentication_string=password('123456') where user="root" and host="localhost";
Query OK, 1 row affected, 1 warning (0.02 sec)
Rows matched: 1  Changed: 1  Warnings: 1MySQL [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MySQL [mysql]> exit;
Bye
****************************************************************
zj@bogon:/usr/local/mysql/bin$ mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7Server version: 5.7.18-log Source distribution
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]>

由于使用了 --skip-grant-tables 选项启动,使用 “set password” 命令更改密码失败,直接更新 user 表的 authentication_string(测试版本为5.7.18,有的版本密码字段是 ‘password’) 字段后,更改密码成功。刷新权限表,使权限认证重新生效。重新用 root 登录时,就可以使用刚刚修改后的口令了。

二、如何处理 myisam 存储引擎的表损坏

有的时候可能会遇到 myisam 表损坏的情况。一张损坏的表的症状通常是查询意外中断,并且能看到下述错误:

'table_name.frm' 被定不能更改

不能找到文件 'tbl_name.MYYI' (errcode:nnn)

文件意外结束

记录文件被毁坏

从表处理器得到错误 nnn。

通常有以下两种解决方法:

1. 使用 myisamchk 工具

使用 MySQL 自带的 myisamchk 工具进行修复:

shell> myisamchk -r tablename

其中 -r 参数的含义是 recover,上面的方法几乎能解决所有问题,如果不行,则使用命令:

shell> mysiamchk -o tablename

其中 -o 参数的含义是 --safe-recover,可以进行更安全的修复。

2. 使用 sql 命令

使用 MySQL 的 check table 和 repair table 命令一起进行修复,check table 用来检查表是否有损坏;repair table 用来对坏表进行修复。

三、 数据目录磁盘空间不足的问题

系统上线后,随着数据量的不断增加,会发现数据目录下的可用空间越来越小,从而给应用造成了安全隐患。

1. 对于 myisam 存储引擎的表

对于 myisam 存储引擎的表,在建表时可以用如下选项分别制定数据目录和索引目录存储到不同的磁盘空间,而默认会同时放在数据目录下:

data directory = 'absolute path to directory'index directory = 'absolute path to directory'

如果表已经创建,只能先停机或者将表锁定,防止表的更改,然后将表的数据文件和索引文件 mv 到磁盘充足的分区上,然后在原文件处创建符号链接即可。

2. 对于 innodb 存储引擎的表

因为数据文件和索引文件是存放在一起的,所以无法将它们分离。当磁盘空间出现不足时,可以增加一个新的数据文件,这个文件放在充足空间的磁盘上。
具体实现方法是在参数 innodb_data_file_path 中增加此文件,路径写为新磁盘的绝对路径。
例如,如果 /home 下空间不足,希望在 /home1 下新增加一个可自动扩充数据的文件,那么参数可以这么写:

innodb_data_file_path = /home/ibdata1:2000M;/home1/ibdata2:2000M:autoextend

参数修改后,必须重启数据库才可以生效。

四、DNS反向解析的问题 (5.0 以后的版本默认跳过域名逆向解析)

在客户端执行 show processlist 命令,有时会出现很多进程,类似于:

unauthenticated user | 192.168.10.10:55644 | null | connect | null | login | null

这些进程会累计的越来越多,并且不会消失,应用无法正常相应,导致系统瘫痪。

MySQL 在默认情况下对于远程连接过来的 IP 地址会进行域名的逆向解析,如果系统的 hosts 文件中没有与之对应的域名,MySQL 就会将此连接认为是无效用户,所以下进程中出现 unauthenticated user 并导致进程阻塞。

解决的方法很简单,在启动时加上 --skip-name-resolve 选项,则 MySQL 就可以跳过域名解析过程,避免上述问题。

五、mysql.sock 丢失后如何连接数据库

在 MySQL云服务器本机上连接数据库时,经常会出现 mysql.sock 不存在,导致无法连接的问题。这是因为如果指定 localhost 作为一个主机名,则 mysqladmin 默认使用 Unix 套接字文件连接,而不是 tcp/ip。而这个套接字文件(一般命名为 mysql.sock)经常会因为各种原因而被删除。通过 --protocol=TCP|Socket|PIPE|MEMORY 选项,用户可以显式地指定连接协议,下面演示使用了 Unix 套接字失败后使用 tcp 协议连接成功的例子。

1. Unix 套接字连接:

zj@bogon:~$ mysqlERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

2. tcp 连接

zj@bogon:~$ mysql --protocol=TCP

看了以上关于MySQL有何常见问题及对应的解决方案详细内容,是否有所收获。如果想要了解更多相关,可以继续关注我们的数据库板块。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL有何常见问题及对应的解决方案

本文链接: https://lsjlt.com/news/35409.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL有何常见问题及对应的解决方案
    下文给大家带来关于MySQL有何常见问题及对应的解决方案,感兴趣的话就一起来看看这篇文章吧,相信看完MySQL有何常见问题及对应的解决方案对大家多少有点帮助吧。一、 忘记 MySQL 的 root 密码1....
    99+
    2024-04-02
  • 常见的MySQL锁问题及其解决方案
    MySQL 锁的常见问题与解决方案MySQL 是一种常用的关系型数据库管理系统,它使用锁来实现并发控制,保证数据的一致性和完整性。然而,MySQL 锁的使用也会带来一些问题。本文将介绍一些常见的 MySQL 锁的问题,并提供相应的解决方案。...
    99+
    2023-12-21
    解决方案 常见问题 MySQL
  • mysql常见问题解决方案
    属性顺序错误 一般情况下字段类型要放在前面,限制参数放在后面,UNSIGNEDZEROFILL 之间没有先后顺序,主键 KEY 和 auto_increment 要放在UNSIGNED ZEROFILL 后面 否则报错 。设置为主...
    99+
    2018-08-06
    mysql常见问题解决方案
  • PHP对象转字符的常见问题及解决方案
    标题:PHP对象转字符的常见问题及解决方案 在PHP开发中,我们经常会遇到将对象转换成字符串的需求,但在这个过程中可能会遇到一些常见问题。本文将介绍一些关于PHP对象转字符的常见问题,...
    99+
    2024-03-06
    php 对象 转换
  • Cookie设置的常见问题及解决方案
    Cookie设置的常见问题及解决方案,需要具体代码示例 随着互联网的发展,Cookie作为一种最常见的常规技术,已经广泛应用于网站和应用程序中。Cookie,简单来说,是一种存储在用户计算机上的数据文件,可用于存储用户在网站上的...
    99+
    2024-01-19
    解决方案 cookie 设置
  • Cacti系统的常见问题及解决方案有哪些
    Cacti系统常见问题及解决方案如下: 数据更新不及时:这可能是因为数据源配置不正确或者数据采集频率设置不合理导致的。解决方法是...
    99+
    2024-03-12
    Cacti
  • Golang开发者应掌握的常见问题及解决方案
    Golang开发者必知的问题及解决方法 Go语言(Golang)作为一门快速、高效、便于并发编程的编程语言,在近年来一直备受开发者青睐。然而,尽管Golang具有许多优点,但在实际开发...
    99+
    2024-02-26
    性能优化 错误处理 并发处理 go语言 golang开发
  • CSS布局中常见的问题及解决方案
    这篇文章主要介绍“CSS布局中常见的问题及解决方案”,在日常操作中,相信很多人在CSS布局中常见的问题及解决方案问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS布局中常见...
    99+
    2024-04-02
  • ASP 中常见的并发问题及解决方案
    ASP 中常见的并发问题及解决方案 在 ASP 应用程序中,当多个用户同时访问同一个资源时,会出现并发问题。这些问题会导致应用程序崩溃、数据损坏或数据不一致等严重后果。因此,ASP 开发人员需要了解并发问题的原因和解决方案。 一、并发问题的...
    99+
    2023-11-12
    并发 数据类型 编程算法
  • Oracle NVL函数常见问题及解决方案
    Oracle NVL函数常见问题及解决方案 Oracle数据库是广泛使用的关系型数据库系统,在数据处理过程中经常需要处理空值的情况。为了应对空值带来的问题,Oracle提供了NVL函数...
    99+
    2024-03-10
    解决方案 oracle nvl
  • PHP 函数常见问题详解及解决方案
    常見 php 函數問題及解決方案:函數未定義:檢查函數存在性,確保正確定義或導入。缺少參數:根據函數聲明補充必需參數。參數類型錯誤:確認參數類型與聲明匹配,使用轉型或驗證解決不匹配。返回...
    99+
    2024-04-30
    php 常见问题
  • MySQL事务的常见问题及解决方法
    MySQL事务的常见问题及解决方法 在数据库操作中,事务是一个非常重要的概念,可以保证一组SQL语句要么全部执行成功,要么全部失败,并且在并发操作中保证数据的一致性。然而,MySQL中...
    99+
    2024-03-01
    mysql 事务 解决 sql语句 数据丢失
  • ASP异步编程的常见问题及解决方案?
    ASP异步编程的常见问题及解决方案 随着互联网技术的不断发展,网页的交互性和实时性要求也越来越高。而ASP异步编程技术可以帮助开发者解决这些问题。但是,ASP异步编程也会遇到一些常见问题,本文将结合实例介绍这些问题及其解决方案。 一、什么是...
    99+
    2023-09-12
    异步编程 面试 windows
  • Python中装饰器的常见问题及解决方案
    Python中装饰器的常见问题及解决方案什么是装饰器装饰器是Python中一种非常强大的功能,可以用来修改已有函数或类的行为,而无需修改其源代码。装饰器实际上是个函数或类,它接受一个函数或类作为参数,然后返回一个新的函数或类。如何编写一个简...
    99+
    2023-10-22
    解决方案 问题 装饰器
  • PHP开发缓存的常见问题及解决方案
    PHP开发缓存的常见问题及解决方案在PHP开发过程中,为了提高网站性能和用户体验,使用缓存是常见的优化手段。然而,使用缓存也会遇到各种问题,本文将介绍PHP开发中常见的缓存问题,并提供相应的解决方案和具体代码示例。一、缓存命中率低问题描述:...
    99+
    2023-11-07
    解决方案 PHP缓存 常见问题
  • Go语言中SQL的常见问题及解决方案
    Go语言是一种流行的编程语言,被广泛应用于开发Web应用程序、API服务和其他类型的软件项目。在Go语言中,与数据库交互通常是非常常见的需求之一,其中使用SQL语言操作数据库更是常见的...
    99+
    2024-04-02
  • MySQL主从复制的常见问题和有效解决方案
    下面讲讲关于MySQL主从复制的常见问题和有效解决方案,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完MySQL主从复制的常见问题和有效解决方案这篇文章你一定会有所受益。 一...
    99+
    2024-04-02
  • php zookeeper常见问题解决方案
    在《PHP Zookeeper你需要知道的细节》(以下称为php_zk)一章中我们提出了问题,并且通过分析PHP-ZooKeeper源码找出了问题的原因,但是并没有给出解决方法。本章我们就来看一看解决的...
    99+
    2024-02-27
  • Android中WebView常见问题及解决方案汇总
    Android WebView常见问题解决方案汇总: 就目前而言,如何应对版本的频繁更新呢,又如何灵活多变地展示我们的界面呢,这又涉及到了web app与native app...
    99+
    2022-06-06
    解决方案 webview Android
  • MySQL MHA配置的常见问题及解决方法
    这篇文章主要讲解了“MySQL MHA配置的常见问题及解决方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL MHA配置的常见问题及解决方法”吧!...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作