安装依赖
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/mysql
export 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 默认密码以及访问权限
- 输入
mysql -u root --skip-password
命令登录MySQL
- 输入
ALTER USER 'root'@'localhost' IDENTIFIED BY "123";
命令(123即密码,可自定义)修改密码 - 推荐:输入以下命令使
root
用户可以任意IP
地址访问- 输入
use mysql;
切换到mysql
库 - 输入
update user set host = '%' where user = 'root';
设置访问权限
- 输入
- 输入
flush privileges;
命令刷新权限 - 输入
exit
退出
文章内容大部分来自:
CentOS7 / Debian12 安装 MySQL 8.4.x LTS https://maxqiu.com/article/detail/5
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容