一、下载网址

注:mysql从5.7的某个版本之后之后不再提供my-default.cnf文件,不耽误启动,想要自定义配置可以自己去/etc下创建my.cnf文件

全版本:https://downloads.mysql.com/archives/community/

本次安装版本(5.7.35)

官网文档:https://dev.mysql.com/doc/refman/5.7/en/option-files.html

二、安装

1、检查mariadb数据库是否安装(会与mysql冲突,如有安装需卸载)

(1)查询是否存在安装命令

[root@localhost software]# yum list installed | grep mariadb
mariadb-libs.x86_64 1:5.5.68-1.el7 @anaconda

(2)如有安装,执行卸载命令

[root@localhost software]# yum -y remove mariadb-libs.x86_64

2、解压MySQL安装包

[root@localhost software]# tar -xzvf mysql-5.7.35-el7-x86_64.tar.gz

改个名(无所谓)

[root@localhost software]# mv mysql-5.7.35-el7-x86_64 mysql-5.7.35

3、创建数据文件夹data

[root@localhost software]# cd mysql-5.7.35
[root@localhost mysql-5.7.35]# mkdir data

4、创建mysql用户

[root@localhost mysql-5.7.35]# useradd mysql

5、初始化mysql,并启用安全功能(切进mysql安装目录下的bin目录)

[root@localhost mysql-5.7.35]# cd ../mysql-5.7.35/bin/

执行初始化

[root@localhost bin]# ./mysqld --initialize --user=mysql --datadir=/opt/software/mysql-5.7.35/data --basedir=/opt/software/mysql-5.7.35
初始化相关参数
–initialize:初始化 mysql,创建 mysql 的 root, 随机生成密码。记住密码,登录 msyql 使用
–user:执行 msyqld 命令的 linux 用户名
–datadir : mysql 数据文件的存放位置,目录位置参照本机的设置
–basedir:msyql 安装程序的目录,目录位置参照本机的设置。

记住初始密码

启用安全功能(在服务器与客户机之间来回传输的所有数据进行加密。通过证书提供了身份验证机制,mysql 命令程序,mysql_ssl_rsa_setup 提供了开启数据加密功能,生成数字证书。)

[root@localhost bin]# ./mysql_ssl_rsa_setup --datadir=/opt/software/mysql-5.7.35/data

6、修改mysql目录的权限

将MySQL目录权限授给mysql用户和mysql组

[root@localhost software]# chown -R mysql:mysql /opt/software/mysql-5.7.35

7、启动MySQL并登录进行一些必要设置(切进bin目录下)

[root@localhost bin]# ./mysqld_safe &
[1] 1779
[root@localhost bin]# Logging to '/opt/software/mysql-5.7.35/data/localhost.localdomain.err'.
2022-08-09T15:00:03.858211Z mysqld_safe Starting mysqld daemon with databases from /opt/software/mysql-5.7.35/data -- 第一次登录需要初始密码
[root@localhost bin]# ./mysql -u root -p -- 登录后进入mysql命令行需要修改一次密码
mysql> set password=password('111111'); -- 授权远程访问
mysql> grant all privileges on *.* to root@'%' identified by '111111';
Query OK, 0 rows affected, 1 warning (0.00 sec) -- 刷新权限
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

8、测试工具远程连接

如果报错,可能是linux防火墙的问题,关闭防火墙(可以临时关,也可以使用 systemctl disable firewalld 直接禁用)

[root@localhost bin]# systemctl stop firewalld
[root@localhost bin]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Tue 2022-08-09 23:09:26 CST; 7s ago
Docs: man:firewalld(1)
Process: 709 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
Main PID: 709 (code=exited, status=0/SUCCESS) Aug 09 21:40:12 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
Aug 09 21:40:18 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
Aug 09 21:40:20 localhost.localdomain firewalld[709]: WARNING: AllowZoneDrifting is enabled. This is ...ow.
Aug 09 23:09:25 localhost.localdomain systemd[1]: Stopping firewalld - dynamic firewall daemon...
Aug 09 23:09:26 localhost.localdomain systemd[1]: Stopped firewalld - dynamic firewall daemon.
Hint: Some lines were ellipsized, use -l to show in full.

9、关闭mysql服务命令

