centos 安装 mysql8

前言

学数据库一般都是mysql起手,最好就是自己搭建一个mysql服务可以弄明白很多知识。首先,得有一个linux服务器,我的是腾讯云的最低配,centos7.6,打算安装mysql8,8和以前的版本算是一个大的更迭,有不少变化,使用的时候可以多翻看手册。

1.安装方式

两种方式:
1.在线安装(很慢,很慢,很慢…)
2.离线安装(需要提前下载,最好是国内镜像,速度稍微快点)

2.在线安装

在线安装真的很慢,但是我选择的还是在线安装,主要是方便

1.配置mysql源

官网:https://dev.mysql.com/downloads/repo/yum/

满足我需求的是下面这个源

把这个源弄到服务器上有2个办法

1:直接下载,注意下载链接不是官网的链接,是库的链接

先cd到一个保存的目录下,然后运行下面命令
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
这是一个centos7版本的依赖

2:在官网上下载源,然后传到服务器上,可以使用 rz 命令,安装rz,sz命令

yum -y install lrzsz

我选的是第二种方式,主要考虑到以后还需要用 rz,sz命令上传下载文件,先装上试试是否可用

源弄到服务器上以后,直接本地安装源

yum install mysql80-community-release-el7-3.noarch.rpm

这样源就生效了,里面包括安装mysql的所有下载链接和相关配置

2.安装mysql
yum --enablerepo=mysql80-community install mysql-community-server
让刚配置的源生效,并开始安装mysql

这个下载过程很慢,总共500-600M,下载几十 k每秒,期间会跳出来各种确定是否的选项,不要纠结,全选y

其实下载的过程不用管,我是半夜下载的,早上看一下都下载完了,再把刚才那个命令跑一下,它会自动检查已经下载的包,然后跳出选择选项,再选择y也是没问题的

3.启动mysql服务
systemctl start mysqld

3.离线安装

个人推荐这种方式,tar包下载好以后安装会非常快

官网:https://dev.mysql.com/downloads/mysql/

满足我要求的是下面这个包
centos 安装 mysql8_第1张图片

说白了就是下载那个最大的tar包,然后rz命令传到服务器上,然后解压,解压有好多包,只有下面四个是我们需要的

mysql-community-common-8.0.18-1.el7.x86_64.rpm
mysql-community-libs-8.0.18-1.el7.x86_64.rpm
mysql-community-client-8.0.18-1.el7.x86_64.rpm 
mysql-community-server-8.0.18-1.el7.x86_64.rpm

还有几个带 compat 字样的包,是兼容包,如果要向下兼容版本需求,建议安装上,依次安装上面的几个包,如果安装兼容包,最后安装

rpm -ivh mysql-community-common-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.18-1.el7.x86_64.rpm 
rpm -ivh mysql-community-server-8.0.18-1.el7.x86_64.rpm

安装完以后初始化mysql

mysqld --initialize

修改目录权限

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

启动mysql服务

systemctl start mysqld

4.查看服务状态

查看mysql服务状态

service mysqld status

如果有这个
centos 安装 mysql8_第2张图片
就是成功的

4.查看默认密码

在文件

/var/log/mysqld.log

有一个默认密码

默认用户:root

默认密码:见上图

mysql -uroot -p
输入密码就可以登录了

5.修改默认密码

默认密码进入mysql以后你会发现压根就不能进行有效的操作,会提示让你修改密码,mysql8的密码策略要求包括:大小写、特殊字符、数字、最短8位长度

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Test@123';

6.远程连接mysql

mysql 好多的权限控制都在mysql的表里面,包括增删改查,远程连接,密码策略等等都在,本地连接mysql以后,使用下面命令查看现有的mysql库

show databases;

可以看到有4个库

centos 安装 mysql8_第3张图片

其中mysql库是常用的,进入mysql库的命令

use mysql;

进去以后查看一下mysql库里面的表

show tables;

可以看到很多表

centos 安装 mysql8_第4张图片

其中user表是控制用户权限的表,我们先看一下root用户的连接方式

select host,user from user;

centos 安装 mysql8_第5张图片

root用户的host字段是localhost,啥意思呢,就是说root只允许本机连接,其他任何地方是不能用的,这就很坑了,所以修改一下变成任何地方(%)都可以连接(如果不修改,其他地方连接就会报1130的错误)

 update user set host='%' where user='root';

记得刷新一下权限

flush privileges;

这时候可以远程连接mysql,但是记得用windows的cmd连接,为啥呢,因为其他linux连接或者navicate连接都会有问题,这些问题另外处理。

mysql -h ip地址 -P 3306 -u root -p
输入密码就可访问

7.navicate报1251错误处理

这个主要是navicate加密方式和mysql8不一致导致的,最简单的方式就是修改mysql8的加密方式

首先设置加密方式

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '自己设置的密码';

再次更新密码,设置为永不过期

ALTER USER 'root'@'%' IDENTIFIED BY '自己设置的密码' PASSWORD EXPIRE NEVER;

刷新一下权限

flush privileges;

8.上面步骤走完几乎把大部分坑都可以避开

你可能感兴趣的:(db)