CentOS7.5安装Mysql5.7.22

2 找到Community并且单击它,出现以下的页面

3 点击左侧第五个“MySQL Community Server”,社区版

4 进入下拉下载列表,选择在CentOS7上tar包安装

4 进入下拉下载列表,这里选择在CentOS7上rpm包安装
5 点击Download,进入如下界面,需要登录下载,这里选择

6 下载成功
二 RPM包安装
下载文件名:mysql-5.7.22-1.el7.x86_64.rpm-bundle.tar
1 安装包准备
1.1 查看mysql是否安装,如果安装了,卸载mysql
rpm -qa|grep mysql
1.2 卸载
rpm -e --nodeps mysql-libs-5.1.-.el6.x86_64
2 解压安装
2.1 创建目录
[root@node21 software]# mkdir -p /usr/local/mysql
2.2 解压
[admin@node21 software]$ tar xvf /opt/software/mysql-5.7.-.el7.x86_64.rpm-bundle.tar -C /usr/local/mysql
mysql-community-client-5.7.-.el7.x86_64.rpm
mysql-community-common-5.7.-.el7.x86_64.rpm
mysql-community-devel-5.7.-.el7.x86_64.rpm
mysql-community-embedded-5.7.-.el7.x86_64.rpm
mysql-community-embedded-compat-5.7.-.el7.x86_64.rpm
mysql-community-embedded-devel-5.7.-.el7.x86_64.rpm
mysql-community-libs-5.7.-.el7.x86_64.rpm
mysql-community-libs-compat-5.7.-.el7.x86_64.rpm
mysql-community-minimal-debuginfo-5.7.-.el7.x86_64.rpm
mysql-community-server-5.7.-.el7.x86_64.rpm
mysql-community-server-minimal-5.7.-.el7.x86_64.rpm
mysql-community-test-5.7.-.el7.x86_64.rpm
2.3 安装
依次执行(几个包有依赖关系,所以执行有先后)下面命令安装
[root@node21 software]# cd /usr/local/mysql/
[root@node21 mysql]# rpm -ivh mysql-community-libs-5.7.-.el7.x86_64.rpm
[root@node21 mysql]# rpm -ivh mysql-community-client-5.7.-.el7.x86_64.rpm
[root@node21 mysql]# rpm -ivh mysql-community-server-5.7.-.el7.x86_64.rpm
安装过程报错"
[root@node21 mysql]# rpm -ivh mysql-community-libs-5.7.-.el7.x86_64.rpm
warning: mysql-community-libs-5.7.-.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
mysql-community-common(x86-) >= 5.7. is needed by mysql-community-libs-5.7.-.el7.x86_64
mariadb-libs is obsoleted by mysql-community-libs-5.7.-.el7.x86_64
警告:红帽安装rpm安装MySQL时爆出警告:mysql-community-libs-5.7.22-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature,密钥 key ID 5072e1f5: NOKEY。
原因:这是由于yum安装了旧版本的GPG keys造成的
解决办法:后面加上 --force --nodeps 如:rpm -ivh mysql-community-libs-5.7.22-1.el7.x86_64.rpm --force --nodeps 从 RPM 版本 4.1 开始,在安装或升级软件包时会检查软件包的签名。
3 初始化数据库
为了保证数据库目录为与文件的所有者为 mysql 登陆用户,如果你是以 root 身份运行 mysql 服务,需要执行下面的命令初始化
mysqld --initialize --user=mysql
如果是以 mysql 身份运行,则可以去掉 --user 选项。
另外 --initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将该密码标记为过期,登陆后你需要设置一个新的密码,而使用 --initialize-insecure 命令则不使用安全模式,则不会为 root 用户生成一个密码。
这里演示使用的 --initialize 初始化,会生成一个 root 账户密码,密码在log文件里,红色区域的就是自动生成的密码
[root@node21 mysql]# mysqld --initialize --user=mysql
mysql配置文件在/etc/my.cnf,里面指明了数据目录。日志位置
[root@node21 mysql]# cat /var/log/mysqld.log
2018-05-19T05:53:03.738829Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentat
ion for more details).2018-05-19T05:53:03.739304Z 0 [ERROR] Can't find error-message file '/usr/share/mysql/errmsg.sys'. Check error-message file location and 'lc-messages-dir' configuratio
n directive.2018-05-19T05:53:08.434726Z 0 [Warning] InnoDB: New log files created, LSN=45790
2018-05-19T05:53:08.872448Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2018-05-19T05:53:08.954300Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new U
UID: 0fb455fb-6560-11e8-a2f0-000c29c94111.2018-05-19T05:53:08.956569Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2018-05-19T05:53:08.958761Z 1 [Note] A temporary password is generated for root@localhost: ?2nt4!-t&s#M
4 启动数据库
[root@node21 software]# mysql -uroot -p
Enter password:
5 修改密码
该密码被标记为过期了,如果想正常使用还需要修改密码
mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
以前的 password()函数将会被抛弃,官方建议使用下面的命令来修改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
同时,如果你设置的密码过于简单也会报错。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
6 配置user表
配置主要是root用户+密码,在任何主机上都能登录MySQL数据库。
6.1 查看表结构
mysql>desc user;
6.2 查询user表
mysql>select User,Host,Password from user; #旧版本
mysql>select User,host,authentication_string from user; #.7版本以后
6.3 修改user表,把Host表内容修改为%
mysql> update user set host='%' where host='localhost';
6.4 删除root用户的其他host
mysql> delete from user where host != '%';
最后结果显示

