刚开始学习MySQL,在这里记录一下遇到的问题。


#Issue 1: InnoDB: The innodb_system data file 'ibdata1' must be writable

按照菜鸟教程上的MySQL教程,在CentOS7上利用RPM包安装好MySQL后第一次启动服务:

systemctl start mysqld.service

结果启动失败,查看mysql服务的启动日志:

日志位置:var/log/mysqld.log

2018-07-10T03:28:38.289394Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.11) starting as process 10959
2018-07-10T03:28:38.502207Z 1 [ERROR] [MY-012271] [InnoDB] InnoDB: The innodb_system data file 'ibdata1' must be writable
2018-07-10T03:28:38.502279Z 1 [ERROR] [MY-012278] [InnoDB] InnoDB: The innodb_system data file 'ibdata1' must be writable
2018-07-10T03:28:38.502331Z 1 [ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine
2018-07-10T03:28:38.502619Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2018-07-10T03:28:38.502667Z 0 [ERROR] [MY-010119] [Server] Aborting
2018-07-10T03:28:38.521513Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.11)  MySQL Community Server - GPL.

注意到第一个Error:[InnoDB] InnoDB: The innodb_system data file 'ibdata1' must be writable,可能是权限不够的原因,于是修改'ibdata1'所在文件夹的权限:

MySQL data默认路径:/var/lib/mysql

chmod -R 777 /var/lib/mysql

再次启动服务,终于启动成功。

参考资料:

1. https://blog.csdn.net/revitalizing/article/details/60801945

2. https://blog.csdn.net/king_1421484363/article/details/73293411


#Issue 2: ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY 'jack'' at line 1

在 MySQL 8.0.11 使用下面的语句新建用户时出现上述错误提示语法有错,但很多教程和博客里面都是这么写的,试了好几种写法都不行。

mysql> create database testdb;
Query OK, 1 row affected (0.12 sec)mysql> GRANT ALL PRIVILEGES ON testdb.* TO 'jack'@'localhost' IDENTIFIED BY 'jack';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY 'jack'' at line 1

最后,终于找到两篇博客提到了可行的语句,可能是 MySQL 8.0 新建用户的语法有了变化,和 5.7 里面不一样。因为没有安装 5.7 版本,所以没有在两者上进行测试和比较。

注意:先创建用户,再赋予权限。

