当前位置: 首页 > news >正文

ubuntu安装mysql8并切换数据存储目录

一、安装Mysql

在 Ubuntu 上安装 MySQL 可以通过apt命令完成。

1、更新系统包列表

sudo apt update

2、安装 MySQL Server

sudo apt install mysql-server

3、验证 MySQL 服务状态

确认 MySQL 服务是否正常运行:

sudo systemctl status mysql
如果服务未启动,可以手动启动:
 
sudo systemctl start mysql
设置服务开机自启:
 
sudo systemctl enable mysql

4、安全配置 MySQL

使用安全配置向导加固数据库环境:
 
sudo mysql_secure_installation
建议的配置选项如下:
  • 设置 root 密码(如果之前未设置)
  • 移除匿名用户
  • 禁止 root 远程登录(根据需求选择)
  • 删除测试数据库
  • 重新加载权限表

 二、MySQL基本配置

1、MySQL修改密码

从 MySQL 5.7.6 开始,推荐使用 ALTER USER 语句来修改密码。

mysql -u root -p

输入 root 用户的密码。

注意:在 MySQL 5.7 及更高版本中,root 用户可能配置为使用 auth_socket 认证方式。这种情况下,如果你以 root 用户登录系统,你可以无需密码直接登录 MySQL。你可以通过以下命令检查当前的认证方式:

SELECT user, host, plugin FROM mysql.user WHERE user = 'root';

如果 plugin 列显示为 auth_socket,则表示 root 用户使用的是 auth_socket 认证方式。

如果你希望 root 用户使用密码认证,可以将其认证方式改为 mysql_native_password

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';
FLUSH PRIVILEGES;

这将强制 root 用户在登录时输入密码。

 

MySQL 8 的密码规则由 validate_password 插件统一控制,默认已启用。
下面给出当前版本(MySQL 8.0/8.4)生效的核心参数与典型值,全部可在运行时通过 SHOW VARIABLES LIKE 'validate_password%'; 查看。
 
 
参数说明默认值/范围备注
validate_password.policy 强度等级 MEDIUM(1) 可选 LOW(0)、MEDIUM(1)、STRONG(2)
validate_password.length 最小长度 8 字符 8.0 起允许 1-12 字符 
 
validate_password.mixed_case_count 至少大小写字母 1 MEDIUM 及以上生效
validate_password.number_count 至少数字 1 MEDIUM 及以上生效
validate_password.special_char_count 至少特殊字符 1 MEDIUM 及以上生效
validate_password.check_user_name 是否允许与用户名相同 ON 建议保持 ON

示例:把策略改成“强”且最小长度 12

SET GLOBAL validate_password.policy = STRONG;      -- 2
SET GLOBAL validate_password.length = 12;        -- 1-12 之间 [^31^]
创建用户时密码必须同时满足:
  • 长度 ≥ 12
  • 包含大小写字母、数字、特殊字符
  • 不能是常见弱口令(STRONG 级别会调用内置字典过滤)
注意:从 MySQL 8.4 开始,若使用传统 mysql_native_password 插件,需先在配置里加 mysql_native_password=ON 并重启实例,否则会被禁用。

2、常见MySQL 服务命令

查看 MySQL 服务状态

sudo systemctl status mysql

启动 MySQL 服务

sudo systemctl start mysql

停止 MySQL 服务

sudo systemctl stop mysql

重启 MySQL 服务

sudo systemctl restart mysql

重新加载 MySQL 服务配置

sudo systemctl reload mysql

设置 MySQL 服务开机自启

sudo systemctl enable mysql

禁用 MySQL 服务开机自启

sudo systemctl disable mysql

三、修改MySQL的存储路径

 1、查看当前的存储路径

 需要先登录进MySQL。

show variables like 'datadir';

image

2、停止MySQL服务

sudo systemctl stop mysql

为了避免数据不一致,需要提前停止数据库服务。

3、创建新存储路径并且赋权

例如我需要将MySQL数据存储路径更改为/data/mysql下。

mkdir -p /data/mysql
cp -R /var/lib/mysql/* /data/mysql
chmod -R 777 /data
chown -R mysql:mysql /data/mysql

image

 注意以上文件需要赋权给mysql

4、修改配置文件 mysqld.cnf

vim /etc/mysql/mysql.conf.d/mysqld.cnf
datadir        = /data/mysql

image

 5、修改安全保护文件

vim /etc/apparmor.d/usr.sbin.mysqld
/data/mysql/ r,
/data/mysql/** rwk,

image

 6、重新加载策略并恢复强制模式

apparmor_parser -r /etc/apparmor.d/usr.sbin.mysqld
aa-enforce /usr/sbin/mysqld

7、修改mysql访问控制文件

vim /etc/apparmor.d/abstractions/mysql
/data/mysql{,d}/mysql{,d}.sock rw,

image

 8、重启服务并查看运行状态

service mysql restart
systemctl status mysql

image

 

 

 

 
http://www.hskmm.com/?act=detail&tid=14424

相关文章:

  • WCF-双工通讯
  • 跨网文件安全交换系统:打破数据壁垒的高效之选!
  • 【F#学习】可区分联合 Discriminated Unions
  • Midscene.js - 开源的 AI 操作助手 - 广东靓仔
  • 详细介绍:【Datawhale25年9月组队学习:llm-preview+Task1:大模型介绍与环境配置】
  • Git仓库ssh不同环境配置
  • 超大附件怎么发送的高效解决方案与技巧
  • dm sql 缓存区
  • 给国外传输大文件的最佳策略与解决方案
  • idea mvn package 报错java head space/ java.lang.OutOfMemoryError: Java heap space
  • 大环境不好,这几个赚钱网站可以试试
  • Day20类与对象的小结
  • 电流探头的测试原理
  • 第四届云计算、大数据应用与软件工程国际学术会议(CBASE 2025)
  • Neo4j常用的语句记录
  • p1-1002
  • Model Context Protocol (MCP) 完整协议流程详解
  • 常用的 HTTP 请求方法和区别
  • 第七届机器学习、大数据与商务智能国际会议(MLBDBI 2025)
  • 【OpenCV】11 形态学操作
  • 安装与使用trex
  • 自建 Supabase 云服务与 BeeCount 云同步详解
  • CF2134 Codeforces Round 1045 (Div. 2) 游记(VP)
  • jemter 安装
  • Day20创建对象内存分析
  • 熬夜三天!SpringCloud Gateway 动态路由失效,背后黑手竟是它……
  • cmd 执行git bash 命令
  • 安全向量模板类SiVector - 实践
  • 最佳三维文件格式,以及怎么在线浏览编辑FBX/OBJ/GLB/GLTF
  • FR报表下拉框高度(JS添加css样式方式)调整