Centos7下安装mysql5.7.21

 

        最近在网上看了很多centos下面安装mysql的教程,自己照着安装很多走不通,或者说跟自己的版本不匹配。照着步骤一步一步试发现很多问题,现在安装成功了,将整个过程总结一下。

 

1.mysql下载

        网上有很多下载的连接,有在官网下载的,也有各个论坛下载的。格式也有tar.gz的,也有rpm的安装包,我们这里直接是在服务器上下载的。

        下载命令是:

        wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm

        如果提示wget: command not found,那么还得先安装wget

        执行:yum install wget

        下载的时间可能稍微长一点,根据网络的不同有差异

2.mysql安装

        安装包:

        rpm -ivh mysql57-community-release-el7-8.noarch.rpm

        安装mysql:

        yum install mysql-server

       在这步中只需要一直选择y然后回车就行,数据库就安装好了

3.mysql连接        

        3.1本地连接:

        mysql -uroot -p

        输入密码后提示:

        ERROR 2002 (HY000): Can't connect to localMySQL server through socket '/var/lib/mysql/mysql.sock'

        这是/var/lib/mysql的权限问题,需要修改MySQL权限为当前用户

        chown -R xxx:xxx /var/lib/mysql

        xxx为当前的用户名以及所属组

        重启MySQL服务即可:

        service mysqld restart

        密码输入root即可

        如果还不行的话通过这个命令获得初始密码

        cat /var/log/mysqld.log  | grep password

        其中:A temporary password is generated forroot@localhost: HBjvWoxu(2-V :后面的就是初始密码

        可设置密码:

        alter user 'root'@'localhost' identified by'root';

        3.2远程连接:

       为需要远程登录的用户赋予权限

        新建用户远程连接mysql数据库

        grant all on *.* to root@'%' identified by'abc12345' with grant option;

        flush privileges;

        允许任何ip地址(%表示允许任何ip地址)的电脑用root帐户和密码(abc12345)来访问这个mysql server。

        注意root账户不一定要存在。

4.遇到的问题

        在数据库安装好之后,执行创建表的ddl时,创建完之后,总是提示下面的报错,

    [Err] 1055 - Expression #1 of ORDER BYclause is not in GROUP BY clause and contains nonaggregated column'information_schema.PROFILING.SEQ' which is not functionally dependent oncolumns in GROUP BY clause; this is incompatible withsql_mode=only_full_group_by

        网上搜索解决方式:

 

  •         其中一种是:

 

        用sql查询:select @@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

        去掉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’;

        但我用这种方式后依旧无效,还是提示上面的报错,但此时用select @@global.sql_mode查询,其实是不包含ONLY_FULL_GROUP_BY的。

 

  •         另一种是:

          在my.cnf 里面设置

sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

在sql_mode 中去掉only_full_group_by

        然后再重启:service mysql restart

        但我看别人说的my.conf文件是在/etc/mysql/conf.d/下面,而我并没有找到,我在采用在服务器上在线安装的,需要修改的是/etc/下面的my.cnf

         问题出现的原因:

MySQL 5.7.5及以上功能依赖检测功能。如果启用了ONLY_FULL_GROUP_BYSQL模式(默认情况下),MySQL将拒绝选择列表,HAVING条件或ORDER BY列表的查询引用在GROUP BY子句中既未命名的非集合列,也不在功能上依赖于它们。(5.7.5之前,MySQL没有检测到功能依赖关系,默认情况下不启用ONLY_FULL_GROUP_BY。有关5.7.5之前的行为的说明,请参见“MySQL 5.6参考手册”。)此段转载自:http://blog.csdn.net/qq_34707744/article/details/78031413

 

参考:

https://www.jianshu.com/p/0680bf8fa2f9

解决报错:错误1130- Host xxx is not allowed to connect to this MariaDb server

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值