mysql> CREATE USER 'jack'@'localhost' IDENTIFIED BY 'jack';
Query OK, 0 rows affected (0.10 sec)mysql> GRANT ALL PRIVILEGES ON testdb.* TO 'jack'@'localhost';
Query OK, 0 rows affected (0.15 sec)mysql> SELECT User,Host,authentication_string FROM mysql.user;
+------------------+-----------+------------------------------------------------------------------------+
| User             | Host      | authentication_string                                                  |
+------------------+-----------+------------------------------------------------------------------------+
| jack             | localhost | $A$005$K6It6;FdUl892m1O666GuDr24SdHgSOfwMqIzX2eazro1LvS0WFp. |
| mysql.infoschema | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE                              |
| mysql.session    | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE                              |
| mysql.sys        | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE                              |
| root             | localhost | $A$005$)X&ZtcYI;gK][0' `YgZ2N6.h5V8CrjQhDtYFRW4F4ej1EjvkJl.TwUJf76D |
| testdb           | localhost | $A$005$&}f/l+e>2Y1vWsi{:G765sml.tBbkt3UPiybWevyd7CDngUjc/K5wLKqZOU6 |
+------------------+-----------+------------------------------------------------------------------------+
6 rows in set (0.00 sec)

参考资料:

1. https://blog.csdn.net/li_0891/article/details/80915780

2. https://blog.csdn.net/skyejy/article/details/80645981

3. https://dev.mysql.com/doc/refman/8.0/en/adding-users.html(官方文档)

MySQL问题记录(Linux)相关推荐

  1. linux mysql 客户端连接,linux系统中启动mysql方式已经客户端如和连接mysql服务器

    零点间的记录 一.启动方式 1.使用linux命令service 启动: service mysqld start 2.使用 mysqld 脚本启动: /etc/inint.d/mysqld star ...

  2. linux mysql开远程访问,Linux mysql开启远程访问

    默认情况下远程访问会出现 Can't connect to MySQL server on '192.168.10.18′ (10061) 错误 是因为,mysql的默认配置为了增强安全性,禁止了非本 ...

  3. mysql远程访问命令linux,linux mysql远程连接命令

    想必大家都很想知道linux mysql远程连接命令是怎样设置吧?下面由学习啦小编为大家整理了linux mysql远程连接命令的相关只是,希望大家喜欢! linux mysql远程连接命令 Mysq ...

  4. mysql查看连接数 (linux)

    2019独角兽企业重金招聘Python工程师标准>>> mysql查看连接数 (linux) 1.查看当前所有连接的详细资料: ./mysqladmin -uroot -p -hlo ...

  5. linux记录用户命令的日志是,用日志记录Linux用户执行的每一条命令

    用日志记录Linux用户执行的每一条命令 用日志记录Linux用户执行的每一条命令 工作中,需要把用户执行的每一个命令都记录下来,并发送到日志服务器的需求,为此我做了一个简单的解决方案.这个方案会在每 ...

  6. MYSQL.版本查看-LINUX

    MYSQL.版本查看-LINUX 方式1: 不需登录mysql,登录Linux服务后,执行如下指令: # mysql -V 注意: 那个是大写的V,如果使用小写的v,在root没有设置密码的情况下,就 ...

  7. MySQL 当记录不存在时insert,当记录存在时update

    MySQL 当记录不存在时insert,当记录存在时更新 网上基本有三种解决方法. 第一种: 示例一:insert多条记录 假设有一个主键为 client_id 的 clients 表,可以使用下面的 ...

  8. php mysql获取新添加记录的id值_PHP获取MySql新增记录ID值的方法

    今天发现用mysql_insert_id()获取到的新增记录的id不正确, 虽然发现源代码的事务写的有问题,但是最根本的原因是,我插入数据的id类型是bigint型 获取MySql新增记录ID值的方法 ...

  9. mysql 5.6.37 winx64_Mysql 5.6.37 winx64安装双版本mysql笔记记录

    机器上现在已经存在5.0版本Mysql的情况下,继续安装一个最新版的mysql. 一.官网下载免安装压缩包. 本人下载的是mysql-5.6.37-winx64.zip.将压缩包解压到自定义目录中.例 ...

最新文章

  1. 【前端】react and redux教程学习实践,浅显易懂的实践学习方法。
  2. javascript Date 格式化
  3. jquery文本折叠
  4. 华为hcia H31-311 练习题
  5. 记一次Socket.IO长链服务的性能压测
  6. 8种常见SQL错误用法,你犯过几个?
  7. ElasticSearch 聚合查询
  8. python软件下载安装中文版-Python3.7.6下载
  9. 玩转Bootstrap(JS插件篇)-第1章 模态弹出框 :1-2 动画过渡
  10. 2. java程序严格区分_2.java基本语法
  11. Linux操作命令分类详解 - 压缩备份(四)
  12. (笔记)一些有意思的电路
  13. Mac无法连接wifi和手机热点 解决方法
  14. oracle mod函数
  15. 两阶段随机规划模型简介
  16. C++ sqlite3解决中文排序问题
  17. tensorflow2.0实现DeepFM
  18. Java虚拟机讲解 与 搞垮Java虚拟机
  19. 小程序重构 [cnode社区]:mpvue + 开源api,现已上线!
  20. 【Joy of Cryptography 读书笔记】Chapter 6 伪随机函数(Pseudorandom Function)分组密码(Block Cipher)

热门文章

  1. phpcms模板解析php标签失败,phpcms模板解析嵌套标签解析失败
  2. H5 调用扫一扫识别条形码 并返回内容值
  3. 微信小程序版豆瓣同城
  4. LightGBM教程
  5. 初学者学习Eclipse
  6. 10本投行必读书籍+10个必用网站
  7. Vue项目打包后页面一片空白的解决方法
  8. 如何用dw编写一个网页注册:
  9. java main方法的快捷方式
  10. 77道Spring面试题以及参考答案(2021年最新版)