Debian 12 安装 MySQL 8.4.2 LTS

安装依赖

apt -y install xz-utils libaio1 libnuma1 libncurses5 libncurses6

下载mysql包并解压

wget https://dev.mysql.com/get/Downloads/MySQL-8.4/mysql-8.4.2-linux-glibc2.28-x86_64.tar.xz
tar -xvf mysql-8.4.2-linux-glibc2.28-x86_64.tar.xz && rm -rf mysql-8.4.2-linux-glibc2.28-x86_64.tar.xz
mv mysql-8.4.2-linux-glibc2.28-x86_64 /usr/local/mysql 

建议放至 /usr/local 目录下

配置log目录和mycnf文件

新建一个log目录

mkdir /usr/local/mysql/log

新建 my.cnf 配置文件

vim /usr/local/mysql/my.cnf

这是在别的博主那学到的,感觉还不错,已经够用了

[mysql]
# 客户端默认字符集
default-character-set=utf8mb4
[mysqld]
# === 基础配置 ===
# 绑定ipv4地址,默认*绑定ipv4与ipv6
bind-address=0.0.0.0
# 端口号
port=3306
# 服务端使用的字符集
character-set-server=utf8mb4
# 数据库排序字符集
collation_server=utf8mb4_general_ci
# 服务器在关闭交互式连接之前等待活动的秒数,默认28800(8小时)
interactive_timeout=7200
# 服务器关闭非交互连接之前等待活动的秒数,默认28800(8小时)
wait_timeout=3600
# 写入错误日志的消息以及写入文件的常规查询日志和慢速查询日志消息中的时间戳的时区,默认UTC时间,SYSTEM代表取系统时间
log_timestamps=SYSTEM
# 最大允许数据包
max_allowed_packet=1073741824
# 关闭MySQLx(一般情况下用不到)MySQL5.7不支持此选项,使用时需要注释此配置
mysqlx=0
# === 基础目录 ===
# 安装目录
basedir=/usr/local/mysql
# 数据库的数据的存放目录
datadir=/usr/local/mysql/data
# === 日志相关 ===
## >>> 慢查询日志
# 开启慢查询日志,默认OFF,建议开发和测试环境开启
slow_query_log=ON
# 慢查询日志文件位置
slow_query_log_file=/usr/local/mysql/log/log-slow.log
# 慢查询时间阈值,默认10,单位:秒
long_query_time=1
## >>> 错误日志
# 错误日志存放文件,默认 datadir 目录下
log_error=/usr/local/mysql/log/log-error.log
# 开启事务中所有死锁的InnoDB信息记录在错误日志中
innodb_print_all_deadlocks=ON
## >>> 二进制日志
# 二进制日志文件基础名称以及路径,默认 datadir 目录下
log_bin=/usr/local/mysql/log/log-bin
## >>> 中继日志,主从复制时,从机需要配置
# 中继日志文件位置,默认 datadir 目录下
#relay_log=/usr/local/mysql/log/log-rela

设置环境变量

编辑环境变量配置文件

vim /etc/profile

在文档最后添加如下内容

export MYSQL_HOME=/usr/local/mysqlexport PATH=$PATH:$MYSQL_HOME/bin

插入后保存文件

使环境变量生效

source /etc/profile

新建 mysql 用户、 mysql 用户组,修改文件夹所属用户

新建 mysql 用户(同时会自动创建同名的 mysql 用户组)

groupadd mysql
useradd -r -g mysql -s /bin/false mysql

将 /usr/local/mysql 的所有者及所属组改为 mysql

chown -R mysql:mysql /usr/local/mysql/

添加服务

编辑服务配置文件

vim /usr/lib/systemd/system/mysql.service

添加如下内容

[Unit]
Description=MySQL Server
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
LimitNOFILE=65535
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/my.cnf

刷新系统服务、设置开机自启、启动服务、查看服务状态

systemctl daemon-reload
systemctl enable mysql.service
systemctl start mysql.service
systemctl status mysql.service

修改 MySQL 默认密码以及访问权限

  1. 输入 mysql -u root --skip-password 命令登录 MySQL
  2. 输入 ALTER USER 'root'@'localhost' IDENTIFIED BY "123"; 命令(123即密码,可自定义)修改密码
  3. 推荐:输入以下命令使 root 用户可以任意 IP 地址访问
    1. 输入 use mysql; 切换到 mysql 库
    2. 输入 update user set host = '%' where user = 'root'; 设置访问权限
  4. 输入 flush privileges; 命令刷新权限
  5. 输入 exit 退出

文章内容大部分来自:
CentOS7 / Debian12 安装 MySQL 8.4.x LTS https://maxqiu.com/article/detail/5

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容