CentOS7安装MySQL-rpm安装

713 阅读6分钟

1 下载MySQL

如果你不是用这样方式安装,笔者还有另一篇更新详细 CentOS7安装MySQL-glibc安装 juejin.cn/post/699857…

进入MySQL官网:www.mysql.com/ image.png进入下载页面下载: image.png

image.png

image.png

把MySQL下载到Linux中downloads.mysql.com/archives/ge…

作者是放在:/root目录下的: image.png

2 环境检查

1、检查是否安装过MySQL

[root@localhost software]# rpm -qa | grep myql
mysql-community-common-5.6.30-2.el7.x86_64
mysql-community-release-el7-5.noarch
mysql-community-libs-5.6.30-2.el7.x86_64
mysql-community-server-5.6.30-2.el7.x86_64
mysql-community-client-5.6.30-2.el7.x86_64
[root@localhost software]# 

2、如果存在MySQL安装文件,则执行下面代码卸载已存在的MySQL

[root@localhost software]#  yum remove mysql-community-common-5.6.30-2.el7.x86_64
[root@localhost software]#  yum remove mysql-community-release-el7-5.noarch
....出现的都要卸载

到这里并没有完全卸载哦,我们继续,卸载并不会自动删除配置文件等,所以我们还需要手动来删除。 ​

3、删除系统中MySQL相关配置或文件

使用 find 命令来查找:

[root@localhost software]# find / -name mysql
/usr/share/mysql
/var/lib/mysql
/var/lib/mysql/mysql

删除所有MySQL目录:

[root@localhost software]# rm -rf /usr/share/mysql
[root@localhost software]# rm -rf /var/lib/mysql
...

如果/etc/my.cnf 如果存在请删除 ​

这样MySQL就卸载成功了 ​

4、检查是否安装了 mariadb

[root@localhost software]# rpm -qa | grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64

如果存在 mariadb 就执行下面命令进行删除,避免与我们要安装的MySQL产生冲突:

[root@localhost software]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64

5、检查是否安装了 libaio

[root@localhost software]# rpm -qa |grep libaio
libaio-0.3.109-13.el7.x86_64

如果没有安装libaio执行下面命令进行安装:

# 搜索libaio相关信息
[root@localhost software]# yum search libaio
# 安装libaio
[root@localhost software]# yum install libaio

3 安装MySQL

1、解压MySQL

# 作者所在的目录
[root@localhost ~]# pwd
/root
# 创建mysql目录
[root@localhost ~]# mkdir mysql
# 解压到mysql目录
[root@localhost ~]# tar -xvf mysql-5.7.33-1.el7.x86_64.rpm-bundle.tar -C /root/mysql

2、安装MySQLrpm

(1) MySQLCommunityEdition 的 RPM 包:

包名总结
mysql-community-server数据库服务器及相关工具
mysql-community-clientMySQL 客户端应用程序和工具
mysql-community-common服务器和客户端库的公共文件
mysql-community-develMySQL 数据库客户端应用程序的开发头文件和库
mysql-community-libsMySQL 数据库客户端应用程序的共享库
mysql-community-libs-compat以前 MySQL 安装的共享兼容性库
mysql-community-embeddedMySQL 嵌入式库
mysql-community-embedded-devel作为可嵌入库的 MySQL 开发头文件和库
mysql-community-testMySQL 服务器的测试套件

(2) 安装顺序为:

  • mysql-community-common
  • mysql-community-libs
  • mysql-community-client
  • mysql-community-libs-compat
  • mysql-community-server

(3) 现在开始安装:

[root@localhost mysql]# yum install mysql-community-common-5.7.33-1.el7.x86_64.rpm

[root@localhost mysql]# yum install mysql-community-libs-5.7.33-1.el7.x86_64.rpm

[root@localhost mysql]# yum install mysql-community-client-5.7.33-1.el7.x86_64.rpm

[root@localhost mysql]# yum install mysql-community-libs-compat-5.7.33-1.el7.x86_64.rpm

[root@localhost mysql]# yum install mysql-community-server-5.7.33-1.el7.x86_64.rpm

如果安装过程中出现问题,您可能会在错误日志文件中找到调试信息 /var/log/mysqld.log。 ​

(4) MySQLDeveloperZone中LinuxRPM包的MySQL安装布局:

