本来机器上是安装了
MySQL8.0
的,不过敲入mysql
提示无此命令,想必是某些地方出了问题,也懒得去修复;正好要换5.7
,所以干脆直接卸载掉,重新安装。
一:卸载机器上已有的MySQL
因为我早早把8.0卸载了,又急急忙忙装了5.7,也没来得及保存终端输出,所以-_-#
将就一下吧,暂且认为这里的5.7就是其他版本,操作是一样的
- 先查询已安装的
MySQL
版本和组件
#查询已安装的MySQL版本
mysql --version
#返回的信息,Distrib就是现有MySQL的版本
mysql Ver 14.14 Distrib 5.7.26, for Linux (x86_64) using EditLine wrapper
#查询已安装的MySQL组件
yum list installed | grep mysql
#或者用rpm命令,作用是一样的
rpm -qa | grep mysql
#显示装了四个组件,分别是客户端client、通用包common、依赖库libs和服务器server
mysql-community-client.x86_64 5.7.26-1.el7 installed
mysql-community-common.x86_64 5.7.26-1.el7 installed
mysql-community-libs.x86_64 5.7.26-1.el7 installed
mysql-community-server.x86_64 5.7.26-1.el7 installed
- 接下来就是卸载了
#按照查询出来的软件包一个一个去卸载,把要卸载的包名放在yum remove后面就行了,
#我就不一个一个敲了
yum remove mysql-community-common.x86_64
#或者也可以用rpm,作用一样
rpm -e mysql-community-common.x86_64
#加上--nodeps会忽略依赖,直接删除当前rpm包,想卸载干净就别加这个
rpm -e --nodeps mysql-community-common.x86_64
。。。
二:安装需要的版本5.7.26
-
卸载完成后,准备安装
5.7.26
,首先去官网找资源- 百度直接搜索
MySQL
,第一个结果就是了,点进去,或者直接浏览器访问https://www.mysql.com/
result_for_search_mysql_on_baidu.png
2.点进去之后会看到这样一副图景
mysql_index_page.png-
再点DOWNLOAD进去,看到的页面是这样的,大概介绍主要内容
choose_the_edition_you_need.png - 我们要下载的是开源免费版,也就是所谓的社区版,从
Community (GPL) Downloads »
这里点进去,其实到了这里有两种安装方式,一种是yum
仓库的方式安装,另一种是rpm
包本地安装,我们先说第一种;
choose_the_yum_rep.png -
点进去之后,往下拉,拉到底部,红线划出的就是我们要下载的rpm包,点右边的DOWNLOAD下载
use_the_rpm_package_noarch.png -
点No thanks...跳出下载框,复制下载地址,注意这里如果你用chrome的话,可能会直接开始下载,没关系,到下载管理页面去右键复制下载地址;或者你直接在No thanks...链接上右键复制链接地址,更方便,这里是为了更直观……
start_downloading_or_get_the_resource_url.png
get_the_url.png - 到Linux终端去执行如下命令,提示没有
wget
的先装个去
- 百度直接搜索
#没有wget的话先装个
yum install wget
#下载noarch包,默认是下载在当前目录的
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
#下载完成后安装noarch包
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
#或者直接rpm去安装也行,免去了wget的步骤,随你喜好
rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
- 接下来就是安装了,按步骤去操作就可以了
#noarch包安装完成后,进去下面目录,我们要改一些内容
cd /etc/yum.repos.d/
#查看都有哪些文件
ls
#我们要改的就是mysql-community.repo这个文件
CentOS7-Base-163.repo CentOS-Debuginfo.repo CentOS-Vault.repo mysql-community.repo
Centos-7.repo CentOS-fasttrack.repo epel-7.repo mysql-community-source.repo
CentOS-Base.repo CentOS-Media.repo epel.repo repo_bak
CentOS-CR.repo CentOS-Sources.repo epel-testing.repo
#vim打开
vim mysql-community.repo
#内容很多,只需要改两处
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=0 #把这里的0改为1,打开5.7
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/
enabled=1 #把这里的1改为0,关闭8.0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
#改完之后,按esc、:、wq回车保存退出
#嗯,这条命令很长,直接复制吧,有可能下载很慢,自己去改仓库源
#我的机器是64位,所以选了x86_64,如果你的机器是32位,就把包名后面的x86_64改成i686
yum install mysql-community-common.x86_64 mysql-community-libs.x86_64 mysql-community-client.x86_64 mysql-community-server.x86_64 -y
#接下来就是等待安装完成……
#安装完成后查看是不是四个组件都装上去了
rpm -qa | grep mysql
#完美
mysql-community-client.x86_64 8.0.16-2.el7 @mysql80-community
mysql-community-common.x86_64 8.0.16-2.el7 @mysql80-community
mysql-community-libs.x86_64 8.0.16-2.el7 @mysql80-community
mysql-community-server.x86_64 8.0.16-2.el7 @mysql80-community
mysql80-community-release.noarch el7-3 installed
#最后把noarch包卸载掉,当然你也可以不卸载,如果以后还要安装其他组件的话
rpm -e mysql80-community-release
三:进入数据库
- 接下来就是启动MySQL服务
#查看MySQL版本
mysql --version
#显示我们安装好的5.7.26
mysql Ver 5.7.26 for Linux on x86_64 (MySQL Community Server - GPL)
因为安全策略有所改变,以前的空密码登录root账户这种变态的方式已被禁止,更改用户密码也不允许以
set password for username……
这种方式了,改为alter user username@url identified by 'password'
这种方式,设置密码也更加严格,要求有足够的复杂度,后面会讲到。
大家也不要更改设置去搞简单的密码,请严格按照新版安全策略去进行设置,无数血淋淋的惨痛事实告诉我们,一旦养成了坏习惯,生产环境中用低级的安全策略,将会是一件恐怖的事情,可不止删库跑路那么简单……
#先去找默认产生的随机密码
grep 'temporary password' /var/log/mysqld.log
#显示这样的信息,最后面一串就是初始密码,记住,复制
2019-05-31T17:24:34.929615Z 1 [Note] A temporary password is generated for root@localhost: wVfRcPjdD4%0
#启动MySQL服务
service mysqld start
#启动成功后可能会看到这样的信息
Redirecting to /bin/systemctl start mysqld.service
#意思就是把你输入的命令重定向到了/bin/systemctl start mysqld.service这个命令
#所以也可以用这种方式启动,一样一样的
systemctl start mysqld.service
#关闭就是
service mysqld stop
#或者
systemctl stop mysqld.service
#当然这里我们不关闭服务,因为后面还有事情要做
- 接下来就是用初始密码登录,更改密码,因为不更改密码你不能进行其他操作……
#登录命令
mysql -u root -p
#提示你输入密码,把刚刚查到的初始密码填进去,回车
#更改密码,这里把new_password替换成你自己的密码,
#注意:密码需要包含 大写字母、小写字母、数字、特殊符号,长度也要足够,否则会报错
alter user 'root'@'localhost' identified by 'new_password'
#这里有可能输入密码报错提示无权限,或者之前找不到密码,原因有可能是以前的安装残留,让你得到的是旧版本的初始密码,删掉
rm -rf /var/lib/mysql
#重启服务
service mysqld restart
#再去/var/log/mysqld.log中找初始密码,时间戳显示最近的那个就是新初始密码
grep 'temporary password' /var/log/mysqld.log
#例如
2019-05-31T17:24:34.929615Z 1 [Note] A temporary password is generated for root@localhost: wVfRcPjdD4%0
2019-06-01T06:39:59.491008Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Vg3b7/jyy80i
#下面那个就是新密码,登录,注意密码和-p参数之间不能有空格,否则报错
mysql -u root -p初始密码
#更改root用户密码、刷新权限,否则不能进行其他操作
mysql> alter user 'root'@'localhost' identified by 'Test_one_888';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.29 sec)
#然后用新密码去登录
#用root账户创建一个新库,后面新建用户只能访问这个库
mysql> create database if not exists mydb;
Query OK, 1 row affected (0.00 sec)
#嗯,可以看到库创建成功了
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mydb |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
#下来新建用户,关于用户操作这里不多说
mysql> create user 'wannaSeeU'@'%' identified by 'Dont_hit_110';
Query OK, 0 rows affected (0.01 sec)
#授权
mysql> grant all privileges on mydb.* to 'wannaSeeU'@'%';
Query OK, 0 rows affected (0.29 sec)
#刷新
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
#好了,退出,用新用户去登录
mysql> quit
Bye
[root@localhost ~]# mysql -u wannaSeeU -p
Enter password: ********
#嗯,只能看到两个库,很安全
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mydb |
+--------------------+
2 rows in set (0.00 sec)
网友评论