posts - 8,comments - 1,views - 11473

一、下载网址

注: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.
posted on   流浪点  阅读(567)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示