6.5 刷新退出
mysql> flush privileges;
Query OK, rows affected (0.01 sec)
mysql> exit;
Bye
7 设置开机启动
[root@node21 mysql]# systemctl enable mysqld
[root@node21 mysql]# systemctl list-unit-files | grep mysqld
mysqld.service enabled
三 mysql故障解析
1 忘记用户密码
首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库。 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的状态下,其他的用户也可以任意地登录和修改MySQL的信息。可以采用将MySQL对 外的端口封闭,并且停止Apache以及所有的用户进程的方法实现服务器的准安全状态。最安全的状态是到服务器的Console上面操作,并且拔掉网线。
1.1 vi /etc/my.cnf
1.2 在[mysqld]中添加 skip-grant-tables 保存退出
1.3 重启mysql systemctl restart mysqld
1.4 .用户无密码登录
mysql -uroot -p (直接点击回车,密码为空)
1.5 选择数据库
mysql> use mysql;
1.6 修改root密码
MySQL 5.7 开始 数据库中的user 表中已经将password 字段更改为authentication_string 所以更改密码 直接使用
mysql> update user set authentication_string=password('123456') where user='root';
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
1.7 执行
mysql> flush privileges ;
1.8 退出
mysql> exit;
9.删除权限检查
将刚才在[mysqld]的段中加上的skip-grant-tables删除
10.重启mysql
systemctl restart mysqld
2.ssl_cipher报错
错误描述:
添加用户 insert into mysql.user(Host,User,Password) values("localhost","test",password("1234"));
报以下的错误 ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value错误
mysql5.1以上版本,我是在5.6版本上操作的。
错语原因:
mysql用户表的中某些字段不能为空,没有默认值,其实是操作错误,mysql添加用户是不能这样直接insert user表的。
解决方法:
正确的添加用户方法:
GRANT USAGE ON *.* TO 'user01'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;
用户:user01,密码:123456,这样就添加了一个新的用户,不会出以上的错误了。
3.添加用户报错
安装mysql的时候出现这个问题,在增加用户的时候
The MySQL server is running with the –skip-grant-tables option so it cannot execute this statement
出现lush privileges 一下就OK了,
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
–skip-grant-tables
顾名思义,数据库启动的时候 跳跃权限表的限制,不用验证密码,直接登录。
四 mysql-connector-java与mysql版本的对应关系
官网文档地址:
https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-versions.html (Connector/J Versions 5.1)
https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-versions.html (Connector/J Versions 8.0)


