数据库mysql 5.7版本的初始密码修改

安装完后实在是找不到初始密码的文件,后面发现再错误日志中

先关闭mysql
  1. pkill mysqld
安全模式启动数据库并修改密码
  1. mysqld_safe --skip-grant-tables &
  2. MySQL [mysql]> update user set password=password('xxxx') where user='root';
  3. ERROR 1054 (42S22): Unknown column 'password' in 'field list'
  4. MySQL [mysql]> update user set authentication_string=password('xxxx') where user='root';
  5. Query OK, 1 row affected, 1 warning (0.00 sec)
  6. Rows matched: 1 Changed: 1 Warnings: 1
  7. MySQL [mysql]> flush privileges;
  8. Query OK, 0 rows affected (0.01 sec)

5.7版本中保存密码的字段password改为authentication_string

使用密码进入数据库
  1. [root@VM_47_236_centos ~]# pkill mysqld
  2. [root@VM_47_236_centos ~]# mysqld_safe --defaults-file=/etc/my.cnf &
  3. [1] 27918
  4. [root@VM_47_236_centos ~]# 2018-01-22T02:02:49.499702Z mysqld_safe Logging to '/data/mysql/mysql-error.log'.
  5. 2018-01-22T02:02:49.518163Z mysqld_safe Starting mysqld daemon with databases from /data/my
  6. MySQL [(none)]> show databases;
  7. ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
  8. MySQL [(none)]> alter user root@'localhost' identified by 'xxxx';
  9. Query OK, 0 rows affected (0.01 sec)

这是可以使用密码进入数据库,但是还需要alter user...重新鉴定一下

关闭ONLY_FULL_GROUP_BY

  1. select @@global.sql_mode\G;
  2. *************************** 1. row ***************************
  3. @@global.sql_mode: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
  4. 1 row in set (0.00 sec)
  5. ERROR:
  6. No query specified
  7. MySQL [(none)]> set @@global.sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
  8. Query OK, 0 rows affected (0.00 sec)
  9. MySQL [(none)]> select @@global.sql_mode\G;
  10. *************************** 1. row ***************************
  11. @@global.sql_mode: STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
  12. 1 row in set (0.00 sec)

sql_mode值的含义:

ONLY_FULL_GROUP_BY:

对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么将认为这个SQL是不合法的,因为列不在GROUP BY从句中

STRICT_TRANS_TABLES:

在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做任何限制

NO_ZERO_IN_DATE:

在严格模式,不接受月或日部分为0的日期。如果使用IGNORE选项,我们为类似的日期插入'0000-00-00'。在非严格模式,可以接受该日期,但会生成警告。

NO_ZERO_DATE:

在严格模式,不要将 '0000-00-00'做为合法日期。你仍然可以用IGNORE选项插入零日期。在非严格模式,可以接受该日期,但会生成警告

ERROR_FOR_DIVISION_BY_ZERO:

在严格模式,在INSERT或UPDATE过程中,如果被零除(或MOD(X,0)),则产生错误(否则为警告)。如果未给出该模式,被零除时MySQL返回NULL。如果用到INSERT IGNORE或UPDATE IGNORE中,MySQL生成被零除警告,但操作结果为NULL。

NO_AUTO_CREATE_USER

防止GRANT自动创建新用户,除非还指定了密码。

NO_ENGINE_SUBSTITUTION:

如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常

系统时间问题

5.7默认为UTC时间,所以查看日志的时候时间是对不上的,时差8H

查看当前mysql时区

  1. MySQL [(none)]> SHOW GLOBAL VARIABLES LIKE 'log_timestamps';
  2. +----------------+--------+
  3. | Variable_name | Value |
  4. +----------------+--------+
  5. | log_timestamps | UTC |
  6. +----------------+--------+
  7. 1 row in set (0.01 sec)

需要在mysql的配置文件中[mysqld]中增加一条log_timestamps的配置

  1. log_timestamps=SYSTEM
  1. MySQL [(none)]> SHOW GLOBAL VARIABLES LIKE 'log_timestamps';
  2. +----------------+--------+
  3. | Variable_name | Value |
  4. +----------------+--------+
  5. | log_timestamps | SYSTEM |
  6. +----------------+--------+
  7. 1 row in set (0.01 sec)

bin_log日志的管理

日志文件过大,查看的时候会很好性能,所以建议可以设定一个阈值,到达阈值轮替,并且设置保存时间
配置文件[mysqld]中添加如下:

  1. log_bin = mysql-bin
  2. binlog_format = mixed
  3. expire_logs_days = 7
  4. max_binlog_size = 20M

