mysql安装完成后配置数据库数据存储路径

MySQL 数据目录迁移需严格按步骤操作:先查当前路径(SELECT @@datadir),再停服务,完整复制数据,修改配置文件中 datadir 并同步权限与SELinux上下文,最后验证启动与库可见性。

mysql安装完成后配置数据库数据存储路径

确认 MySQL 当前数据目录位置

安装完 MySQL 后,datadir 默认值由配置文件决定,不同系统/安装方式初始路径不同(如 /var/lib/mysql 在 Linux,C:/ProgramData/MySQL/MySQL Server 8.0/Data/ 在 Windows)。直接改路径前必须先查清当前实际值,否则迁移会失败。

  • 登录 MySQL 执行:
    SELECT @@datadir;
  • 或查看配置文件(Linux 常为 /etc/my.cnf/etc/mysql/my.cnf;Windows 常为 my.ini),搜索 datadir
  • 注意:如果配置文件里没显式写 datadir,就以 MySQL 启动时默认路径为准,SELECT @@datadir 最可靠

停止 MySQL 服务并复制数据文件

不能在服务运行时直接修改 datadir 路径,否则启动报错 Can't start server: Bind on TCP/IP port: Address already in use 或更常见的 Table 'mysql.plugin' doesn't exist —— 这是因为系统表未加载,根源是数据目录不对。

  • Linux:
    sudo systemctl stop mysql

    (或 mysqld,视服务名而定)

  • Windows:
    net stop mysql

    (服务名为实际注册名,可用 sc query | findstr mysql 查)

  • rsync -av /var/lib/mysql/ /new/path/mysql/(Linux)或完整复制整个原 datadir 目录(含子目录和隐藏文件,如 ibdata1ib_logfile*mysql/performance_schema/ 等)
  • 切勿只复制数据库名对应的子目录,否则权限表、系统表丢失,MySQL 无法启动

修改配置文件并调整权限

只改 my.cnfmy.ini 中的 datadir 不够,新路径的属主和权限必须匹配 MySQL 进程运行用户(通常是 mysql),否则启动时日志报 Can't open the mysql.plugin table. Please run mysql_upgrade 或直接拒绝访问。

MTTSHOP包包免费商城系统

MTTSHOP包包免费商城系统

一款非常包包、衣服、鞋子类网站,页面干净清洁、一目了然,mttshop打造精致、简单、易用、免费的商城。 系统要求:IIS5.1以后,必须安装.net 3.5 安装步骤: 1、下载完成后,直接解压文件mttshop.rar 2、附加数据库:解压后的可以找一个叫db的文件夹,解压后直接附加就可以,支持SQL 2000、2005、2008 3、配置web.config文件,找到key=&qu

下载

  • 编辑配置文件,在 [mysqld] 段下设置:
    datadir = /new/path/mysql
  • Linux:执行
    sudo chown -R mysql:mysql /new/path/mysql

    sudo chmod -R 750 /new/path/mysql
  • Windows:右键新文件夹 → 属性 → 安全 → 编辑 → 添加 MySQL 服务对应用户(如 NT SERVICE/Mysql),赋予“完全控制”
  • 若启用了 selinux(如 CentOS/RHEL),还需运行:
    sudo semanage fcontext -a -t mysqld_db_t "/new/path/mysql(/.*)?"

    ,再

    sudo restorecon -Rv /new/path/mysql

验证启动与检查状态

MySQL 对 datadir 内容非常敏感,哪怕多一个空格、少一个文件,都可能卡在初始化阶段,错误日志(error.log)里常出现 InnoDB: Operating system error number 13(权限拒绝)或 unknown variable 'datadir'(配置语法错)。

  • Linux 启动:
    sudo systemctl start mysql

    ;查看状态:

    sudo systemctl status mysql
  • Windows 启动:
    net start mysql

    ;检查错误日志路径(SHOW VARIABLES LIKE 'log_error';

  • 成功后执行:
    SELECT @@datadir, SCHEMA_NAME FROM information_schema.SCHEMATA;

    确认路径已更新且所有库可见

  • 若启动失败,优先检查错误日志末尾几行,90% 的问题出在权限、SELinux、路径拼写或残留 pid 文件(/var/run/mysqld/mysqld.pid

MySQL 数据目录迁移不是改个路径就行的事,核心在于:路径、权限、配置三者严格一致,且每一步都依赖上一步正确完成。漏掉 chown 或忘了删旧 pid 文件,都会让服务卡在“启动中”。

https://www.php.cn/faq/2015427.html

发表回复

Your email address will not be published. Required fields are marked *