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

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

先关闭mysql
pkill mysqld
安全模式启动数据库并修改密码
mysqld_safe --skip-grant-tables &

MySQL [mysql]> update user set password=password('xxxx') where user='root';
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
MySQL [mysql]> update user set authentication_string=password('xxxx') where user='root';
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 1

MySQL [mysql]> flush privileges;
Query OK, 0 rows affected (0.01 sec)

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

使用密码进入数据库
[root@VM_47_236_centos ~]# pkill mysqld
[root@VM_47_236_centos ~]# mysqld_safe --defaults-file=/etc/my.cnf &
[1] 27918
[root@VM_47_236_centos ~]# 2018-01-22T02:02:49.499702Z mysqld_safe Logging to '/data/mysql/mysql-error.log'.
2018-01-22T02:02:49.518163Z mysqld_safe Starting mysqld daemon with databases from /data/my

MySQL [(none)]> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
MySQL [(none)]> alter user root@'localhost' identified by 'xxxx';
Query OK, 0 rows affected (0.01 sec)

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

关闭ONLY_FULL_GROUP_BY

select @@global.sql_mode\G;
*************************** 1. row ***************************
@@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
1 row in set (0.00 sec)

ERROR:
No query specified

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';
Query OK, 0 rows affected (0.00 sec)

MySQL [(none)]> select @@global.sql_mode\G;
*************************** 1. row ***************************
@@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
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时区

MySQL [(none)]> SHOW GLOBAL VARIABLES LIKE 'log_timestamps';
+----------------+--------+
| Variable_name | Value |
+----------------+--------+
| log_timestamps | UTC |
+----------------+--------+
1 row in set (0.01 sec)

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

log_timestamps=SYSTEM
MySQL [(none)]> SHOW GLOBAL VARIABLES LIKE 'log_timestamps';
+----------------+--------+
| Variable_name | Value |
+----------------+--------+
| log_timestamps | SYSTEM |
+----------------+--------+
1 row in set (0.01 sec)

bin_log日志的管理

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

log_bin = mysql-bin
binlog_format = mixed
expire_logs_days = 7
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个字节会出现不够用的情况,所以有时需要去根据情况进行修改

动态修改参数


show variables like 'group_concat_max_len';

SET GLOBAL group_concat_max_len = 102400;
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. spark学习地址

    http://blog.sina.com.cn/s/blog_64d9a6ef0101ghvs.html http://blog.sina.com.cn/s/blog_49cd89710102v3b1 ...

  2. VS LNK2019 解决办法之一

    LNK2019: unresolved external symbol _main referenced in function __main 有人说这是因为静态动态引用引起的,但是!这些都没有解决我 ...

  3. git多站点多用户情况下SSH配置

    个人使用github,但是公司使用的是 GitLab .那么在一个电脑上进行处理时,由于先设置了 github 的,导致没办法从 GitLab 上处理 git .其实是由于 ssh 的问题. 下面记录 ...

  4. IOS 多媒体 使用总结

    一.音频播放 1.音效播放(短时间的音频文件)1> AudioServicesCreateSystemSoundID2> AudioServicesPlaySystemSound 2.音乐 ...

  5. HDU 2048 错排

    错排递推公式: d(n) = (n-1)*(d[n-1]+d[n-2]): 证明:将第n个元素放到第k处,第k处的元素如果放到第n处,就是d(n-2),否则,先假设放到第n处,然后错排,就是d(n-1 ...

  6. [USACO17JAN]Subsequence Reversal

    嘟嘟嘟 这题刚开始是什么思路也没有,关键是不知道怎么解决序列反转的问题. 然后我就想到如果暴力反转一个序列的话,实际上就是不断交换数组中的两个数ai和aj,同时要满足交换的数不能交叉. 然后又看了一眼 ...

  7. 行云管家 V4.7产品新特性-国际化版本、支持Oracle的数据库审计、主机密码自动修改策略 发布日期:2018-11-22

    行云管家在线体验: 行云管家[官网]-领先的云计算管理平台-云安全,堡垒机,自动化运维​ 行云管家新手有礼活动: 行云管家新手有礼,新用户1元即可体验专业版-优惠券​ 发布日期:2018-11-22 ...

  8. java读取资源文件(Properties)

    四步: java代码 //new一个读取配置文件 Properties properties=new Properties(); //获取文件路径 String path=request.getSer ...

  9. Entity Framework 六

    实体框架中的存储过程: 我们在创建edmx的时候把存储过程勾选了,所以在我们的上下文上中生成了方法. 存储过程为:就是需要显示多个表的字段.以往需要显示多个表的字段都是新建一个类把需要的字段当做属性写 ...

  10. Unity 游戏框架搭建 (八) 减少加班利器-QLog

    为毛要实现这个工具? 在我小时候,每当游戏到了测试阶段,交给QA测试,QA测试了一会儿拿着设备过来说游戏闪退了....当我拿到设备后测了好久Bug也没有复现,排查了好久也没有头绪,就算接了Bugly拿 ...