CentOS 安装 MySQL8.0

4 篇文章 0 订阅
1 篇文章 0 订阅

CentOS 安装 MySQL8.0

查看 Linux 系统信息

通过指令 cat /proc/versioncat /etc/redhat-release查看安装的Linux 系统相关信息。

[root@hadoop1 ~]# cat /proc/version
Linux version 2.6.32-642.el6.x86_64 (mockbuild@worker1.bsys.centos.org) (gcc version 4.4.7 20120313 (Red  SMP Tue May 10 17:27:01 UTC 2016
[root@hadoop1 ~]# cat /etc/redhat-release
CentOS release 6.8 (Final)

可知本系统是 CentOS 6.8

清理现有系统包含的 MySQL数据库

为防止出现冲突,需要将Linux 系统自带的数据库删除。

通过命令 rpm -qa | grep mysql 检查是否安装有MySQL Server,如果有的话通过命令 rpm -e --nodeps mysql_libs 强力删除(可以不管依赖关系)

[root@hadoop1 ~]# rpm -qa | grep mysql
mysql-libs-5.1.73-7.el6.x86_64
[root@hadoop1 ~]# rpm -e --nodeps mysql-libs

【注意:CentOS 7 及之后的版本将 MySQL 数据库软件从默认的程序列表中移除,用 MariaDB 代替了(MariaDB 数据库管理系统是 MySQL 的一个分支),因此若是版本7及之后,需要删除mariadb数据库。

执行指令 rpm -qa | grep mariadb检查是否安有MariaDB,如有,则通过指令 rpm -e Mariadb名称 --nodeps进行删除。(由于本系统是CentOS 6.8 ,因此没有MariaDB数据库)

[root@hadoop1 opt]# rpm -q mariadb
package mariadb is not installed

下载 MySQL 安装包

打开 MySQL 官网:https://dev.mysql.com/downloads/mysql/

由于CentOS 是基于红帽的,因此Select Operating System 选择Red Hat Enterprise Linux,OS Version选择Linux 6,选择第一项 RPM Bundle进行下载,得到一个.tar文件:mysql-8.0.27-1.el6.x86_64.rpm-bundle.tar
在这里插入图片描述

Xftp 传输文件

Linux 下新建文件夹:/opt/mysql ,通过Xftp将下载的mysql-8.0.27-1.el6.x86_64.rpm-bundle.tar 传输到 /opt/mysql 目录下。

mkdir /opt/mysql

在这里插入图片描述

安装 MySQL

  1. 切换到 /opt/mysql 目录下,运行命令tar -xvf mysql-8.0.27-1.el6.x86_64.rpm-bundle.tar解压文件,得到8个.rpm文件
[root@hadoop1 opt]# cd mysql
[root@hadoop1 mysql]# tar -xvf mysql-8.0.27-1.el6.x86_64.rpm-bundle.tar
mysql-community-client-8.0.27-1.el6.x86_64.rpm
mysql-community-client-plugins-8.0.27-1.el6.x86_64.rpm
mysql-community-common-8.0.27-1.el6.x86_64.rpm
mysql-community-devel-8.0.27-1.el6.x86_64.rpm
mysql-community-libs-8.0.27-1.el6.x86_64.rpm
mysql-community-libs-compat-8.0.27-1.el6.x86_64.rpm
mysql-community-server-8.0.27-1.el6.x86_64.rpm
mysql-community-test-8.0.27-1.el6.x86_64.rpm
  1. 按以下顺序安装rpm软件包
rpm -ivh mysql-community-common-8.0.27-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.27-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-compat-8.0.27-1.el6.x86_64.rpm
rpm -ivh mysql-community-client-8.0.27-1.el6.x86_64.rpm
rpm -ivh mysql-community-server-8.0.27-1.el6.x86_64.rpm
  1. 通过 rpm -qa | grep mysql 命令查看已安装的rpm包
[root@hadoop1 mysql]# rpm -qa | grep mysql
mysql-community-libs-8.0.27-1.el6.x86_64
mysql-community-libs-compat-8.0.27-1.el6.x86_64.rpm
mysql-community-client-8.0.27-1.el6.x86_64
mysql-community-server-8.0.27-1.el6.x86_64
mysql-community-common-8.0.27-1.el6.x86_64

开启 MySQL

初始化MySQL

mysqld --initialize

更改所属组

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

启动MySQL

service mysqld start

注:CentOS 7.0后不再使用service,而是systemctl,指令如下:

systemctl start mysqld.service;

登录MySQL

查询初始登录密码

要登录 MySQL 必须先找出 root 用户默认的密码。

  1. 初始密码保存在 /var/log/mysqld.log 文件中

  2. 查看生成的临时root密码:cat /var/log/mysqld.log | grep password

[root@hadoop1 mysql]# cat /var/log/mysqld.log | grep password
2022-01-17T16:12:45.173720Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ;g%74Slqzj76
  1. 从以上命名执行结果可知 ;g%74Slqzj76 即为root用户初始登录密码

验证 MySQL 登录是否成功

输入指令:mysql -uroot -p

输入指令后敲回车会要输入密码,密码为上述root用户初始登录密码,注意:输入的密码是不显示的。

[root@hadoop1 mysql]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.27

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

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>

修改登录密码

如果不修改初始登录密码,随便运行一个命令后mysql会强制要求我们改密码,因此需要我们修改登录密码。

① 先设置复杂密码(由于MySQL密码策略,此密码必须足够复杂)
mysql> set password=password(“Qs23=zs32”);
② 更改MySQL密码策略
mysql> set global validate_password_length=4; 【设置mysql密码最小可以为4位】
mysql> set global validate_password_policy=0; 【设置mysql密码策略为0级(最小级别)】
③ 设置简单好记的密码
mysql> set password=password(“123456”);

设置root用户允许远程登录数据库

默认情况下MYSQL数据库的系统数据库mysql系统表user内用户权限只提供localhost本机登陆,即root用户无法远程连接mysql,只可以本地连,对外拒绝连接。因此,需要建立一个允许远程登录的数据库帐户,这样才可以进行在远程操作数据库。

mysql> use mysql;
mysql> select host,user from user;

在这里插入图片描述
由此可以看出,只能以localhost的主机方式访问。

通过以下命令设置任意一台机器都可以通过root用户、密码123456远程登录数据库。

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

以上各参数参考下面解释:

grant all privileges on 库名.表名 to ‘用户名’@‘IP地址’ identified by ‘密码’ with grant option;

库名:要远程访问的数据库名称,所有的数据库使用“
表名:要远程访问的数据库下的表的名称,所有的表使用“

用户名:要赋给远程访问权限的用户名称
IP地址:可以远程访问的电脑的IP地址,所有的地址使用“%”
密码:要赋给远程访问权限的用户对应使用的密码

③ 刷新修改后的权限

mysql> flush privileges;
  1. 输入exit; 指令退出 MySQL,而后通过新密码再次登陆
mysql> exit;
Bye
[root@hadoop1 mysql]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 21
Server version: 8.0.27 MySQL Community Server - GPL

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

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.
  1. 运行 show databases; 命令,检验命令是否能执行
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.03 sec)

MySQL启动、关闭和状态查看

  1. Mysql的启动:systemctl stop mysqld
  2. Mysql的关闭:systemctl status mysqld
  3. Mysql的状态查看:systemctl start mysqld
  4. 建议设置为开机自启动服务:systemctl enable mysqld
  5. 查看是否已经设置自启动成功:systemctl list-unit-files | grep mysqld
    注:以上命令都是CentOS 7.0以后的。

远程访问

开放防火墙端口访问

  1. 查看目前防火墙的开放端口:service iptables status,监听MySQL服务的2030端口没有开放
    注:如果没有安装iptables,则需要安装该应用。参考:linux(centos)查看开放的端口及防火墙开放端口及mysql端口查看

在这里插入图片描述

  1. 因此,需要编辑防火墙配置文件开放2030端口。执行指令:vim /etc/sysconfig/iptables

在这里插入图片描述

  1. 重启防火墙,更改配置文件生效。执行指令:service iptables restart

再次查看防火墙状态,此时3306端口已打开

在这里插入图片描述

  1. 给予root用户远程访问权限

    登录 MySQL 后执行下面三个操作,使得所有ip的电脑都可以使用root用户,密码为123456远程访问Linux的所有MySQL数据库

① 创建用户

create user 'root'@'%' identified with mysql_native_password by '123456';

② 开启权限

grant all privileges on *.* to 'root'@'%' with grant option;

Windows远程连接验证

在windows本地下执行指令 telnet 192.168.149.130(Linux系统ip) 3306

若出现如下界面,则意味着远程访问成功
在这里插入图片描述

SQLyog连接Linux远程数据库

打开SQLyog软件,输入Linux主机地址:192.168.149.130;用户名:root;密码:123456;端口号:3306。

在这里插入图片描述

【注意:如果在正确输入主机地址、用户名、密码、端口号名情况下,如果出现了错误码1045,如下:

在这里插入图片描述

则原因是mysql数据库没有授权目前登陆的用户进行远程连接

解决办法是授权该用户可以进行远程连接:

grant all privileges on 库名.表名 to '用户名'@'IP地址' identified by '密码' with grant option;
flush privileges;

参考

centos安装mysql8.0

CentOS7安装MySQL8.0图文教程

centos7 mysql 远程_Centos7安装mysql8.0,开启远程访问

SQLyog连接Linux远程数据库错误码1045

linux(centos)查看开放的端口及防火墙开放端口及mysql端口查看

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值