背景
客户发消息说系统突然登录不上,验证码都出不来。当看到这个消息的时候觉得应该挺简单的,觉得大概率是应用程序挂了,决定临时使用重《重启》大法。登录应用服务进行查看发现服务在重启中,尝试重启也无效,就查看了相关日志发现是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...
6个月前 (05-31) 751℃ 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) 1512℃ 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) 1023℃ 0评论
1喜欢
游标
游标的设计是一种数据缓冲区的思想,用来存放SQL语句执行的结果。游标是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。
游标的特性
游标具有以下三个特性:
不敏感(Asensitive)数据库可以选择不复制结果集只读(Read only)不滚动(Nonscrollable)游标只能向一个方向前进,并且不可以跳过任何一行数据
游标的优点
游标是针对行操作的,对从数据库中SELECT查询得到的结果集的每一行可以进行分开的独立的相同或不同的操作,是一种分离的思想。游标是面向集合与面向行的设计思想之间的一种桥梁。
游标的缺点
游标的主要缺点是性能不高。游标的开销与游标中进行的操作相关,如果在游标中进行复杂的操作,开销会非常高。
游标的适用场景
MySQL数据库中,可以在存储过程、函数、触发器、事件中使用游标。
...
3年前 (2021-08-28) 1161℃ 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) 810℃ 0评论
7喜欢
创建链接服务器
sp_addlinkedserver
创建链接服务器。 链接服务器让用户可以对 OLE DB 数据源进行分布式异类查询。 使用 sp_addlinkedserver 创建链接服务器后,可对该服务器运行分布式查询。 如果链接服务器定义为 SQL Server实例,则可执行远程存储过程。
语法
sp_addlinkedserver [ @server= ] 'server' [ , [ @srvproduct= ] 'product_name' ]
[ , [ @provider= ] 'provider_name' ]
[ , [ @datasrc= ] 'data_source' ]
[ , [ @location= ] '...
4年前 (2021-05-23) 729℃ 0评论
5喜欢
由于客户突然要进行国产化的一个要求,数据库使用更换了国产的达梦数据库,将数据由Oracle数据库迁移到达梦数据库。所以,之前基于Oracle处理的一些功能就需要进行一些调整。
使用NuGet 引入达梦数据提供器DmProvider
引用相关的组件后,就按照套路对已经存在的方法进行相关调整,结果出现了一些编译出错且无论如何调整都无法消除。如下:
错误 CS1705 标识为“Dm, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”的程序集“Dm”所使用的“System.Runtime, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”版本高于所引用的标识为“System.Runtime, Version=4.1.2.0, ...
4年前 (2020-12-07) 1388℃ 0评论
3喜欢
因业务需求可能会导致数据存储结构发生变化,当数据保存到关系型数据库中时必将带来表结构的变化,这就涉及到对表中的列进行新增、修改、删除等操作。
在大多情况下数据库脚本执行必须是可重复的,因此对数据库表的任何表变动都需要进行判断,然而在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) 769℃ 0评论
3喜欢
Navicat premium 是一款数据库管理工具。将此工具连接数据库,你可以从中看到各种数据库的详细信息。包括报错,等等。当然,你也可以通过他,登陆数据库,进行各种操作。Navicat Premium是一个可多重连线资料库的管理工具,它可以让你以单一程序同时连线到 MySQL、SQLite、Oracle 及 PostgreSQL 资料库,让管理不同类型的数据库管理更加方便。
Navicat Premium结合了其他Navicat成员的功能。有了这种集成链接到不同数据库能力,Navicat Premium支持在 MySQL、SQLite、Oracle 及 PostgreSQL 之间数据传输。它支持大部分的 MySQL、SQLite、Oracle 及 PostgreSQL 功能,包括存储过程、事件、触发器、函数等。
工具下载
Navicat Pr...
5年前 (2019-09-07) 1137℃ 0评论
0喜欢
在应用部署后访问中出现一下错误:
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) 1011℃ 0评论
0喜欢
数据库中事务的四大特性(ACID):原子性、一致性、隔离性、持久性。如果一个数据库支持事务的操作,那么该数据库必须要具备以下四个特性:
原子性(Atomicity)
原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。
一致性(Consistency)
一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。
隔离性(Isolation)
隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。
持久性(Durability)
持久性是指一个事务一旦被提交...
9年前 (2016-04-10) 785℃ 0评论
0喜欢