当前位置: 首页 > 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.jsqmd.com/news/2051/

相关文章:

  • WCF-双工通讯
  • Create lv of type vdo on RHEL8 9
  • 如何做好研发项目的资源分配
  • Notepad++ 最新破解版下载及安装使用教程
  • 跨网文件安全交换系统:打破数据壁垒的高效之选!
  • 【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类与对象的小结
  • 克服getLocation获取当前的地理位置,报错:getLocation:fail auth deny及方法封装
  • 电流探头的测试原理
  • 第四届云计算、大数据应用与软件工程国际学术会议(CBASE 2025)
  • Neo4j常用的语句记录
  • p1-1002
  • Model Context Protocol (MCP) 完整协议流程详解
  • Java中 String、StringBuilder 和 StringBuffer 的区别? - 指南
  • 常用的 HTTP 请求方法和区别
  • C#和Lua相互访问 - 详解
  • jemter 安装
  • Day20创建对象内存分析
  • 熬夜三天!SpringCloud Gateway 动态路由失效,背后黑手竟是它……
  • 解析 Authenticode 部分代码。
  • cmd 执行git bash 命令
  • 实用指南:力扣2132. 用邮票贴满网格图