1.检查系统中是否有mysql相关的安装包
rpm -qa|grep mysql
rpm -qa|grep maridb
2.将相关的安装包使用yum移除,否则在安装mysql时会出现依赖冲突,导致安装失败
yum remove mysql-libs
yum remove mariadb-libs.x86_64
3.到官网下载相关的rpm的包
下载地址:https://dev.mysql.com/downloads/mysql/
下载成后上传到服务器中。
4.将上传的rpm安装包进行解压
tar -zxf mysql-5.7.22-1.el7.x86_64.rpm-bundle
[root@iZwz9j6qtvdm8w07f8fk6jZ mysql-5.7.22-1.el7.x86_64.rpm-bundle]# ls
mysql80-community-release-el7-1.noarch.rpm
mysql-community-client-5.7.22-1.el7.x86_64.rpm
mysql-community-common-5.7.22-1.el7.x86_64.rpm
mysql-community-devel-5.7.22-1.el7.x86_64.rpm
mysql-community-embedded-5.7.22-1.el7.x86_64.rpm
mysql-community-embedded-compat-5.7.22-1.el7.x86_64.rpm
mysql-community-embedded-devel-5.7.22-1.el7.x86_64.rpm
mysql-community-libs-5.7.22-1.el7.x86_64.rpm
mysql-community-libs-compat-5.7.22-1.el7.x86_64.rpm
mysql-community-minimal-debuginfo-5.7.22-1.el7.x86_64.rpm
mysql-community-server-5.7.22-1.el7.x86_64.rpm
mysql-community-server-minimal-5.7.22-1.el7.x86_64.rpm
mysql-community-test-5.7.22-1.el7.x86_64.rpm
5.使用rpm命令安装
[root@iZwz9j6qtvdm8w07f8fk6jZ mysql-5.7.22-1.el7.x86_64.rpm-bundle]# rpm -ivh mysql-community-common-5.7.22-1.el7.x86_64.rpm
warning: mysql-community-common-5.7.22-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:mysql-community-common-5.7.22-1.e################################# [100%]
[root@iZwz9j6qtvdm8w07f8fk6jZ mysql-5.7.22-1.el7.x86_64.rpm-bundle]# rpm -ivh mysql-community-libs-5.7.22-1.el7.x86_64.rpm
warning: mysql-community-libs-5.7.22-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:mysql-community-libs-5.7.22-1.el7################################# [100%]
[root@iZwz9j6qtvdm8w07f8fk6jZ mysql-5.7.22-1.el7.x86_64.rpm-bundle]# rpm -ivh mysql-community-client-5.7.22-1.el7.x86_64.rpm
warning: mysql-community-client-5.7.22-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:mysql-community-client-5.7.22-1.e################################# [100%]
[root@iZwz9j6qtvdm8w07f8fk6jZ mysql-5.7.22-1.el7.x86_64.rpm-bundle]# rpm -ivh mysql-community-server-5.7.22-1.el7.x86_64.rpm
warning: mysql-community-server-5.7.22-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:mysql-community-server-5.7.22-1.e################################# [100%]
注:在安装过程中,若出现依赖无法被安装的错误:
[root@pinyougou03 mysql]# rpm -ivh mysql-community-server-5.7.22-1.el7.x86_64.rpm
警告:mysql-community-server-5.7.22-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
错误:依赖检测失败:
/usr/bin/perl 被 mysql-community-server-5.7.22-1.el7.x86_64 需要
net-tools 被 mysql-community-server-5.7.22-1.el7.x86_64 需要
perl(Getopt::Long) 被 mysql-community-server-5.7.22-1.el7.x86_64 需要
perl(strict) 被 mysql-community-server-5.7.22-1.el7.x86_64 需要
该问题是由于虚拟机中没有安装perl等依赖包,使用yum进行安装即可
yum -y install perl.x86_64
yum install -y libaio.x86_64
yum -y install net-tools.x86_64
若依赖问题始终无法解决,可强制跳过依赖检测
例如:
[root@kafka03 mysql]# rpm -ih mysql-community-client-5.7.22-1.el7.x86_64.rpm
警告:mysql-community-client-5.7.22-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
错误:依赖检测失败:
mysql-community-libs(x86-64) >= 5.7.9 被 mysql-community-client-5.7.22-1.el7.x86_64 需要
MySQL-client < 5.7.22-1.el7 被 mysql-community-client-5.7.22-1.el7.x86_64 取代
##使用 --nodeps --force跳过依赖检测
root@kafka03 mysql]# rpm -ih mysql-community-client-5.7.22-1.el7.x86_64.rpm --nodeps --force
警告:mysql-community-client-5.7.22-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
################################# [100%]
正在升级/安装...
################################# [100%]
6。启动mysql,并修改数据库密码
1.启动mysql
systemctl start mysqld.service 启动mysql
systemctl status mysqld.service 查看mysql状态
systemctl stop mysqld.service 关闭mysql
[root@iZwz9j6qtvdm8w07f8fk6jZ ~]# systemctl start mysqld.service
[root@iZwz9j6qtvdm8w07f8fk6jZ ~]# systemctl status mysqld.service
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2019-06-05 18:25:43 CST; 1 months 16 days ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
CGroup: /system.slice/mysqld.service
├─ 856 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/loc...
└─2170 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --da...
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
2.修改mysql的配置文件
初次登陆直接跳过输入密码,免密登录,修改/etc/目录下的my.cnf文件,加入如下代码
skip-grant-tables
保存,重启msyql,使用mysql -u root -p命令直接登陆,不用输入密码。
[root@iZwz9j6qtvdm8w07f8fk6jZ ~]# systemctl restart mysqld.service
[root@iZwz9j6qtvdm8w07f8fk6jZ ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.22 MySQL Community Server (GPL)
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>
登陆进去之后修改密码
注(5.7版本以前的可以忽略):如果要将密码设置为简单的形式如(123),则先将数据库密码设置为大写+小写+数字+特殊符号,这是mysql5.7以后的密码策略,不能再设置为简单的123456了。(在无密码状态下设置的密码如果不符合这个密码策略,当免密登录即my.cnf文件中的skip-grant-tables删除后,使用设置的简单密码,无法登录mysql) 。修改密码策略见本文第七节
show databases;
use mysql;
update user set password=passworD("you_password") where user='root';
//这里是我设置的密码update user set password=passworD("zz123456ZZ") where user='root';
会报错
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
原因:在5.7以后的mysql中。password字段不存在了,改为了authentication_string
update user set authentication_string=password("you_password") where user='root';
//这里是我设置的数据库密码update user set authentication_string=password("zz123456ZZ") where user='root';
flush privileges;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'you_password';
//ALTER USER 'root'@'localhost' IDENTIFIED BY 'zz123456ZZ';
或者使用
SET password='you_password';
//(SET password='zz123456ZZ');
退出,将my.cnf中的免密登陆去掉,就可以使用密码登陆了。
7.修改数据的密码策略
在mysql5.7版本以后,数据库的密码不能简单的设置为(“123456”),主要是由于数据库的密码策略导致的,为了连接数据库方便,修改数据库的密码策略。
修改/etc/my.cnf文件,添加密码的过期时间,关掉密码策略
default_password_lifetime=0 //设置密码永久有效
validate_password=off //关掉密码策略
保存退出,并重启mysql
systemctl restart mysqld.service
此时再登录mysql后就可以将密码修改为简单形式了
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
或者
SET password='123456';
修改完成后,重新登录mysql,此时mysql的密码为(“123456”)
8.远程连接mysql
为了能够远程连接服务器中的mysql,需要对mysql进行授权
授权命令如下:
grant all privileges on *.* to root@'%' identified by "123456";
flush privileges;
此时再windows中使用Navicat就可以远程连接该服务器了
修改数据库密码策略参考博文:https://blog.csdn.net/muziljx/article/details/81541896