文件或资源位置
客户端程序和脚本/usr/bin
mysqld服务器/usr/sbin
配置文件/etc/my.cnf
数据目录/var/lib/mysql
错误日志文件对于 RHEL、Oracle Linux、CentOS 或 Fedora 平台: /var/log/mysqld.log
对于 SLES: /var/log/mysql/mysqld.log
Value of secure_file_priv/var/lib/mysql-files
System V 初始化脚本For RHEL, Oracle Linux, CentOS or Fedora platforms: /etc/init.d/mysqld
For SLES: /etc/init.d/mysql
系统服务对于 RHEL、Oracle Linux、CentOS 或 Fedora 平台: mysqld
对于 SLESmysql
pid文件/var/run/mysql/mysqld.pid
Socket/var/lib/mysql/mysql.sock
Keyring 目录/var/lib/mysql-keyring
Unix 手册页/usr/share/man
Include (header) 文件/usr/include/mysql
Libraries/usr/lib/mysql
其他支持文件(例如,错误消息和字符集文件)/usr/share/mysql

validate_password 默认安装。执行的默认密码策略validate_password要求密码至少包含1个大写字母、1个小写字母、1个数字和1个特殊字符,并且密码总长度至少为8个字符。

4、安装后配置

1、关掉MySQL登录校验

[root@localhost mysql]# vim /etc/my.cnf
# 跳过校验,MySQL5.7启动的时候会创创建默认的root密码,
# 需要日志文件查看root密码,这里去掉所有的校验
skip-grant-tables

image.png

然后输入按Esc再输入:wq保存 ​

2、启动MySQL服务

[root@localhost mysql]# systemctl start mysqld.service

3、使用MySQL客户端连接MySQL

[root@localhost mysql]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.33 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.

mysql> 

4、给root设置密码

把root密码设置为:123456

mysql> update mysql.user set authentication_string=password('123456') where user = 'root';
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1

刷新权限

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

退出MySQL客户端,然后停止MySQL服务

mysql> exit
Bye
[root@localhost mysql]# systemctl stop mysqld.service

开启MySQL登录校验

[root@localhost mysql]# vim /etc/my.cnf
# 跳过校验,MySQL5.7启动的时候会创创建默认的root密码,
# 需要日志文件查看root密码,这里去掉所有的校验
# skip-grant-tables

然后再启动MySQL服务

[root@localhost mysql]# systemctl start mysqld.service

再使用MySQL客户端连接MySQL

[root@localhost mysql]# mysql -uroot -p123456

5、修改MySQL密码校验规则

如果是线上,就就不要设置了 把密码校验的复杂程度设置为(开发的时候比较方便):低

mysql> set global validate_password_policy=LOW;

设置密码最短长度为:4

mysql> set global validate_password_length=4;

再设置密码

# 修改当前登录的root用户密码
mysql> set password=password('123456');
# 刷新权限
mysql> flush privileges;

扩展,查看MySQL状态

mysql> show status

5、远程连接MySQL服务器

这里使用 Navicat Premium 15 远程连接 此时会发现不能远程连接,出现问题的原因是:

  • 可能防火墙没有允许连接3306端口,
  • MySQL没有开启用户远程登录

下面开启MySQL远程连接

1、如果出现下面图片报错,请配置防火墙

image.png 查看防火墙状态

[root@localhost mysql]# systemctl status firewalld 
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since 二 2021-08-24 23:08:15 CST; 1h 25min ago
     Docs: man:firewalld(1)
 Main PID: 718 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─718 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid

8月 24 23:08:14 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
8月 24 23:08:15 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
8月 24 23:08:15 localhost.localdomain firewalld[718]: WARNING: AllowZoneDrifting is enabled. This is considered an insecure co...t now.
Hint: Some lines were ellipsized, use -l to show in full

如果未开启,就启动防火墙

[root@localhost mysql]# systemctl start firewalld

永久开启端口3306

[root@localhost mysql]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
success

重起载入配置:

[root@localhost mysql]# firewall-cmd --reload
success

查看3306端口是否开放

[root@localhost mysql]# firewall-cmd --zone=public --query-port=3306/tcp
yes

2、如果出现下面图片报错,请开启用户(root)远程登录

image.png 进入MySQL客户端,开启用户(root)远程登录

[root@localhost mysql]# mysql -uroot -p123456

mysql> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
Query OK, 0 rows affected, 1 warning (0.00 sec)

然后再远程连接 image.png