MySQL

分类下相关文章

mysql 导出文件以 utf8mb4 编码

由于 mysql 导出数据中包含了大量的 emoji 表情,而 emoji 表情是以 utf8mb4 进行编码的。 发现用记事本打开 mysql workbench 8.0 导出的 sql 文件,里面的 emoji 表情都是乱码。说明导出文件的文件编码是错误的。 正确做法,命令行版 以导出数据库 test_db 为例: mysqldump --default-character-set=utf8mb4 -uuser -p test_db > data.sql mysql workbench 如何操作 TODO ...

阅读全文...

mysql workbench need visual c++ 2019 解决方法

在 Windows 10 系统上安装 MySQL Workbench 8.0,弹窗提示报错: mysql workbench need visual c++ 2019 然后提示你去官方手动下载依赖。。。 visual c++ 2019 下载地址 https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads 只需要下载 VC_redist.x64.exe 这一个安装文件,只有 14M 大,本以为需要几个G。 安装之后会提示重启,然后就可以正常安装 MySQL Workbenc ...

阅读全文...

WSL 安装 mysql8 报错:cannot read realtime clock: Invalid argument

在 Windows 10 WSL Ubuntu 20.04 上安装 mysql 8 报错: cannot read realtime clock: Invalid argument 解决方法 wget https://launchpad.net/~rafaeldtinoco/+archive/ubuntu/lp1871129/+files/libc6_2.31-0ubuntu8+lp1871129~1_amd64.deb sudo dpkg --install libc6_2.31-0ubuntu8+lp1871129~1_amd64.deb sudo apt-mark hold li ...

阅读全文...

wordpress MySQL 8.0 报错:Error establishing a database connection

迁移了旧有的一套 wordpress 网站到新的服务器上,更改域名解析之后,报错: Error establishing a database connection 系统环境 Ubuntu 20.04 PHP 7.0 MySQL 8.0 问题排查 看上去是很简单的账号,密码问题。我确认了半天,发现 mysql 可以正常登陆,wp-config.php 中的也没有写错。 但是依旧报这个错误。感觉没有头绪了。 wordpress debug 开关打开 define( 'WP_DEBUG', true ); 发现详细错误如下: Warning: mysqli_real_connect(): ...

阅读全文...

ubuntu 20.04 apt 安装 mysql 8.0

ubuntu 20.04 apt 安装 mysql 8.0 sudo apt update sudo apt install mysql-server 此时 mysqld 服务已启动。 启动 mysql 若 mysql 没有自动启动,执行: sudo service mysql start 使用 mysql_secure_installation 进行安全配置 mysql_secure_installation 如果是在 WSL 上,执行 sudo mysql_secure_installation 运行之后,按照提示引导进行设置即可。其主要配置有: 密码强度规则 root 账号新 ...

阅读全文...

MySQL 删除 N 天前的数据

例如,我想删除日志表7天前的数据: DELETE FROM logs WHERE created_at < NOW() - INTERVAL 7 DAY 这样,就达到了只保留一周内数据的目的,节省存储空间。 ...

阅读全文...

MySQL 什么版本开始支持 utf8mb4 和 utf8 编码的

utf8mb4 MySQL在 5.5.3 之后增加了 utf8mb4 字符编码,mb4即 most bytes 4。简单说 utf8mb4 是 utf8 的超集并完全兼容utf8,能够用四个字节存储更多的字符。 utf8 MySQL从4.1版本开始支持UTF-8,也就是2003年,而今天使用的UTF-8标准(RFC 3629)是随后才出现的。 ...

阅读全文...

MySQL created_at 日期时间字段在数据变更时,自动更新

今天在使用 GoAdmin 开发后台功能时,发现 GoAdmin 没有像 Laravel 那样自带 created_at 字段更新功能。即数据发送变化时,无法自动更新 created_at 字段。 而 formList.SetUpdateFn 这个功能,需要将所有字段都处理,也不方便更新 created_at. 最终在 GoAdmin QQ 群里请教了一下大佬,得到了一个不错的解决方法,即直接使用 MySQL 的 on update 功能。 MySQL Workbench 中右键点击字段名,在右键菜单中选择最后一项 DEFAULT CURRENT_TIMESTAMP ON UPDATE CU ...

阅读全文...

MySQL 导出数据时报错 UnicodeEncodeError

一个微信的陌生人咨询,在 MySQL 导出数据时遇到问题。截图如下: 在导出数据时,报错: 'ascii' codec can't encode characters in position 9-10: ordinal not in range(128) 具体错误为: UnicodeEncodeError('ascii', u'C:\Users\\u611a\u8005\Desktop\12345.csv', 9, 11, 'ordinal not in range(128)') 看起来是 MySQL Workbench 在用 Python 做处理时,没有做好编码转换。而导出的目标目 ...

阅读全文...

什么情况下使用 redis 作为 mysql 查询结果的 cache

So if SQL Server has it's own cache, what is the benefit of an external Memcached (or similar) server? 适用 redis 的场景 复杂/耗时 MySQL 查询的结果缓存。例如,凌晨计算一次的结果,缓存到 redis。但是缓存到 MySQL 的一个新字段也可以。。。 可以设置自动过期 方便分布式部署 需要多次 MySQL 查询,及计算,然后才能生产的结果。例如,排行榜,及每一名的具体信息。 MySQL query cache 什么情况下需要开发/关闭 如果你的应用对数据库的更新很少,那 ...

阅读全文...

MySQL 时间戳转换为 datetime

使用 mysql 内置的函数 from_unixtime 进行转换 mysql> select id, time from log order by id desc limit 5; +-----+------------+ | id | time | +-----+------------+ | 897 | 1567411753 | | 896 | 1567411707 | | 895 | 1567402661 | | 894 | 1567402402 | | 893 | 1567402315 | +-----+------------+ 5 rows in set (0 ...

阅读全文...

统计数据表中 datetime 字段的日期集合

例如,MySQL 数据表中数据行的创建时间字段 created_at 为 datetime 类型。 现在要统计所有的创建日期集合,方便生成基于日期的日程表。 SELECT DISTINCT date(date_format(created_at, '%Y-%m-%d')) as created_date from some_table order by created_date desc ...

阅读全文...

MySQL 触发器的坑:ERROR 1054 (42S22): Unknown column 'xxx' in 'field list'

今天线上项目报错了 500 错误,Laravel 日志中显示 Illuminate/Database/QueryException with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'is_charge' in 'field list' (SQL: update `some_categories` set `lft` = case when `lft` >= 29 then `lft`+2 else `lft` end, `rgt` = case when `rgt` >= 29 then ...

阅读全文...

centos 6.9 install mysql 5.7

wget http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm rpm -ivh mysql57-community-release-el6-7.noarch.rpm yum install -y mysql-community-client mysql-community-server 参考 https://opensourcedbms.com/dbms/installing-mysql-5-7-on-centosredhatfedora/ ...

阅读全文...

MySQL 批量修改时间为 N 天前/后

例如,我想把当前数据表中 updated_at 时间字段统一修改为一天前。 修改前 SQL 语句: update some_table set updated_at = DATE_ADD(updated_at, INTERVAL -1 DAY); 修改后 如果是要改成一天后,把减号去掉即可 update some_table set updated_at = DATE_ADD(updated_at, INTERVAL 1 DAY); 参考 https://www.w3schools.com/sql/func_mysql_date_add.asp ...

阅读全文...