1. 首页
  2. Linux

Debian12上安装MySQL

一、下载对应的软件包

下载地址:https://dev.mysql.com/downloads/

image.png
image.png
image.png
wget https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb

二、安装mysql-apt-config软件包

apt install dpkg -y
apt install gnupg -y
sudo dpkg -i mysql-apt-config_0.8.33-1_all.deb
image.png

三、安装MySQL

# 更新apt
sudo apt update -y

# 安装mysql-server
sudo apt install -y mysql-server

这里不用输入密码,直接 enter 进入下一步

image.png

四、查看是否安装成功

# 输入以下命令回车
mysql --version
image.png

五、修改my.cnf默认配置

# 停止MySQL服务
systemctl stop mysql

# 删除MySQL文件
rm -rf /var/lib/mysql

#编辑配置文件
vim /etc/mysql/my.cnf

将以下内容追加到 my.cnf 文件后

[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
max_connections = 5000
wait_timeout = 7200
max_allowed_packet=512M
tmp_table_size=2G
bind-address=0.0.0.0
lower_case_table_names = 1
log_error_verbosity = 1
default-time-zone = '+08:00'

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

如果想要修改 MySQL 文件存储位置,则需要在  mysqld 配置下修改 datadir 配置,完整如下

[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
max_connections = 5000
wait_timeout = 7200
max_allowed_packet=512M
tmp_table_size=2G
bind-address=0.0.0.0
lower_case_table_names = 1
log_error_verbosity = 1
default-time-zone = '+08:00'

datadir=/data/mysql

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

修改 MySQL 文件存储位置需要确保 MySQL 用户具有对新目录的适当权限。

# 创建文件存储目录
mkdir -p /data/mysql

# 修改目录权限
chown -R mysql:mysql /data/mysql
chmod 750 /data/mysql

重启 MySQL,重启后会重新在目录 /var/lib/mysql(或新目录 /data/mysql) 下生成MySQL文件

systemctl restart mysql

六、修改 MySQL 密码

# 直接登录,这里不用输入密码
mysql -uroot

# 查询MySQL字符集是否修改成功
SHOW VARIABLES LIKE '%character%';

# 修改密码,MySQL8版本密码认证方式为 caching_sha2_password 
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'new_password';

# 刷新权限
FLUSH PRIVILEGES;

七、开放 root 账户远程登录

# 登录进 MySQL
use mysql;
update user set host='%' where user='root';

# 重载授权表
FLUSH PRIVILEGES;

八、设置开机启动

#设置开机启动
systemctl enable mysql
systemctl daemon-reload
systemctl restart mysql

TOP