一、下载网址
注: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.
分类:
安装部署
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?