centos7安装mysql8.0

目录

准备工作

下载

安装

1、上传文件

2、安装组件

3、初始化

4、修改密码

问题

问题一:timestamp设置默认值'0000-00-00 00:00:00'报错

方法一

方法二

问题二:设置表名忽略大小写


准备工作

检查是否之前安装有mysql:rpm -qa | grep -i mysql

检查是否安装有mariadb:rpm -qa | grep mariadb

若有安装,需先卸载。

卸载mysql:

参考教程:https://blog.csdn.net/our_times/article/details/98882701

卸载mariadb:

rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps

再次查看rpm -qa | grep mariadb没有啦

下载

下载地址:https://dev.mysql.com/downloads/mysql/

安装

参考教程:https://www.cnblogs.com/yanglang/p/10782941.html

1、上传文件

cd /usr/local

mkdir mysql

cd mysql

上传下载后的安装包到/usr/local/mysql

解压:tar -xvf mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar

2、安装组件

通过 rpm -ivh mysql-community-common-8.0.11-1.el7.x86_64.rpm --nodeps --force 命令安装 common

通过 rpm -ivh mysql-community-libs-8.0.11-1.el7.x86_64.rpm --nodeps --force 命令安装 libs

通过 rpm -ivh mysql-community-client-8.0.11-1.el7.x86_64.rpm --nodeps --force 命令安装 client

通过 rpm -ivh mysql-community-server-8.0.11-1.el7.x86_64.rpm --nodeps --force 命令安装 server

rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpm --nodeps --force

rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm --nodeps --force

rpm -ivh mysql-community-client-8.0.26-1.el7.x86_64.rpm --nodeps --force

rpm -ivh mysql-community-server-8.0.26-1.el7.x86_64.rpm --nodeps --force

通过 rpm -qa | grep mysql 命令查看 mysql 的安装包

3、初始化

通过以下命令,完成对 mysql 数据库的初始化和相关配置

mysqld --initialize;
chown mysql:mysql /var/lib/mysql -R;
systemctl start mysqld.service;
systemctl enable mysqld;

出现问题

执行mysqld --initialize;报错:

mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

解决:

yum install -y libaio

之后重新初始化

4、修改密码

通过 cat /var/log/mysqld.log | grep password 命令查看数据库的默认密码

登录: mysql -uroot -p 

输入默认密码

修改密码为123456:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; 

成功后退出exit用新密码重新登录


修改密码可能出现的问题:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

密码太简单,需要修改密码策略

当执行SHOW VARIABLES LIKE 'validate_password%'; 查看密码策略时报错:

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

需要先修改密码,先改成一个复杂点的密码:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1qaz!QAZ@migu123';

SHOW VARIABLES LIKE 'validate_password%';

set global validate_password.policy=0;

set global validate_password.length=4;

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

密码修改完即可继续下面的步骤(若首次修改密码成功则无需关注以上问题)


通过以下命令,进行远程访问的授权:

create user 'root'@'%' identified with mysql_native_password by '123456';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;

修改加密规则:

通过 ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; 命令修改加密规则,MySql8.0 版本 和 5.0 的加密规则不一样,而现在的可视化工具只支持旧的加密方式。

通过 flush privileges; 命令刷新修该后的权限

问题

问题一:timestamp设置默认值'0000-00-00 00:00:00'报错

执行sql时存在报错:

sql:

`time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP COMMENT '签到时间',

报错:

Invalid default value for 'time'

查看:

show variables like 'sql_mode';

结果:

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

解决方案:删除NO_ZERO_IN_DATE,NO_ZERO_DATE

方法一

执行sql

set session

sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

(我使用方法一无效)

方法二

vim /etc/my.cnf

[mysqld]下添加:

sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

重启即可

问题二:设置表名忽略大小写

直接在my.cnf的[mysqld]下添加:lower_case_table_names=1后重启会失败

 参考解决方法:https://www.cnblogs.com/czwbig/p/9961069.html

在安装完成之后,初始化数据库之前,修改 my.cnf

打开mysql配置文件
vim /etc/my.cnf

在尾部追加一行
lower_case_table_names=1
并保存,然后再初始化数据库。

重启mysql,
systemctl restart mysqld.service

如果这个操作是初始化数据库之后,也就是安装后运行过服务,那就可能会出错。
错误类似于Job for mysqld.service failed because the control process exited with error...
然后就无法启动 mysql 服务了,除非打开 vim /etc/my.cnf把追加的lower_case_table_names=1删除掉。

最后解决方法如下:

如果你不在意数据的话直接删除数据

停止MySQL
systemctl stop mysqld.service

删除 MySQL的数据 /var/lib/mysql
rm -rf /var/lib/mysql

再按照上面的方法进行一遍操作即可

(重启之后需要重新设置新密码,会出现设置123456太简单报错的问题,解决方式上边有)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值