想着将MySQL初始化,改变一下存放数据文件的位置:

root@ubuntu:/lvmdata# mkdir data
root@ubuntu:/lvmdata# chown -R mysql:mysql /lvmdata/data

修改MySQL配置文件:

datadir = /lvmdata/data

然后初始化:

root@ubuntu:/lvmdata# mysqld --initialize  --user=mysql --datadir=/lvmdata/data

报错:

mysqld: Can't create directory '/lvmdata/data/' (Errcode: 17 - File exists)

好吧,我让你在data再建一个文件夹好了吧:

root@ubuntu:/lvmdata# mysqld --initialize  --user=mysql --datadir=/lvmdata/data/data
mysqld: Can't create directory '/lvmdata/data/data/' (Errcode: 13 - Permission denied)
2018-01-07T08:59:15.782022Z 0 [ERROR] Aborting

。。。

建好了你说已存在,没建好你说没权限创建,可是明明权限都给mysql用户了啊。

查了下,是这玩意:

因为Ubuntu有个AppArmor,是一个Linux系统安全应用程序,类似于Selinux,AppArmor默认安全策略定义个别应用程序可以访问系统资源和各自的特权,如果不设置服务的执行程序,即使你改了属主属组并0777权限,也是对服务起不到作用。

ok,apt安装下MySQL默认数据目录是/var/lib/mysql,其它的目录权限都不可。开始修改:

# vim /etc/apparmor.d/usr.sbin.mysqld

找到:

# Allow data dir access
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,

修改为:

