Linux安装MySQL5.7并设置systemd方式管理

发布时间 2024-01-10 16:17:25作者: 年少莫听李宗盛

1、安装前检查

1)检查linux系统是否安装过mysql

# 检查系统中有无安装过mysql,如果有就卸载
rpm -qa|grep mysql
rpm -e --nodeps mysql-xxxx
# 检查所有mysql对应的文件夹,全部删除
whereis mysql
find / -name mysql
rm -rf ......
# 删除mysql的配置文件
rm -rf /etc/my.cnf
# 删除/etc/init.d/下跟mysql有关的全部文件(mysql,mysqld)
cd /etc/init.d/
ll
rm -rf ......

2)卸载linux系统自带的mariadb

# 检查系统自带的Mariadb,如果有就卸载
rpm -qa|grep mariadb
rpm -e --nodeps mariadb-xxxxxx

 3)检查有无安装过mysql 用户组,没有的话创建

# 检查mysql用户组是否存在
cat /etc/group | grep mysql
cat /etc/passwd |grep mysql
[root@localhost /]# userdel mysql
userdel: user 'mysql' does not exis
# 创建mysql用户组和用户
groupadd mysql
useradd -r -g mysql mysql

2、下载安装包

Linux安装mysql一般有四种方式:

1)二进制发布版安装:软件已经针对具体平台编译打包发布,只要解压,修改配置即可;

2)rpm安装:软件已经按照redhat的包管理规范进行打包,使用rpm命令进行安装,不能自行解决库依赖问题;

*缺点:需要手动先安装,当前安装程序的依赖程序,否则可能会导致安装失败

3)yum安装:一种在线软件安装方式,本质上还是rpm安装,自动下载安装包并安装安装过程中自动解决库依赖问题;

4)源码编译安装:软件以源码工程的形式发布,需要自己编译打包。

本次使用二进制发布包安装方式安装Mysql5.7。从官网下载安装包,优先选择目录 /usr/local/:

cd /usr/local/
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz

3、解压mysql安装包

# 解压安装包
tar -zxvf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
# 文件夹重命名,保证规范
mv mysql-5.7.31-linux-glibc2.12-x86_64 mysql
# 在/usr/local/mysql目录下创建data目录
mkdir /usr/local/mysql/data

4、修改mysql目录的下所有的目录及文件夹的用户组和用户的权限

# 将mysql目录的所属用户和组改为mysql
chown -R mysql:mysql /usr/local/mysql
# 更改mysql安装文件夹mysql/的权限,授权的目的是防止读写没有权限
chmod -R 755 /usr/local/mysql

5、编译安装并初始化mysql,务必记住数据库管理员临时密码

cd  /usr/local/mysql/bin
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

6、编写配置文件 my.cnf

创建配置文件 my.cnf:

vi /etc/my.cnf

配置文件内容如下:

[mysqld]
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 设置3306端口
port = 3306
# 服务端使用的字符集utf8
character-set-server = utf8
collation-server = utf8_general_ci
init_connect = 'SET NAMES utf8'
# 创建新表时将使用的默认存储引擎
default-storage-engine = INNODB
# 表名大小写敏感
lower_case_table_names = 0
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# 允许最大连接数
max_connections=500

7、直接启动mysql服务

执行完安装与配置后,mysql服务可以直接通过命令启动。

/usr/local/mysql/support-files/mysql.server start

8、登录mysql ,修改初始密码、远程授权等

mysql -u root -p
set password for root@localhost = password('by123456');
use mysql;
update user set user.Host='%' where user.User='root';
flush privileges;

9、设置systemd服务管理mysql,并设置开机自启动

除了直接启动,也可以将mysql设置为全局服务进行管理。

创建用于Systemd的mysql服务配置文件:

vi /etc/systemd/system/mysql.service

在配置文件内添加以下内容:

[Unit]
Description=MySQL Server
Documentation=https://dev.mysql.com/doc/refman/5.7/en/
[Service]
ExecStart=/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf
User=mysql
Group=mysql
Restart=always
RestartSec=3
LimitNOFILE=infinity
[Install]
WantedBy=multi-user.target

然后重载系统服务:

systemctl daemon-reload

使用systemd管理mysql的全部命令:

#启动mysql服务
systemctl start mysql.service
#设置开机自启动
systemctl enable mysql.service
#停止开机自启动
systemctl disable mysql.service
#查看服务当前状态
systemctl status mysql.service
#重新启动服务
systemctl restart mysql.service
#查看所有已启动的服务
systemctl list-units --type=service

 10、开启防火墙端口

如果服务器防火墙生效,还需要开放3306端口,以允许远程访问mysql数据库。

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-ports