Linux|手动安装 MySQL 教程

目录

使用手动方式安装 MySQL,手动配置 MySQL,使用 systemd 托管 MySQL 启动。

环境:

CentOS 7

MySqL 5.7

一、查看系统信息

# 操作系统信息
cat /etc/redhat-release
cat /etc/os-release
cat /proc/version

# 查看内核版本
uname -a

# 查看 cpu 详细信息
cat /proc/cpuinfo

二、下载地址

https://downloads.mysql.com/archives/community/

wget <url>
# 或
curl -o xxxx.tar.gz <url>

三、解压、配置环境变量

解压

tar -xvf mysqlxxx.tar.gz

配置环境变量,一般配置在 /etc/profile 文件。

vim /etc/profile

# 输入配置环境变量
export PATH=$PATH:<解压mysql的bin目录>

四、初始化数据文件夹

# 1、建立存储数据的文件夹
mkdir /data/mysql3306
mkdir /data/mysql3306/data

# 2、添加mysql用户和用户组
useradd -M -s /sbin/nologin mysql

# 3、修改目录权限
chown -R mysql.mysql /data/mysql3306

# 4、添加启动配置文件
vim /data/mysql3306/my.cnf
--------------------------
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 跳过权限表校验
# skip-grant-tables
skip-name-resolve
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/data/mysql-5.7.39
# 设置mysql数据库的数据的存放目录
datadir=/data/mysql3306/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M

# 5、初始化数据目录
mysqld --initialize-insecure --user=mysql --basedir=/data/mysql3306 --datadir=/data/mysql3306/data

# 如果初始化错误,报缺失 libaio 错误,需要安装该组件
yum install -y libaio

五、将 MySQL 服务加入 systemd

systemd 的配置文件 xxxx.service 一般在 /etc/systemd/system 目录下。

vim /etc/systemd/system/mysqld.service
--------------------------------------
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
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
Type=forking
TimeoutSec=0
PermissionsStartOnly=true
# 通常只配置这里,注意 mysqld 命令必须为绝对路径
ExecStart=/data/mysql-5.7.39/bin/mysqld --defaults-file=/data/mysql3306/my.cnf --daemonize
LimitNOFILE=5000
Restart=on-failure
RestartSec=10
RestartPreventExitStatus=1
PrivateTmp=false

六、启停

# 重新加载守护进程
systemctl daemon-reload
# 启动 mysql
systemctl start mysqld
# 暂停
systemctl stop mysqld
# 查看状态
systemctl status mysqld

登录

# 登录,默认未配置密码
mysql -uroot -S /tmp/mysql.sock

七、设置密码和权限

参加: https://elltor.com/posts/guide/simple-docker-install-mysql8-guide-2020/

相关 / 参考