解决Mysql搭建成功后执行sql语句报错以及区分大小写问题

刚搭建完mysql 8.0以后会:

一、表区分大小写

二、执行正确的sql语句成功且会报:[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and 。。。。错误。

版本是mysql 5.6或 myql 8.0以下方案解决 :

1.安装完后,执行sql语句没问题,但是会报错;在/etc/my.cnf数据库的配置文件加上下面这段配置然后重启mysql服务

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USE

2.mysql设置不区分表名的大小写

/etc/my.cnf数据库的配置文件加上下面这段配置然后重启mysql服务

lower_case_table_names=1

3.mysql设置新建数据库默认编码为utf8

/etc/my.cnf数据库的配置文件加上下面这段配置然后重启mysql服务 character_set_server=utf8

 

版本8.0及以上版本解决以上问题:

如果安装成功,并已经启动mysql  (配置不区分表格大小写相对会麻烦一些,不要怕,跟着我的思路来准成功)

1、停止数据库服务

   systemctl stop mysqld   

2、备份数据(或者使用mv直接进行更改名称,直接改名后不用执行3、的操作,本人热衷于mv操作)

  cp   /var/lib/mysql/    /var/lib/mysql_sql/

3、删除 /var/lib/mysql/ 文件

  rm -rf  /var/lib/mysql/ 

4、在文件 my.cnf 中添加下面的一句话(编辑my.cnf文件   vi /etc/my.cnf):

  lower_case_table_names=1    ( 说明 0:区分大小写,1:不区分大小写效果如下)

5、初始化密码设计
  mysql  --initialize

6、改变属主
  chown -R mysql:mysql /var/lib/mysql/

7、启动mysql

  systemctl start mysqld

8、进入Mysql (如果mysql报错没有发现《则需要执行本人安装mysql8.0博客的https://www.cnblogs.com/ganfd/p/15175458.html 6-10命令再次赋权设置》)

9、设置密码等级

  mysql> set global validate_password.policy=0;

  Query OK, 0 rows affected (0.00 sec)

  mysql> set global validate_password.length=1;

  Query OK, 0 rows affected (0.00 sec)

10、修改密码

  mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';(密码要记牢)

   Query OK, 0 rows affected (0.00 sec)

11、远程控制要操作

  ### 授予远程连接权限

  create user 'root'@'%' identified by '123123';

  grant all on *.* to `root`@`%` WITH GRANT OPTION;

  ALTER USER 'root'@'%' IDENTIFIED with mysql_native_password by '123123';

   flush privileges;

解决安装成功mysql8.0执行正确sql语句报错问题:(依次执行下面语句,更改  sql_mode 值便能够 成功解决)

  show variables like "sql_mode";
  set sql_mode='';
  set sql_mode='no_engine_substitution,strict_trans_tables';

 

posted @ 2021-08-26 14:49  ganfd  阅读(568)  评论(0)    收藏  举报