1.下载MySQL8.0安装包
1.1 -下载MySQL
1.2-解压下载的安装包
1.3-抽取压缩包
1.4-将压缩包上传至CentOS服务器/opt/路径下
2.安装MySQL8.0
2.1-在mysql的安装文件目录下执行(严格按照顺序执行,按以下操作)
rpm -ivh mysql-community-common-8.0.33-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.33-1.el7.x86_64.rpm
yum remove mysql-libs
选择y同意
rpm -ivh mysql-community-libs-8.0.33-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.33-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.33-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.33-1.el7.x86_64.rpm
(上述仅为作者版本,请以自身实际下载版本号为准)
2.2-验证是否安装MySQL8.0成功
mysql --version
3.配置MySQL8.0
3.1-服务初始化
为了保证数据库目录与文件的所有者为mysql登录用户,如果是以root身份运行MySQL用户,需要执行下面的命令初始化
mysqld --initialize --user=mysql
说明:--initialize选项默认以"安全"模式来初始化,则会为root用户生成一个密码并将该密码标记为过期,登录后你需要设置一个新的密码。生成的临时密码会往日志中记录一份
cat /var/log/mysqld.log
(上述操作请以自身实际产生的临时密码为准)
3.2-查看MySQL服务运行状态
systemctl status mysqld
3.3-启动MySQL服务
systemctl start mysqld
3.4-查看MySQL服务是否自启动
systemctl list-unit-files | grep mysqld.service
默认是enabled,如果不是enabled,可以执行如下命令设置自启动
systemctl enable mysqld.service
如果不希望设置自启动,可使用如下命令
systemctl disable mysqld.service
3.5-使用临时密码登录MySQL
临时密码即为3.1步骤生成的
3.6-修改MySQL密码
-- BY后面引号里的内容,即123456,可根据自身需要进行设置
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
退出MySQL(quit)之后,重新登录MySQL
4.远程Navicate连接数据库及配置
(注意:Navicate连接远程数据库,可以选择关闭服务器防火墙,也可选择不关闭,只需打开相应防火墙端口即可,以下均会进行操作,二者选其一即可)
4.1-查看防火墙状态并关闭
// 1-查看防火墙状态
systemctl status firewalld
// 2-关闭防火墙
systemctl stop firewalld
// 3-设置服务器开机默认关闭防火墙
systemctl disable firewalld
4.2-不关闭防火墙,设置打开相应端口
// 未开启防火墙的状态下,为安全起见,先开启防火墙
systemctl start firewalld
// 开启指定端口,MySQL默认端口3306
firewall-cmd --zone=public --add-port=3306/tcp --permanent
// 重启防火墙
systemctl restart firewalld.service
// 重新加载防火墙
firewall-cmd --reload
// 显示 success 表示成功
// 查看已开启的端口
firewall-cmd --list-ports
// 补充
// 关闭指定端口操作
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
systemctl restart firewalld.service
firewall-cmd --reload
4.3- 远程配置
- 重新登录MySQL
- 查看当前数据库
- 选择数据库mysql
- 查看当前user表
- 修改user='root'条件下host为%,表示任意用户均可连接
SHOW databases;
USE mysql;
SELECT host,user FROM user;
UPDATE user SET host='%' WHERE user='root';
FLUSH PRIVILEGES;
4.4-添加用户及配置权限
MySql8有新的安全要求,不能像之前的版本那样一次性创建用户并授权,需要先创建用户,再进行授权操作
4.4.1-创建新用户
use mysql;
// create user 'username'@'host' identified by 'password';
/* 其中username为自定义的用户名;
host为登录域名,
host为'%'时表示为任意IP;为localhost时表示本机;或者填写指定的IP地址
paasword为密码
*/
create user 'crawler'@'%' identified by '123456';
4.4.2-为用户授权
// grant all privileges on *.* to 'username'@'%' with grant option;
// 以下数据库读取权限,根据自身需要自行配置
// all privileges表示授予所有权限,即增删改查
grant all privileges on *.* to 'crawler'@'%' with grant option;
// 可以指定单个权限,SELECT、INSERT、UPDATE、DELETE,根据需要自行配置
grant SELECT on *.* to 'crawler'@'%' with grant option;
grant INSERT on *.* to 'crawler'@'%' with grant option;
grant UPDATE on *.* to 'crawler'@'%' with grant option;
grant DELETE on *.* to 'crawler'@'%' with grant option;
// 如果需要多个权限
grant SELECT,INSERT on *.* to 'crawler'@'%' with grant option;
4.4.3-授予权限之后,刷新权限
flush privileges;
4.4.4-撤销权限
// 收回权限(不包含赋权权限)
// REVOKE ALL PRIVILEGES ON *.* FROM username;
// REVOKE ALL PRIVILEGES ON user_name.* FROM username;
REVOKE ALL PRIVILEGES ON *.* FROM crawler;
REVOKE ALL PRIVILEGES ON username.* FROM username;
// 收回赋权权限
// REVOKE GRANT OPTION ON *.* FROM user_name;
REVOKE GRANT OPTION ON *.* FROM username;
// 操作完后重新刷新权限
flush privileges;