保存7天,日志文件最大为20M

MySQL5.7中NULL和空值0的计算区别

公司业务上遇到相关问题,SQL语句如下:

MySQL [tw2]> SELECT * FROM tw_member WHERE hid!="";
+---------+--------------+---------+-----+-------+----------+----------------------------------+-------+-------------+-------------+-------------+--------+-----------+-----------------+-----------+-------------+---------+------------+
| id | nickname | headimg | hid | level | username | password | email | mobile | update_time | create_time | status | leader_id | is_share_member | is_inside | platform_id | role_id | examine_id |
+---------+--------------+---------+-----+-------+----------+----------------------------------+-------+-------------+-------------+-------------+--------+-----------+-----------------+-----------+-------------+---------+------------+
| 1148961 | 曾亚瑞 | NULL | 38 | 2 | z323555 | 00d92e9294d484574d50863b4d547c5c | | 15087149162 | 1524711596 | 1524707736 | -1 | 1 | 0 | 1 | 999 | 2 | 0 |
| 1148962 | 第三方 | NULL | 999 | 0 | sdf55 | 00d92e9294d484574d50863b4d547c5c | | 13072766592 | 1524736018 | 1524710328 | 1 | 1 | 0 | 1 | 999 | 0 | 0 |
| 1148963 | 萨芬 | NULL | 38 | 9 | dsfa545 | 00d92e9294d484574d50863b4d547c5c | | 13772766591 | 0 | 1524710356 | 1 | 1 | 0 | 1 | 999 | 20 | 0 |
| 1148965 | 撒旦法 | NULL | 38 | 9 | fsdf55 | 00d92e9294d484574d50863b4d547c5c | | 13995913628 | 0 | 1524712960 | 1 | 1148961 | 0 | 1 | 999 | 22 | 0 |
| 1148966 | 随碟附送 | NULL | 38 | 2 | sdf5454 | 00d92e9294d484574d50863b4d547c5c | | 13995951362 | 1524793149 | 1524713664 | 1 | 1 | 0 | 1 | 999 | 1 | 0 |
+---------+--------------+---------+-----+-------+----------+----------------------------------+-------+-------------+-------------+-------------+--------+-----------+-----------------+-----------+-------------+---------+------------+
5 rows in set (0.00 sec)

MySQL [tw2]> SELECT * FROM tw_member WHERE hid is not NULL;
+---------+--------------+---------+-----+-------+----------+----------------------------------+------------------+-------------+-------------+-------------+--------+-----------+-----------------+-----------+-------------+---------+------------+
| id | nickname | headimg | hid | level | username | password | email | mobile | update_time | create_time | status | leader_id | is_share_member | is_inside | platform_id | role_id | examine_id |
+---------+--------------+---------+-----+-------+----------+----------------------------------+------------------+-------------+-------------+-------------+--------+-----------+-----------------+-----------+-------------+---------+------------+
| 1 | admin | 43 | 0 | 1 | admin | 13a7669e31f85e25a6047a3a98b66375 | 190423457@qq.com | 18555550710 | 1524793653 | 1513216128 | 1 | 0 | 0 | 1 | 999 | 0 | 0 |
| 1148961 | 曾亚瑞 | NULL | 38 | 2 | z323555 | 00d92e9294d484574d50863b4d547c5c | | 15087149162 | 1524711596 | 1524707736 | -1 | 1 | 0 | 1 | 999 | 2 | 0 |
| 1148962 | 第三方 | NULL | 999 | 0 | sdf55 | 00d92e9294d484574d50863b4d547c5c | | 13072766592 | 1524736018 | 1524710328 | 1 | 1 | 0 | 1 | 999 | 0 | 0 |
| 1148963 | 萨芬 | NULL | 38 | 9 | dsfa545 | 00d92e9294d484574d50863b4d547c5c | | 13772766591 | 0 | 1524710356 | 1 | 1 | 0 | 1 | 999 | 20 | 0 |
| 1148964 | 撒旦法 | NULL | 0 | 9 | sdf66 | 00d92e9294d484574d50863b4d547c5c | | 13372766591 | 1524734787 | 1524710438 | -2 | 1 | 0 | 1 | 999 | 0 | 0 |
| 1148965 | 撒旦法 | NULL | 38 | 9 | fsdf55 | 00d92e9294d484574d50863b4d547c5c | | 13995913628 | 0 | 1524712960 | 1 | 1148961 | 0 | 1 | 999 | 22 | 0 |
| 1148966 | 随碟附送 | NULL | 38 | 2 | sdf5454 | 00d92e9294d484574d50863b4d547c5c | | 13995951362 | 1524793149 | 1524713664 | 1 | 1 | 0 | 1 | 999 | 1 | 0 |
+---------+--------------+---------+-----+-------+----------+----------------------------------+------------------+-------------+-------------+-------------+--------+-----------+-----------------+-----------+-------------+---------+------------+
7 rows in set (0.00 sec)

