1 下载MySQL
如果你不是用这样方式安装,笔者还有另一篇更新详细 CentOS7安装MySQL-glibc安装 juejin.cn/post/699857…
进入MySQL官网:www.mysql.com/
进入下载页面下载:
把MySQL下载到Linux中:downloads.mysql.com/archives/ge…
作者是放在:/root目录下的:
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-client | MySQL 客户端应用程序和工具 |
| mysql-community-common | 服务器和客户端库的公共文件 |
| mysql-community-devel | MySQL 数据库客户端应用程序的开发头文件和库 |
| mysql-community-libs | MySQL 数据库客户端应用程序的共享库 |
| mysql-community-libs-compat | 以前 MySQL 安装的共享兼容性库 |
| mysql-community-embedded | MySQL 嵌入式库 |
| mysql-community-embedded-devel | 作为可嵌入库的 MySQL 开发头文件和库 |
| mysql-community-test | MySQL 服务器的测试套件 |
(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
然后输入按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、如果出现下面图片报错,请配置防火墙
查看防火墙状态
[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)远程登录
进入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)
然后再远程连接