`
aaabes
  • 浏览: 8038 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

ubuntu16.04 mysql修改datadir的折腾

 
阅读更多


回顾:

主要是mysql-systemd-start脚本中的路径开始没修改,换这种启动方式后没注意到他,引出了初始化数据库的一堆折腾。




OS:Ubuntu16.04

MySQL:5.7.17


apt install之后默认datadir 为/var/lib/mysql,希望修改下datadir的路径

修改/etc/mysql/mysql.conf.d/mysqld.cnf中的datadir,并删除了原来的/var/lib/mysql文件夹(也可将这个原来的内容mv过去,就不用初始化了),

修改/etc/apparmor.d/usr.sbin.mysqld中的datadir路径为新的值, 并service apparmor reload重启服务。


在新路径下执行数据库初始化

在/webdata/db存在,但mysql不存在情况下,执行报无权限。如果手动创建,又报路径已存在的错误。

zhujinhua@ThinkPad-E455:/webdata$ mysqld --initialize
mysqld: Can't create directory '/webdata/db/mysql/' (Errcode: 13 - Permission denied)
2016-12-17T14:50:43.250752Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2016-12-17T14:50:43.261000Z 0 [ERROR] Aborting

参考了:

http://bugs.mysql.com/bug.php?id=82281

https://blogs.oracle.com/jsmyth/entry/apparmor_and_mysql
了解到是apparmor的问题。但路径确实修改过了。


这个通过暂时停止apparmor的服务执行数据库初始化成功




启动mysql服务,

zhujinhua@ThinkPad-E455:/webdata$ systemctl restart mysql.service
Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
启动失败,按提示查看原因



zhujinhua@ThinkPad-E455:/webdata$ journalctl -xe
12月 17 23:22:26 ThinkPad-E455 systemd[1]: Stopped MySQL Community Server.
-- Subject: Unit mysql.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit mysql.service has finished shutting down.
12月 17 23:22:26 ThinkPad-E455 systemd[1]: Starting MySQL Community Server...
-- Subject: Unit mysql.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit mysql.service has begun starting up.
12月 17 23:22:26 ThinkPad-E455 mysql-systemd-start[31248]: MySQL system database not found. Please run mysql_install_db tool.
12月 17 23:22:26 ThinkPad-E455 systemd[1]: mysql.service: Control process exited, code=exited status=1
12月 17 23:22:26 ThinkPad-E455 systemd[1]: Failed to start MySQL Community Server.
-- Subject: Unit mysql.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit mysql.service has failed.
-- 
-- The result is failed.
12月 17 23:22:26 ThinkPad-E455 systemd[1]: mysql.service: Unit entered failed state.
12月 17 23:22:26 ThinkPad-E455 systemd[1]: mysql.service: Failed with result 'exit-code'.
12月 17 23:22:27 ThinkPad-E455 systemd[1]: mysql.service: Service hold-off time over, scheduling restart.
12月 17 23:22:27 ThinkPad-E455 systemd[1]: Stopped MySQL Community Server.
-- Subject: Unit mysql.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit mysql.service has finished shutting down.
12月 17 23:22:27 ThinkPad-E455 systemd[1]: mysql.service: Start request repeated too quickly.
12月 17 23:22:27 ThinkPad-E455 systemd[1]: Failed to start MySQL Community Server.
-- Subject: Unit mysql.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit mysql.service has failed.
-- 
-- The result is failed.



查看/usr/share/mysql/mysql-systemd-start文件

sanity () {
  if [ ! -r /etc/mysql/my.cnf ]; then
    echo "MySQL configuration not found at /etc/mysql/my.cnf. Please create one."
    exit 1
  fi

  if [ ! -d /var/lib/mysql ] && [ ! -L /var/lib/mysql ]; then
    echo "MySQL data dir not found at /var/lib/mysql. Please create one."
    exit 1
  fi

  if [ ! -d /var/lib/mysql/mysql ] && [ ! -L /var/lib/mysql/mysql ]; then
    echo "MySQL system database not found. Please run mysql_install_db tool."
    exit 1
  fi
}

原来这里的路径还是以前的,于是定义个新变量,值为新路径,将设计原路径的统统修改
sanity () {
  if [ ! -r /etc/mysql/my.cnf ]; then
    echo "MySQL configuration not found at /etc/mysql/my.cnf. Please create one."
    exit 1
  fi

  datadir=/webdata/db/mysql
  sysdbdir=$datadir/mysql
  if [ ! -d $datadir ] && [ ! -L $datadir ]; then
    echo "MySQL data dir not found at $datadir. Please create one."
    exit 1
  fi

  if [ ! -d $sysdbdir ] && [ ! -L $sysdbdir ]; then
    echo "MySQL system database $sysdatadir not found. Please run mysql_install_db tool."
    exit 1
  fi
}


启动成功后从error.log中找到初始化时生产的密码,

2016-12-17T14:56:46.781127Z 1 [Note] A temporary password is generated for root@localhost: xxxxxx

用此登录即可
分享到:
评论

相关推荐

    ubuntu16.04 mysql5.7 离线包及依赖

    libmysqld-dev_5.7.25-1ubuntu16.04_amd64.deb,mysql-client_5.7.25-1ubuntu16.04_amd64.deb,mysql-common_5.7.25-1ubuntu16.04_amd64.deb,mysql-community-client_5.7.25-1ubuntu16.04_amd64.deb,mysql-...

    Ubuntu16.04LTS正版镜像-Ubuntu16.04系统ios-Linux官网资源

    Ubuntu 16.04 LTS,全称是Ubuntu 16.04 Long Term Support,是Ubuntu操作系统的一个重要版本,由Canonical公司发布。LTS代表长期支持,意味着这个版本将获得长达五年的官方安全更新和技术支持,对于企业和个人用户来...

    Ubuntu16.04离线安装软件-离线安装包mysql5.7.33

    在Ubuntu 16.04操作系统中,有时由于网络限制,我们无法直接使用`apt install`命令在线安装MySQL Server 5.7.33。此时,我们需要采用离线安装的方法来解决这个问题。以下是一个详细的步骤指南,涵盖了如何使用提供的...

    MySQL8 Ubuntu16.04 64位 懒人安装包

    MySQL8在Ubuntu 16.04 64位系统上的安装通常涉及到多个步骤,包括获取软件源,更新系统库,安装依赖项,配置服务,以及初始化数据库。这个"MySQL8 Ubuntu16.04 64位 懒人安装包"提供了便捷的方式,通过一个名为`...

    ubuntu16.04安装包,百度云下载链接与密码

    ### Ubuntu 16.04 LTS 安装包获取及安装指南 #### 一、Ubuntu 16.04 LTS 简介 Ubuntu 16.04 LTS(长期支持版)是一款基于Linux内核的操作系统,由Canonical公司及其社区共同开发。此版本发布于2016年4月21日,是...

    ubuntu16.04安装mysql5.7脚本

    在Ubuntu 16.04上安装MySQL 5.7是一项常见的系统管理任务,尤其对于开发者和运维人员来说。MySQL 5.7是该数据库管理系统的一个稳定版本,提供了许多性能改进和新特性。以下是关于使用脚本在Ubuntu 16.04上自动安装...

    钉钉 for ubuntu16.04

    【钉钉 for Ubuntu 16.04】是一款专为Ubuntu 16.04操作系统设计的钉钉桌面客户端,让Linux用户也能享受便捷的企业级通讯体验。在Ubuntu上安装这款应用,通常需要通过Debian包(.deb)格式进行。下面我们将详细探讨...

    U盘制作ubuntu16.04系统,下载,安装整理

    制作Ubuntu 16.04系统U盘及安装步骤详解 在本文中,我们将深入探讨如何使用U盘制作Ubuntu 16.04系统,并详细阐述安装过程。首先,我们需要准备一个空的U盘,Ubuntu 16.04桌面版的ISO镜像文件(针对AMD64架构),...

    Ubuntu 16.04入门手册 Getting Started with Ubuntu 16.04.rar

    《Ubuntu 16.04入门手册》是针对新手用户深入了解和使用Ubuntu 16.04 LTS(长期支持版)操作系统的详细指南。Ubuntu 16.04,代号Xenial Xerus,是Ubuntu发行的一个重要版本,以其稳定性和广泛的软件支持而受到用户的...

    mysql-Ubuntu16.04安装及配置

    ubuntu 16.04下mysql的安装及配置文档,很工整,齐全

    Ubuntu16.04安装VMtools

    ### Ubuntu 16.04 安装 VMware Tools 的详细步骤 #### 一、前言 在使用虚拟化技术时,提高宿主机与虚拟机之间的兼容性和交互性是非常重要的。VMware Tools 是一种增强工具包,它能显著提升 VMware 虚拟机的性能,...

    Ubuntu 16.04入门手册 Getting Started with Ubuntu 16.04

    Ubuntu 16.04是Ubuntu操作系统的一个版本,自发布以来,凭借其稳定性和易用性广受用户欢迎。Ubuntu 16.04入门手册为新用户提供了从安装到基础使用的全面指导。 手册开篇介绍了Ubuntu的历史和哲学,Ubuntu起源于非洲...

    ubuntu 16.04 安装 eclipse教程和总结

    ### Ubuntu 16.04 下 Eclipse 的安装与配置教程 #### 一、前言 随着软件开发领域的不断发展,集成开发环境(IDE)已经成为开发者不可或缺的工具之一。Eclipse 是一款非常受欢迎且功能强大的开源 IDE,它支持多种...

    ubuntu16.04.7镜像

    ubuntu-16.04.7-desktop-amd64 下载链接:https://blog.csdn.net/kt1776133839/article/details/123229169

    Ubuntu16.04离线安装包vsftpd

    **Ubuntu 16.04离线安装VSFTPD** VSFTPD,全称为Very Secure FTP Daemon,是一款安全且功能强大的FTP服务器软件。在Ubuntu 16.04系统中,如果你需要在没有网络连接的情况下安装它,可以采用离线安装的方式。下面将...

    emqttd-ubuntu16.04-v2.3.0.zip

    “emqttd-ubuntu16.04-v2.3.0.zip”是一个针对Ubuntu 16.04操作系统的EMQTT服务器软件包,版本号为2.3.0。这个压缩包包含了一整套部署和运行EMQTT broker所需的文件,使得用户能够在该操作系统上搭建和管理MQTT服务...

    ubuntu-tweak ubuntu 16.04 LTS

    ubuntu 16.04 可以方便使用的清理工具 ubuntu-tweak ubuntu 16.04 LTS

    ubuntu16.04

    ubuntu16.04 iso 镜像。ubuntu16.04 iso 镜像。ubuntu16.04 iso 镜像。ubuntu16.04 iso 镜像。ubuntu16.04 iso 镜像。ubuntu16.04 iso 镜像。ubuntu16.04 iso 镜像。

    Ubuntu16.04 离线安装openssh所需的安装包deb(修正了安装步骤)

    在Ubuntu 16.04系统中,OpenSSH是一个至关重要的工具,它提供了安全的远程登录功能,使得用户可以通过SSH协议在不同的计算机之间进行通信。然而,在没有网络连接的情况下,离线安装OpenSSH可能需要一些特殊的步骤。...

    Ubuntu 16.04 中文版安装基础入门教程.doc

    《Ubuntu 16.04 中文版安装基础入门教程》 Ubuntu 16.04,也称为Xenial Xerus,是一款基于Debian的Linux发行版,由Ubuntu项目维护,面向全球用户提供了丰富的开源操作系统体验。这篇教程将引导初学者如何安装Ubuntu...

Global site tag (gtag.js) - Google Analytics