MySQL [tw2]> SELECT * FROM tw_member WHERE hid="";
+---------+-----------+---------+-----+-------+----------+----------------------------------+------------------+-------------+-------------+-------------+--------+-----------+-----------------+-----------+-------------+---------+------------+
| id | nickname | headimg | hid | level | username | password | email | mobile | update_time | create_time | status | leader_id | is_share_member | is_inside | platform_id | role_id | examine_id |
+---------+-----------+---------+-----+-------+----------+----------------------------------+------------------+-------------+-------------+-------------+--------+-----------+-----------------+-----------+-------------+---------+------------+
| 1 | admin | 43 | 0 | 1 | admin | 13a7669e31f85e25a6047a3a98b66375 | 190423457@qq.com | 18555550710 | 1524793653 | 1513216128 | 1 | 0 | 0 | 1 | 999 | 0 | 0 |
| 1148964 | 撒旦法 | NULL | 0 | 9 | sdf66 | 00d92e9294d484574d50863b4d547c5c | | 13372766591 | 1524734787 | 1524710438 | -2 | 1 | 0 | 1 | 999 | 0 | 0 |
+---------+-----------+---------+-----+-------+----------+----------------------------------+------------------+-------------+-------------+-------------+--------+-----------+-----------------+-----------+-------------+---------+------------+
2 rows in set (0.00 sec)

MySQL [tw2]> SELECT * FROM tw_member WHERE hid is NULL;
Empty set (0.00 sec)

总结一下:

  • NULL是占用数据空间的,但是空值‘’是不占用的(据说,未实测)
  • NULL不能参与计算,空值可以;NULL只能用is null参与筛选
  • 数据类型如果是字符串型,不是int型,筛选无影响

    SELECT /!40001 SQL_NO_CACHE / * FROM ...

    在MySQL慢查询日志中出现SELECT /*!40001 SQL_NO_CACHE */ * FROM语句
    对应的应用场景是在备份数据库mysqldump命令

/* .... / 在大部分语言中都一样是注释。这个之中的语句是不被执行的。但MYSQL中 为了保持兼容,比如从mysqldump 导出的SQL语句能被其它数据库直接使用,它把一些特有的仅在MYSQL上的语句放在 /! ... / 中,这样这些语句如果在其它数据库中是不会被执行,但在MYSQL中它会执行。
MySQL对标准SQL的扩展MySQL服务器包含一些其他SQL DBMS中不具备的扩展。注意,如果使用了它们,将无法把代码移植到其他SQL服务器。在某些情况下,你可以编写包含MySQL扩展的代码,但仍保持其可移植性,方法是用“/
... /”注释掉这些扩展。在本例中,MySQL服务器能够解析并执行注释中的代码,就像对待其他MySQL语句一样,但其他SQL服务器将忽略这些扩展。例如: SELECT /! STRAIGHT_JOIN / col_name FROM table1,table2 WHERE ...如果在字符“!”后添加了版本号,仅当MySQL的版本等于或高于指定的版本号时才会执行注释中的语法: CREATE /!32302 TEMPORARY */ TABLE t (a INT);这意味着,如果你的版本号为3.23.02或更高,MySQL服务器将使用TEMPORARY关键字。

group_concat_max_len

GROUP_CONCAT函数用于将多个字符串连接成一个字符串,在拼接成字符串时就会存在拼接长度的问题,mysql 默认的拼接最大长度为1024 个字节,由于1024个字节会出现不够用的情况,所以有时需要去根据情况进行修改

动态修改参数

  1. show variables like 'group_concat_max_len';
  2. SET GLOBAL group_concat_max_len = 102400;
  3. SET SESSION group_concat_max_len = 102400;

有时我们并不知需要多大的字节才能满足需求,此种情况可以考虑不设置最大字节(即采用最大字节数)即在配置文件设置group_concat_max_len=-1

