上周五面试了字节的第三面,深感数据库知识的重要,我也意识到在平时的学习中,自己对于数据库的学习较为薄弱。甚至在有过一定实习经验之后,依旧因为开发分工的原因,对数据库方面的知识掌握依旧不多。我也相信,很多人对MySQL的 索引、 日志、 多版本并发控制、 ACID等等都只停留在八股文的阶段。
自己手上有一个项目服务用的是AWS EC2,最近从安全性和性能方面考虑,最近打算把原来腾讯云的MySQL数据库迁移到AWS RDS上,因为AWS的出口规则和安全组等问题,我需要修改默认的3306端口和Bind Address限制特定的IP访问,我在Stackoverflow上查询了如何修改,但是网上的资料大多比较老旧,不符合目前主流的MySQL版本(使用的MySQL 5.7.27,操作系统使用Ubuntu 18.04.1 LTS)
[Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 15000)
重启mysql:/etc/init.d/mysql restart 登录mysql:mysql -u root -p mysql ->select @@sql_mode; 验证sql_mode的值是否改变。
前段时间遇到一个 mysql 客户端 crash 的问题,这个 mysql 客户端是自己源码编译产生的。
mysql可以为不同的客户端设置不同的sql_mode,并且每个应用能够设置他自己的会话级别的sql_mode。sql_mode会影响sql语法以及mysql显示数据的正确性。
MySQL 的 SELECT 语句用于从数据库表中检索数据。功能强大,语句结构复杂多样。不过基本的语句格式像下面这个样子。
最近系统(基于SpringCloud+K8s)上线,运维团队早上8点左右在群里反馈,系统登录无反应!我的第一反应是Mysql数据库扛不住了。
这些日志可以帮助我们定位 mysqld 内部发生的事件,数据库性能故障,记录数据的变更历史,用户恢复数据库等。本文主要讲解错误日志文件(Error Log)相关内容。
sql_mode:简而言之就是:它定义了你MySQL应该支持的sql语法,对数据的校验等等
创建用户的时候会出现上图中警告的内容,意思是在命令行界面上使用密码是不安全的,直接略过即可。
最近系统(基于 SpringCloud + K8s)上线,运维团队早上 8 点左右在群里反馈,系统登录无反应!我的第一反应是 MySQL 数据库扛不住了。
什么是ownCloud? OwnCloud是OpenSource文件同步和共享可以托管在您自己的服务器上的软件。 它通过直观的Web界面和WEBDAV提供对文件的访问。 还有适用于Windows,Linux,MAC和移动操作系统的本机客户端,可以在本地PC或移动设备的文件夹和服务器上的ownCloud实例之间轻松同步。 ownCloud有许多应用程序和插件,如PDF查看器,电子邮件客户端,日历和任务跟踪器。 可以在这里找到完整的应用列表: https : //apps.owncloud.com/ 。
MySQL传统点位复制在5.7版本前是主要的主从复制模式,而随着MySQL5.6版本引入GTID,并且MySQL5.7进行各方面的优化以后,在mySQL5.7(尤其是MySQL5.7.6)版本后GTID模式的主从复制方式成为一个新的选择方式。要使用GTID模式,首先也需知其优缺点,其主要的优缺点如下:
在使用mysqld命令的--initialize和--console参数初始化MySQL数据库时,有时会遇到错误MYSQL:ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost'。这个错误表明在访问数据库时,用户'ODBC'被拒绝了访问权限。 这个问题通常是由于权限设置不正确引起的,下面我们将对这个问题进行分析并给出解决方案。
在执行跑批任务的过程中,应用程序遇到了一个问题:部分任务的数据库连接会突然丢失,导致任务无法完成。从数据库的错误日志中,发现了 Aborted connection 的信息,这说明客户端和服务器之间的通信被异常中断了。
说明: 例如我们可以通过 select * from tempdb.t into outfile '/home/mysql/t.txt'; 把tempdb.t 表的数据导出来;这个导出操作可以面临如下问题 1、任何一个mysql用户只要它能执行上面的sql语句、并且执行成功;那么它就把文件写到了/home/mysql/目录下? 如果有一个坏人他一直导出数据到文件目录,那么总有一天会被写满的! 2、没有办法限制只能把文件导出到/tmp/目录 这个不会影响mysqldump使用,放心好了。
接下来,我们主要关注一下数据库的升级,当升级数据库时,DBA所关心的问题有哪些?
proc.num[<name>,<user>,<state>,<cmdline>]
MySQL Profile对于分析执行计划的开销来说,还是有一定的帮助,至少在分析一些性能问题的时候有很多的参考依据。 我在5.6, 5.7版本中进行了测试,没发现差别,还是以5.7为例进行演示吧。 mysql> select version(); +-----------+ | version() | +-----------+ | 5.7.10 | +-----------+ 1 row in set (0.00 sec) 传统的使用Profile都是使用show profile这样的命令方式,这
1、在本地搭建两个linux虚拟机,其主服务器ip为192.168.0.1,从服务器ip为192.168.0.2。
下午用sql的时候突然想到这个问题,徒手测试了一下,结果还真令人意外: 首先创建一张测试用表 mysql> CREATE TABLE `t1` ( -> `id` int UNSIGNED NOT NULL AUTO_INCREMENT , -> `val` int UNSIGNED NOT NULL DEFAULT 0 , -> PRIMARY KEY (`id`) -> ); Query OK, 0 rows affected (0.04 sec) 初始化一条数据: mysql> insert in
最近因为毕设在搭建接口及数据库环境,使用Apache+MySQL+PHP在阿里云ECS服务器中配置,之前在本地配置过并成功实现,但是在阿里云中却频频出错,记录下配置过程中遇到的坑,方便后来人借鉴参考!
字面意思理解是sql_model=only_full_group_by限制了,导致在以往MYSQL版本中能正常查询的SQL,在5.7不能用了
配置环境变量: 选择PATH,在其后面添加: 你的mysql bin文件夹的路径 (如:C:\Program Files\MySQL\MySQL Server 5.6\bin )
输出a1表查询过程中的操作信息, explain select * from a1;
赠送:MySQL5.1参考手册官方简体中文版仅供参考 下载地址 MySQL体系结构 安装MySQL 安装方式: 1、源代码:编译安装 2、二进制格式的程序包:展开至特定路径,并经过简单配置后即可使
mysqladmin:无法更改密码;错误:“您的密码不符合当前策略要求” Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety. mysqladmin: unable to change password; error: ‘Your password does not satisfy the current policy requirements’
报错:ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘work_ad.api_community_pic.id’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。
为了提高 Linux 系统的安全性,在 Linux 上通常会使用 SELinux 或 AppArmor 实现强制访问控制(Mandatory Access Control MAC)。对于 MySQL 数据库的强制访问控制策略通常是激活的,如果用户采用默认的配置,并不会感到强制访问控制策略对 MySQL 数据库的影响,一旦用户修改了 MySQL 数据库的默认配置,例如默认的数据目录或监听端口,MySQL 数据库的活动就会被 SELinux 或 AppArmor 阻止,数据库无法启动,本文简单介绍 SELinux 对 MySQL 数据库的影响。
对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中
数据库的重启看似是一件非常简单,没有技术含量的活,这是我以前说的话。而这句话简直是戳中了我的痛点。这种活真是太有技术含量了,高深到让人需要注意太多的东西,需要做非常多的前期功课。 前段时间,发生了一起
spring常用dataSource配置如下: spring: datasource: username: root password: root url: jdbc:my
1.wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-1.el7.x86_64.rpm-bundle.tar 2.按照依赖关系依次安装rpm包 依赖关系依次为common→libs→client→server
今天中午,搭建好的一套主从环境中磁盘报警,登陆到相关环境,发现是MySQL的错误日志量非常大,于是使用tail -f命令查看了日志文件,发现该错误日志增长的速度非常快,日志内容为:
地址:http://dev.mysql.com/doc/refman/5.6/en/sql-mode.html
MySQL数据库官方文档:https://dev.mysql.com/doc/refman/5.7/en/server-logs.html 一、MySQL日志分类:日志文件记录了影响数据库的各种类型活动,MySQL数据库常见的日志文件分类。 错误日志(Error log) 慢查询日志(Slow query log) 二进制日志 查询日志 二、错误日志详解:MySQL错误日志是记录MySQL 运行过程中较为严重的警告和错误信息,以及MySQL每次启动和关闭的详细信息。 【查看MySQL数据库错误日志存放的位置
设置数据库句柄属性。下面列出了一些可用的通用属性;有些驱动可能使用另外的特定属性。
特分享出来最近在整理 MySQL 热备工具的实验题目时遇到的 REDO 日志归档问题!
前面文章我们介绍过日期和时间字段的查询方法,最近遇到日期值为零的问题。原来了解过和 sql_mode 参数设置有关,但还不是特别清楚,本篇文章将探究下MySQL怎么处理日期值为零的问题。
实验环境:MySQL Community Server (GPL) 5.7.17、Ubuntu 16.04
删除数据库是指在数据库系统中删除已经存在的数据库。数据库删除之后,原来分配的空间将被收回。需要注意的是,数据库删除之后该数据库中所有的表和数据都将被删除。因此删除数据库要特别小心。
# 背景 mysql版本5.7.8,需要创建新表,研发提供的sql文件,执行后报错如下: ERROR 1067 (42000): Invalid default value for 'deleted_at' 就猜测到时因为5.7版本的mysql默认的时间戳不允许输入0000-00-00 00:00:00这种格式,之前碰到过类似问题,需要修改配置 查看了研发提供的sql文件,果真如此: ‘create_at` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' C
show tables或show tables from database_name; // 显示当前数据库中所有表的名称 show databases; // 显示mysql中所有数据库的名称 show columns from table_name from database_name; 或MySQL show columns from database_name.table_name; // 显示表中列名称 show grants for user_name@localhost; // 显示一个用户的
my.cnf(部分老版本可能是my.ini)是MySQL核心配置文件。首先,在任意挂载目录下新建*.cnf文件(这里的*代表可以是任意的文件名称)。如果你的mysql是下载安装的,请找到my.cnf并参考如下配置:
千寻简笔记已开源,Gitee与GitHub搜索chihiro-notes,包含笔记源文件.md,以及PDF版本方便阅读,且是用了精美主题,阅读体验更佳,如果文章对你有帮助请帮我点一个Star~
领取专属 10元无门槛券
手把手带您无忧上云