# Allow data dir access
/lvmdata/data/ r,
/lvmdata/data/** rwk,

重启apparmor服务:

# service apparmor restart

再初始化MySQL:

root@ubuntu:/lvmdata/data# mysqld --initialize --user=mysql --datadir=/lvmdata/data

成功:

root@ubuntu:/lvmdata/data# ls
auto.cnf ibdata1 ib_logfile1 mysql sys
ib_buffer_pool ib_logfile0 ibtmp1 performance_schema

启动服务,登录:

root@ubuntu:/lvmdata/data# service mysql start
root@ubuntu:/lvmdata/data# mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

root密码没了。。。

对于Mysql 5.7.6以后的5.7系列版本,Mysql使用mysqld --initialize或mysqld --initialize-insecure命令来初始化数据库,后者可以不生成随机密码。但是安装Mysql时默认使用的是前一个命令,这个命令也会生成一个随机密码。改密码保存在了Mysql的日志文件中。

查找MySQL日志:

root@ubuntu:/var/log/mysql# tail /var/log/mysql/error.log
2018-01-07T09:43:31.587130Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2018-01-07T09:43:31.697297Z 0 [ERROR] Too many arguments (first extra is 'mysqld').
2018-01-07T09:43:31.697318Z 0 [ERROR] Aborting 2018-01-07T09:44:51.131747Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-01-07T09:44:51.417055Z 0 [Warning] InnoDB: New log files created, LSN=45790
2018-01-07T09:44:51.518291Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2018-01-07T09:44:51.597737Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 686d9f78-f38f-11e7-a027-000c2927e6cf.
2018-01-07T09:44:51.601893Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2018-01-07T09:44:51.603154Z 1 [Note] A temporary password is generated for root@localhost: Qs0K5tiIA7-K

最后一行,密码Qs0K5tiIA7-K,再登录成功并要求更改密码:

mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

更改:

mysql>  SET PASSWORD = PASSWORD('yourpwd');
Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)

圆满解决!

Ubuntu初始化MySQL碰到的坑的更多相关文章

  1. ubuntu安装mysql遇到的坑----解决Mysql报错缺少libaio.so.1

    最近学习大数据,涉及到hive的部分需要安装mysql,于是就在linux环境下尝试安装,对于我这个linux小白来说,中间遇到很多坑爹问题,在这里做一个记录. 我参考的mysql安装博客: http ...

  2. ubuntu下MySQL安装配置及基本操作

    在linux下安装方法: 分为四种:一: 直接用软件仓库自动安装(如:ubuntu下,sudo apt-get install mysql-server; Debain下用yum安装): 二:官网下载 ...

  3. 一步到位Linux中安装配置MySQL及补坑

    Windows上安装MySQL也就不讲了,基本上一路点击下一步就可完成,现在讲讲Linux上布署Mysql,虽然也有很多网友列出了详细的步骤,可能是因为版本过老的问题导致即使按照上面一步步来也还是出现 ...

  4. Ubuntu 安装 Mysql 5.6 数据库

    Ubuntu 安装 Mysql 5.6 数据库 1)下载: mysql-5.6.13-debian6.0-x86_64.deb http://dev.mysql.com/downloads/mirro ...

  5. 那些在BAE上部署node.js碰到的坑

    在BAE上使用node.js半年多了,其中碰到了不少因为BAE云环境限制碰到的坑 写下来大家碰到了,也不用那么麻烦的去看好几天代码了,直接对症下药 官方公布的坑有: BAE是使用package.jso ...

  6. ubuntu安装mysql

    好记性不如烂笔头,记录一下,ubuntu安装mysql的指令. 安装MySQL: sudo apt-get install mysql-server sudo apt-get install mysq ...

  7. Ubuntu的Mysql指南

    安装MySQL sudo apt-get install mysql-server 这个应该很简单了,而且我觉得大家在安装方面也没什么太大问题,所以也就不多说了,下面我们来讲讲配置. 配置MySQL ...

  8. ubuntu下mysql添加用户的问题

    在ubuntu下使用命令: $:sudo apt-get install mysql-server 命令安装的Mysql 版本为:Server version: 5.7.13-0ubuntu0.16. ...

  9. 安装初始化mysql后,默认几个库介绍

    背景介绍:  当我们安装初始化mysql后,默认建了几个数据库,那么这些数据库有什么作用呢?mysql> show databases;+--------------------+| Datab ...

随机推荐

  1. vue.js介绍,常用指令,事件,以及制作简易留言版

    一.vue是什么? 一个mvvm框架(库).和angular类似,比较容易上手.小巧,让我们的代码更加专注于业务逻辑,而不是去关注DOM操作 二.vue和angular之间的区别 vue--简单易学 ...

  2. window.setInterval与window.setTimeout使用实例

    <script type="text/javascript"> var arrived = false; var num = 0; var timer = window ...

  3. Python 学习(1) 简单的小爬虫

    最近抽空学了两天的Python,基础知识都看完了,正好想申请个联通日租卡,就花了2小时写了个小爬虫,爬一下联通日租卡的申请页面,看有没有好记一点的手机号~   人工挑眼都挑花了. 用的IDE是PyCh ...

  4. 分布式文件系统及FastDFS

    1.前言 今天来谈谈分布式文件系统,侧重点是文件系统,分布式稍微带一下.然后聊下我用的FastDFS的例子. 2.从小需求开始 我的博客的编辑器用的是markdown,它内嵌了一个文件上传功能,不过后 ...

  5. 腾讯云安全:移动 APP 安全行业报告

    移动 APP 已逐步渗透入我们的生活,据统计,2016年,APP 发行数量仅电商.金融.游戏这三大类共计高达2万左右,国内移动互联网活跃用户数已经突破10亿,移动互联网这样快速的推移,移动互联网的安全 ...

  6. redis缓存的安装和配置

    ubantu16.04环境下安装 下载安装,依次执行命令; # 从官方网站下载安装包,注意,当前在哪个目录下执行命令,下载的包将在哪个目录下 $ wget http://download.redis. ...

  7. 配置SQL Server on Linux(1)

    1. 背景 SQL Server一般是在安装过程中进行相关的配置,安装完成之后,再去修改有一些配置就比较麻烦,比如更改SQL Server实例级别的排序规则.但在Linux下,安装过程并没有很多可以配 ...

  8. 关于IntelliJ IDEA有时候快捷键无效的说明

    1.这个原因最大的因素可能就是 搜狗输入法了, 关闭搜狗输入法,ok, 2.也可能是qq快捷键冲突,关闭它. 3.也可能是搜狗输入法快捷键冲突,关闭它.

  9. GIT如何从本地上传代码到github

    转载请标明出处: http://blog.csdn.net/hanhailong726188/article/details/46738929 本文出自:[海龙的博客] 开篇之前说下题外话,之前写过一 ...

  10. DotNetCore跨平台~Moq框架实现模拟测试

    回到目录 当我们进行软件开发时,一般会写单元测试,而对于业务情景来说,一般是测试它的业务逻辑准确性,对于你的测试数据是否来自数据库还是文件,是否为真实还是模拟,并不是很关心!我关心的就是我的业务逻辑是 ...