使用mysql5.7版本数据库需要注意的地方/持续更新的更多相关文章

  1. RDS的tar文件恢复到本地mysql5.7版本数据库

    参考博客: 安装qpress软件 https://blog.csdn.net/a18838964650/article/details/82800621 文章介绍补充 https://www.cnbl ...

  2. thinkphp连接mysql5.5版本数据库

    //数据库配置信息 'DB_TYPE' => 'mysqli', // 数据库类型 'DB_HOST' => 'localhost', // 服务器地址 'DB_NAME' => ' ...

  3. RDS的xb文件恢复到本地mysql5.6版本数据库

    参考博客: https://blog.csdn.net/a18838964650/article/details/82800621  安装qpress软件 https://www.cnblogs.co ...

  4. python自动化测试之mysql5.0版本数据库查询数据时出现乱码问题分析

    1.确保数据库编码是utf8编码.若不是,请将my.ini的client,mysql,mysqld三个字段下面添加default-character-set = utf8,这样可以永久改变在新建数据库 ...

  5. mysql5.6版本数据库向Mysql5.7版本的数据库更新数据

    timestamp 类型不允许 timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', 创建表的是后会报异常,解决方法是: 在my.cnf文件里面假如: s ...

  6. 【我的Android进阶之旅】Realm数据库学习资料汇总(持续更新)

    介绍 realm是一个跨平台移动数据库引擎,支持iOS.OS X(Objective-C和Swift)以及Android. 2014年7月发布.由YCombinator孵化的创业团队历时几年打造,是第 ...

  7. Oracle 9i & 10g编程艺术-深入数据库体系结构-学习笔记(持续更新中)

    --20170322 --1.0 --更新表的统计信息begin dbms_stats.set_table_stats(user,'EMP',numrows => 10000);end; beg ...

  8. 使用mysql5.7版本的mysqldump备份mysql8.0版本的数据库报错解决办法

    使用mysql5.7版本的mysqldump命令执行备份mysql8.0版本的数据库时会报错: mysqldump: Couldn't execute 'SET SQL_QUOTE_SHOW_CREA ...

  9. Linux CentOS6环境下MySQL5.1升级至MySQL5.5版本过程

    转载地址:http://www.laozuo.org/6145.html 老左今天有在帮朋友的博客搬迁到另外一台VPS主机环境,其环境采用的是LLSMP架构的,原先的服务器采用的是LNMP网站环境,其 ...

随机推荐

  1. keras 自定义 custom 函数

    转自: https://kexue.fm/archives/4493/,感谢分享! Keras是一个搭积木式的深度学习框架,用它可以很方便且直观地搭建一些常见的深度学习模型.在tensorflow出来 ...

  2. c++类模板成员函数报错

    类模板成员函数要不就在类模板中实现,要不就和类模板写在同一个文件中. 否则然会出现下面错误: >main.obj : error LNK2019: 无法解析的外部符号 "public: ...

  3. 浅谈SQL Server中的事务日志(五)----日志在高可用和灾难恢复中的作用

    简介 日志的作用是保证持久性和数据一致性,通过日志可以实现数据的Undo与Redo,因此通过日志,SQL Server不仅仅可以实现灾难恢复,还可以通过日志的Redo来实现高可用性.本篇文章主要讲述日 ...

  4. JSTL格式化标签库

    导入标签库需要使用taglib指令! <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/forma ...

  5. java面试题之 -----面向切面编程

    这种在运行时,动态地将代码切入到类的指定方法.指定位置上的编程思想就是面向切面的编程. 面向切面编程(AOP是Aspect Oriented Program的首字母缩写) ,我们知道,面向对象的特点是 ...

  6. Vue项目中引入ElementUI

    前提:创建好的vue项目. 1.安装ElementUI 转到项目根目录,输入命令:#cnpm install element-ui --save-dev 2.在 main.js 引入并注册 impor ...

  7. 增加C盘空间大小

    随着我们使用电脑的时间越来越久,电脑C盘的空间会出现不够用的情况,这时我们需要的就是增加C盘的大小,基本上有两种方式 1.通过系统自带的磁盘管理(有可能没法操作,主要介绍第二种) 2.通过分区软件进行 ...

  8. C/C++ 修改控制台程序文字颜色

    可以修改前景色(字体颜色)和背景色. 示例代码如下: #include <iostream> #include <Windows.h> //需要引用Windows.h usin ...

  9. CRUD全栈式编程架构之服务层的设计

    服务层代码 首先我先放出2个主要类的代码再分别讲解 接口 using System; using System.Collections.Generic; using System.Linq; usin ...

  10. 从数据流角度管窥 Moya 的实现(一):构建请求

    相信大家都封装过网络层. 虽然系统提供的网络库以及一些著名的第三方网络库(AFNetworking, Alamofire)已经能满足各种 HTTP/HTTPS的网络请求,但直接在代码里用起来,终归是比 ...