背景
客户发消息说系统突然登录不上,验证码都出不来。当看到这个消息的时候觉得应该挺简单的,觉得大概率是应用程序挂了,决定临时使用重《重启》大法。登录应用服务进行查看发现服务在重启中,尝试重启也无效,就查看了相关日志发现是MySQL服务连接不上了。接下来就只能看下MySQL 服务出现什么问题并想办法尝试解决。
问题
登录MySQL服务器发现服务在启动中并且一直处于这个状态。停止服务MYSQL服务并尝试重启,问题依然存在。MYSQL的状态一直就是这个Server startup in progress,如下所示:
mysqld.service – MySQL ServerLoaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)Act...
7个月前 (05-31) 940℃ 0评论
0喜欢
背景
由于mysql低版本暴了漏洞,所以客户就升级了mysql版本。升级到了最新版8.0.30,升级最新版后,应用就再也查不出数据,恢复到最初的版本有可以查到数据。经过确认最初数据库的表字符集为utf8,升级后这些字符集自动修改为utf8mb3。新版本数据库移除了utf8字符集,而应用本身不支持utf8mb3,所以需要修改这些字符集。经过再次确认最新版mysql以及应用都支持utf8mb4,最终决定修改字符集为utf8mb4。
修改字符集
数据库
ALTER DATABASE 数据库名称 DEFAULT CHARACTER SET 编码名称 [COLLATE ...];
例如:
ALTER DATABASE activity CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
表...
2年前 (2022-08-05) 1572℃ 0评论
2喜欢
异常信息
SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client[/app/thinkphp/library/think/db/Connection.php:295]
原因
MySQL8中用户的认证类型(Authentication type)默认为cacheing sha2 password导致的错误,需要修改用户权限认证方式为mysql_native_password。
我这个错误就是因为数据库升级导致的。
解决办法
数据库降级,退回以前版本改为mysql_native_password认证方式
数据库退回以前的版本,这里不进行操作了。下面只针对认证方式改回mysql_native_password的方式。
修...
2年前 (2022-07-29) 1077℃ 0评论
1喜欢
游标
游标的设计是一种数据缓冲区的思想,用来存放SQL语句执行的结果。游标是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。
游标的特性
游标具有以下三个特性:
不敏感(Asensitive)数据库可以选择不复制结果集只读(Read only)不滚动(Nonscrollable)游标只能向一个方向前进,并且不可以跳过任何一行数据
游标的优点
游标是针对行操作的,对从数据库中SELECT查询得到的结果集的每一行可以进行分开的独立的相同或不同的操作,是一种分离的思想。游标是面向集合与面向行的设计思想之间的一种桥梁。
游标的缺点
游标的主要缺点是性能不高。游标的开销与游标中进行的操作相关,如果在游标中进行复杂的操作,开销会非常高。
游标的适用场景
MySQL数据库中,可以在存储过程、函数、触发器、事件中使用游标。
...
3年前 (2021-08-28) 1212℃ 0评论
42喜欢
背景
某项目数据统计,为了更加直观显示一些数据,刚好有这个行转列的一个需求。行转列的需求其实在平常业务中也是比较常见的,在数据统计中使用的比较频繁。行转列以前也遇到过,之前数据库使用的是Microsoft SQL Server。目前使用的是MySQL数据库,这里也做一下简单的记录。
实现
结构与数据准备
为了更好的理解行转列,这里准备一张结构简单都表以及数据。
DROP TABLE IF EXISTS `project_completion_rate`;
CREATE TABLE `project_completion_rate` (
`id` int(8) NOT NULL,
`project_user` varchar(20) DEFAULT NULL,
`project_content` varchar(20) DEFAULT NULL...
3年前 (2021-08-09) 858℃ 0评论
7喜欢
背景
接手别人项目进行维护,使用Mysql 8.0 数据库正确还原,但是项目却无法启动,经过调试发现以下问题。
MySqlException Authentication method ‘caching_sha2_password’ not supported by any of the available plugins。
通常的报这个错误是因为它的身份验证方式是 mysql_native_password ,不是caching_sha2_password导致。
Mysql 官方相关资料:https://dev.mysql.com/doc/refman/8.0/en/caching-sha2-pluggable-authentication.html
解决方法
首先找到MySql 8.0 的安装目录,看一下是否存在my...
4年前 (2020-10-05) 3856℃ 0评论
8喜欢
因业务需求可能会导致数据存储结构发生变化,当数据保存到关系型数据库中时必将带来表结构的变化,这就涉及到对表中的列进行新增、修改、删除等操作。
在大多情况下数据库脚本执行必须是可重复的,因此对数据库表的任何表变动都需要进行判断,然而在MySQL数据库中通过SQL脚本进行列的变更就不太便利。下面记录一下曾经用到的一些MySQL脚本:
USE DATABASE NAME; -- 这里要换数据库名称
DROP PROCEDURE IF EXISTS Operate_ColumnADD_Update_Delete;
DELIMITER$$
-- 1表示新增列,2表示修改列类型,3表示删除列
CREATE PROCEDURE Operate_ColumnADD_Update_Delete(TableName VARCHAR(50),ColumnName VARCHAR(50)...
5年前 (2020-03-31) 821℃ 0评论
3喜欢
在应用部署后访问中出现一下错误:
ERROR 1130: Host ‘localhost’ is not allowed to connect to this MySQL server
其实就是 MySQL 不允许当前的Host进行连接。为了本地以后测试方便,暴力解决方法如下:
1.在装有MySQL的机器上登录MySQL:mysql -uroot -p密码2.选择我mysql库,执行use mysql;3.更新user表,执行update user set host = ‘%’ where user = ‘root’;这一句执行完可能会报错,不用管它。4.执行FLUSH PRIVILEGES;
转载请注明:清风亦平凡 » Host is not allowed...
5年前 (2019-09-06) 1068℃ 0评论
0喜欢