[root@localhost bin]# ./mysqladmin -uroot -p shutdown
Enter password:
[root@localhost bin]# 2022-08-09T15:10:44.675265Z mysqld_safe mysqld from pid file /opt/software/mysql-5.7.35/data/localhost.localdomain.pid ended

三、附加功能配置

1、开机自启动(一种方法)

-- 将mysql.server放置到/etc/init.d/目录下,命名为mysql
[root@localhost support-files]# cp /opt/software/mysql-5.7.35/support-files/mysql.server /etc/init.d/mysql
-- 赋予可执行权限
[root@localhost support-files]# chmod +x /etc/init.d/mysql
-- 添加为服务:
chkconfig --add mysql
-- 查看服务列表
chkconfig --list --看到3、4、5状态为开或者为 on 则表示成功。
--如果是 关或者 off 则执行一下:chkconfig --level 345 mysql on

2、设置systemctl,并设置开机启动

注:如果通过systemctl enable mysql来开启自启,上面的chkconfig的相关配置会被自动清掉,不会冲突

(1)创建文件

[root@localhost data]# vim /usr/lib/systemd/system/mysql.service
mysql.service文件内容
[Unit]
Description=MySQL Server
Documentation=man:mysqld(5.7.35)
Documentation=https://dev.mysql.com/doc/refman/5.7/en/using-systemd.html
After=network.target
After=syslog.target [Install]
WantedBy=multi-user.target [Service]
User=mysql
Group=mysql PIDFile=/opt/software/mysql-5.7.35/data/mysql.pid # Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0 # Execute pre and post scripts as root
PermissionsStartOnly=true
# Needed to create system tables
#ExecStartPre=/usr/bin/mysqld_pre_systemd # Start main service
ExecStart=/opt/software/mysql-5.7.35/bin/mysqld --daemonize --pid-file=/opt/software/mysql-5.7.35/data/mysql.pid
#注意这里要加上 --daemonize
# Use this to switch malloc implementation
#EnvironmentFile=-/etc/sysconfig/mysql # Sets open_files_limit
LimitNOFILE = 5000 Restart=on-failure RestartPreventExitStatus=1 PrivateTmp=false

(2)重新载入systemctl

[root@localhost data]# systemctl daemon-reload

(3)设置开机自启

[root@localhost data]# systemctl enable mysql
Created symlink from /etc/systemd/system/multi-user.target.wants/mysql.service to /usr/lib/systemd/system/mysql.service.

最新文章

  1. Redis所需内存 超过可用内存怎么办
  2. 做小图标还用sprite图?你out了!史上最简单易懂iconfont使用教程
  3. 【代码笔记】iOS-改变文字输入框背景
  4. C#中 导入和导出Excel的方法
  5. WPF之TextBox
  6. Get AD user 的三种方法
  7. OSPF+LVS ,qugga,vconfig,...感觉这些很有想法啊
  8. HH的军训(容斥)
  9. document.onreadystatechange()来判断页面加载完
  10. Mesos+Zookeeper+Marathon+Docker分布式集群管理最佳实践
  11. HBase作为存储方案
  12. 关于php-fpm比较重要的几个参数
  13. PC或者手机上实现相机拉近和旋转
  14. Java获取微信小程序二维码
  15. 多维数组分解----SVD在推荐系统中的应用-
  16. day 60 Django第一天
  17. ubuntu tftp 配置
  18. 【javascript】浏览器用户代理检测脚本实现
  19. 【我的Android进阶之旅】Realm数据库学习资料汇总(持续更新)
  20. 一个 React & Redux的目录树

热门文章

  1. Python学习:Mysql(三)索引
  2. 利用 fastjson 的 toJSONStringWithDateFormat 方法,将Date 格式化 为常见类型的时间
  3. stm32 窗口看门狗
  4. Python 集合常用方法
  5. 动态路由里,将component字符串改变为路由懒加载方法
  6. 新版 Mediasoup Windows 安装 编译
  7. SSM框架 拦截器 出现“发现了以元素 'mvc:exclude-mapping' 开头的无效内容。应以 '{"http://www.springframework.org/schema/mvc":mapping}' 之一开头”错误
  8. Coursera Programming Languages, Part B 华盛顿大学 Week 1
  9. AutoCAD2018_64bit
  10. Python 时间日期获取(今天,昨天或者某一段时间)