• mysql


    mysql 字段 NULL 的比较: 如果字段 age 值是 NULL ,查询 age != 20 查不到 值是 NULL 的记录。 

     mysql 获取表中随机的5条记录: SELECT * FROM table ORDER BY RAND() LIMIT 5;

    设置 字段 utf8mb4 : ALTER TABLE service_goods_evaluate MODIFY `evaluation_content` TEXT  CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT  NULL;

    1、 mysql group by 查询

    使用 SELECT @@sql_mode;  查询 mysql 默认的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

    当有 ONLY_FULL_GROUP_BY 时, mysql 使用 group by 分组查询时, 检索的列只能是 group by 后面的列,或者其他列的聚合函数(比如 max, avg, sum 等函数), 不能直接检索group by 其他的列。比如:

    stud 表:

    可以查询  sno、 sname、 age 的聚合函数,以及 saddress 列。 但是不能直接查询   sno、 sname、 age  。

    SELECT MAX(sno),SUM(sname), AVG(age),saddress FROM stud GROUP BY saddress;

    但是查询  SELECT sno FROM stud GROUP BY saddress; 会报错:

    错误代码: 1055
    Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'mytest.stud.sno' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

    执行以下的语句:

    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';

    SET SESSION sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

    就可以查询 表的其他字段。比如:SELECT sno FROM stud GROUP BY saddress;

    创建用户: 

    CREATE USER 'store'@'localhost' IDENTIFIED BY 'store';

    授权:

    GRANT ALL PRIVILEGES ON *.* TO  'store'@'localhost' ;    (*.* 表示 数据库名.表名)

    FLUSH PRIVILEGES;

    mysql8 用navicat等客户端登录报错: plugin caching_sha2_password could not be loaded ,执行下面的语句改变鉴权方式:

    ALTER USER 'store'@'localhost' IDENTIFIED WITH mysql_native_password BY 'store';

    在windows 上安装mysql后,需要执行  C:> binmysqld --initialize   初始化 mysql 。

    MySQL5.7 加强了安全保障,以上意思是密码不符合安全策略要求,我们输入一个8位或以上长度,复杂一点的密码:

     mysql> alter  user 'root'@'localhost' identified by 'abcd1234';          

     

    修改mysql root密码:

    打开DOS窗口,转到mysqlin目录。 3、 输入mysqld --skip-grant-tables 回车。再 用mysql 命令登录修改。

    mysql> update mysql.user set authentication_string=password('root') where user='root' and Host = 'localhost';
    Query OK, 1 row affected, 1 warning (0.00 sec)
    Rows matched: 1 Changed: 1 Warnings: 1

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

    mysql> alter user 'root'@'localhost' identified by 'abcd1234';
    Query OK, 0 rows affected (0.00 sec)

    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

    mysql> CREATE USER 'store'@'localhost' IDENTIFIED BY 'store';
    Query OK, 0 rows affected (0.00 sec)

    mysql> GRANT ALL PRIVILEGES ON *.* TO 'store'@'localhost' ;
    Query OK, 0 rows affected (0.00 sec)

    mysql> FLUSH PRIVILEGES;
    Query OK, 0 rows affected (0.00 sec)

    允许root在任意机器上连接mysql:


    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'abcd1234' WITH GRANT OPTION;

    执行后,在 mysql.user 表中增加了最后一条记录:

    |% | root | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | N | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | | | | | 0 | 0 | 0 | 0 | mysql_native_password | *4AD47E08DAE2BD4F0977EED5D23DC901359DF617 | N | 2018-05-17 05:51:05 | NULL | N |

    把一个数据库表复制到另一个数据库中: CREATE TABLE shop.t_goods_info AS SELECT * FROM store.`t_goods_info`

    二; centos 安装MySQL:

    1、查询是否安装有mysql: rpm -qa|grep -i mysql  , 如果有的话, 用命令 yum -y remove 依次卸载, 卸载不掉的用 rpm -ev 。

    2.下载mysql的repo源:  wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm , 执行  rpm -ivh  mysql57-community-release-el7-8.noarch.rpm ,即安装了mysql的安装源。

    3、安装 : yum -y install mysql-server 

    4、启动mysql: service mysqld restart

    5、重置密码:

    [root@localhost opt]# grep "password" /var/log/mysqld.log
    2018-08-28T05:54:37.132885Z 1 [Note] A temporary password is generated for root@localhost: ra=neig88tuW
    2018-08-28T05:54:48.632712Z 2 [Note] Access denied for user 'root'@'localhost' (using password: NO)

    [root@localhost opt]# mysql -uroot -pra=neig88tuW
    mysql: [Warning] Using a password on the command line interface can be insecure.
    Welcome to the MySQL monitor. Commands end with ; or g.
    Your MySQL connection id is 4
    Server version: 5.7.23

    Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.

    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

    mysql> alter user 'root'@'localhost' identified by 'Root2018!';
    Query OK, 0 rows affected (0.00 sec)

    mysql> flush privileges 

    Query OK, 0 rows affected (0.00 sec)

    mysql>

    重启: service mysqld restart 

     

    查询前一天时间: SELECT DATE_SUB(NOW(), INTERVAL  1 DAY)

  • 相关阅读:
    Eclipse Ctrl C卡的解决方法
    oracle函数 逗号分隔的字符串的每个字串两边加上单引号
    EXT自定义颜色表单域控件
    Ext JS开发经验累积
    mysql连接远程数据库
    Hibernate使用连接池
    oracle转mysql数据库 (hibernate+spring)
    解决html中img标签src中含中文出错的问题
    ckeditor自定义图片上传,结合EXT JS
    Web自动化框架搭建——前言
  • 原文地址:https://www.cnblogs.com/z360519549/p/9002173.html
Copyright © 2020-2023  润新知