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/