mysql-connector-java下载地址 :http://central.maven.org/maven2/mysql/mysql-connector-java/
CentOS7.5安装Mysql5.7.22的更多相关文章
- CentOS-7下安装MySQL5.6.22
参考: http://www.2cto.com/database/201501/371451.html 安装环境 CentOS版本:CentOS-7 因为之前安装过,没有成功,但是有之前安装的文件 ...
- centos7 二进制安装MySQL5.7.22
1.详细描安装的过程 1.1关闭防火墙 systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service ...
- CentOS7怎样安装MySQL5.7.22
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm下载mysql源安装包 yum install mysq ...
- Salt之CentOS7.5使用RPM包安装MySQL5.7.22
手动安装参考CentOS7.5使用RPM包安装MySQL5.7.22 目录结构为 install.sls文件 #按顺序分别安装commin libs client server #避免冲突安装comm ...
- 在 CentOS7 上安装 MySQL5.7
在 CentOS7 上安装 MySQL5.7 1 通过 SecureCRT 连接到阿里云 CentOS7 服务器: 2 进入到目录 /usr/local/ 中: cd /usr/local/ 3 创建 ...
- centos7编译安装MySQL5.7.9
title: centos7编译安装MySQL5.7.9 date: 2016-05-12 16:20:17 tags: --- Centos7编译安装mysql5.7.9 mysql5.7有更好的性 ...
- [ 原创 ] Centos7.6安装Mysql5.7
https://blog.csdn.net/shj_php/article/details/86712408 CentOS7下安装MySQL5.7安装与配置(YUM) http://blog.csdn ...
- CentOS7 离线安装mysql-5.7.16
CentOS7 离线安装mysql-5.7.16 1 . 安装新版mysql前,需将系统自带的mariadb-lib卸载 [root@slave mytmp]# rpm -qa|grep mariad ...
- linux centos7下源码 tar安装mysql5.7.22或mysql5.7.20 图文详解
之前用的rpm安装的每次安装都是最新的,,,导致每次版本不统一... 现在用tar包安装5.7.22和5.7.20一样的 5.7.20之后的和之前的版本还是有点不一样的 官网地址 https:// ...
随机推荐
- 框架----Django之Form提交验证(一)
一.Form提交验证与Ajax提交验证的运用实例 Form表单提交时会刷新页面,输入失败时,输入框内内容也会随之刷新不能保留:而Ajax提交是在后台偷偷提交,不会刷新页面,因此也就可以保留页面输入框内 ...
- django 表单验证和字段验证
表单验证和字段验证 表单验证发生在数据验证之后.如果你需要自定义这个过程,有几个不同的地方可以修改,每个地方的目的不一样.表单处理过程中要运行三种类别的验证方法.它们通常在你调用表单的is_valid ...
- PID控制算法的C语言实现十 专家PID与模糊PID的C语言实现
本节是PID控制算法的C语言实现系列的最后一节,前面8节中,已经分别从PID的实现到深入的过程进行了一个简要的讲解,从前面的讲解中不难看出,PID的控制思想非常简单,其主要问题点和难点在于比例.积分. ...
- 安装配置hexo icarus主题配置
安装部分配置hexo icarus主题配置 安装icarus 直接下载主题模块放到blog项目 ,blog项目根目录执行 git clone https://github.com/ppoffice/h ...
- Jquery中find与each方法使用详解
本文实例讲述了jQuery中find与each方法用法.分享给大家供大家参考.具体如下: 一.find()方法 jquery选择器非常强大,利用css的命名规约,可以更快更方便的找出想要的元素. 图解 ...
- [洛谷P2747] [USACO5.4]周游加拿大Canada Tour
洛谷题目链接:[USACO5.4]周游加拿大Canada Tour 题目描述 你赢得了一场航空公司举办的比赛,奖品是一张加拿大环游机票.旅行在这家航空公司开放的最西边的城市开始,然后一直自西向东旅行, ...
- 重构改善既有代码设计--重构手法18:Self Encapsulate Field (自封装字段)
你直接访问一个值域(field),但与值域之间的耦合关系逐渐变得笨拙. 为这个值域建立取值/设值函数(getting/setting methods),并且只以这些函数来访问值域. private i ...
- SpringCloud(二)注册服务提供者搭建
上文已经写了如何去搭建注册中心,仅有注册中心是远远不够的,所以我们需要注册到注册中心并提供服务的节点,这里称为注册服务提供者 前提 阅读上文,并成功搭建注册中心,环境无需改变 项目搭建 这里我们需要新 ...
- 【NOIP2013提高组T3】加分二叉树
题目描述 设一个n个节点的二叉树tree的中序遍历为(1,2,3,…,n),其中数字1,2,3,…,n为节点编号.每个节点都有一个分数(均为正整数),记第i个节点的分数为di,tree及它的每个子树都 ...
- 【leetcode 简单】第十八题 爬楼梯
假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 示例 1: 输入: 2 输出: 2 解释: 有两 ...