MySql

参考: Centos7离线安装mysql8 - 大墨垂杨 - 博客园 (cnblogs.com)

安装

1.下载离线包

下载地址:https://dev.mysql.com/downloads/mysql/

查看

[root@localhost ~]# arch
x86_64

选择如下:

【Red Hat Enterprise Linux 7 / Oracle Linux】

【Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit)】

cd /app/soft
tar -xvf mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar

2.上传tar包至服务器

3.删除原有的mariadb

先查看一下是否已经安装了,命令:rpm -qa|grep mariadb

删除mariadb,命令:rpm -e --nodeps mariadb-libs

4.解压mysql离线安装包

[root@localhost ~]# cd /app/soft
[root@localhost soft]# tar -xvf mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar
mysql-community-client-8.0.28-1.el7.x86_64.rpm
mysql-community-client-plugins-8.0.28-1.el7.x86_64.rpm
mysql-community-common-8.0.28-1.el7.x86_64.rpm
mysql-community-devel-8.0.28-1.el7.x86_64.rpm
mysql-community-embedded-compat-8.0.28-1.el7.x86_64.rpm
mysql-community-icu-data-files-8.0.28-1.el7.x86_64.rpm
mysql-community-libs-8.0.28-1.el7.x86_64.rpm
mysql-community-libs-compat-8.0.28-1.el7.x86_64.rpm
mysql-community-server-8.0.28-1.el7.x86_64.rpm
mysql-community-test-8.0.28-1.el7.x86_64.rpm

5.安装rpm包

安装mysql-community-test缺少依赖



[root@localhost soft]# rpm -ivh mysql-community-test-8.0.28-1.el7.x86_64.rpm
警告:mysql-community-client-8.0.28-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
错误:依赖检测失败:
        perl(Data::Dumper) 被 mysql-community-test-8.0.28-1.el7.x86_64 需要
        perl(JSON) 被 mysql-community-test-8.0.28-1.el7.x86_64 需要
        perl(Test::More) 被 mysql-community-test-8.0.28-1.el7.x86_64 需要

[root@localhost soft]# yum list |grep "perl-Data-Dumper"
perl-Data-Dumper.x86_64                     2.145-3.el7                @c7-media

[root@localhost soft]# yum list |grep "perl-JSON"
perl-JSON.noarch                            2.59-2.el7                 c7-media 
perl-JSON-PP.noarch                         2.27202-2.el7              c7-media 
perl-JSON-tests.noarch                      2.59-2.el

[root@localhost soft]# yum -y install perl-Data-Dumper.x86_64 perl-JSON.noarch perl-JSON-PP.noarch perl-JSON-tests.noarch

[root@localhost soft]# rpm -ivh mysql-community-test-8.0.28-1.el7.x86_64.rpm
警告:mysql-community-client-8.0.28-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
错误:依赖检测失败:
        perl(Test::More) 被 mysql-community-test-8.0.28-1.el7.x86_64 需要
#搜了下 perl(Test::More),需下载 perl-Test-Simple.noarch
[root@localhost soft]# yum -y install perl-Test-Simple.noarch

[root@localhost soft]# rpm -ivh *.rpm
警告:mysql-community-client-8.0.28-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
准备中...                          ################################# [100%]
        软件包 mysql-community-common-8.0.28-1.el7.x86_64 已经安装
        软件包 mysql-community-client-plugins-8.0.28-1.el7.x86_64 已经安装
        软件包 mysql-community-libs-8.0.28-1.el7.x86_64 已经安装
        软件包 mysql-community-client-8.0.28-1.el7.x86_64 已经安装
        软件包 mysql-community-icu-data-files-8.0.28-1.el7.x86_64 已经安装
        软件包 mysql-community-server-8.0.28-1.el7.x86_64 已经安装

服务启停

1.查看服务状态

[root@localhost soft]# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html

2.停止服务

[root@localhost soft]# service mysqld stop
Redirecting to /bin/systemctl stop mysqld.service

3.初始化数据库

[root@localhost soft]# mysqld --initialize --console

4.目录授权

[root@localhost soft]# chown -R mysql:mysql /var/lib/mysql/

5.启动服务

[root@localhost soft]# systemctl start mysqld
[root@localhost soft]# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since 二 2022-01-25 12:17:52 CST; 8s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 22038 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 22066 (mysqld)
   Status: "Server is operational"
   CGroup: /system.slice/mysqld.service
           └─22066 /usr/sbin/mysqld

1月 25 12:17:51 localhost.localdomain systemd[1]: Starting MySQL Server...
1月 25 12:17:52 localhost.localdomain systemd[1]: Started MySQL Server.

数据库操作

1.查看临时密码

[root@localhost soft]# cat /var/log/mysqld.log
2022-01-25T04:16:57.661179Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.28) initializing of server in progress as process 21021
2022-01-25T04:16:57.675490Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2022-01-25T04:16:58.019688Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
#####密码在这里 qYhqICwXy4;Y
2022-01-25T04:16:58.970162Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: qYhqICwXy4;Y
#####
2022-01-25T04:17:52.254629Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.28) starting as process 22066
2022-01-25T04:17:52.264950Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2022-01-25T04:17:52.465813Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2022-01-25T04:17:52.723809Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2022-01-25T04:17:52.723949Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
2022-01-25T04:17:52.745958Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.28'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MySQL Community Server - GPL.
2022-01-25T04:17:52.746018Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock

2.用临时密码登录数据库

输入密码时,不会显示,输入完毕直接回车

[root@localhost soft]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.28

Copyright (c) 2000, 2022, 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>

3.修改mysql密码

mysql> alter USER 'root'@'localhost' IDENTIFIED BY 'njdys123';
Query OK, 0 rows affected (0.02 sec)

4.授权远传连接

mysql> show databases;
mysql> use mysql;
mysql> select host, user, authentication_string, plugin from user;

授权远程连接1

mysql> update user set host = "%" where user='root';
mysql> select host, user, authentication_string, plugin from user;
mysql> flush privileges;

授权远程连接2

尝试使用navacat远程连接,会出现如下错误

2059 - Authenticationplugin‘caching_sha2_password’ cannot be loaded:XXXXX

caching_sha2_password

解决办法:

mysql> use mysql;

mysql> alter USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'njdys123';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
备注:
mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password。
解决问题方法有两种:
方法1.升级navicat驱动;
方法2.把mysql用户登录密码加密规则还原成mysql_native_password.。
此处我使用的是方法2。

连接测试

其他

防护墙

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

results matching ""

    No results matching ""