MySQL问题记录(Linux)
刚开始学习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)相关推荐
- linux mysql 客户端连接,linux系统中启动mysql方式已经客户端如和连接mysql服务器
零点间的记录 一.启动方式 1.使用linux命令service 启动: service mysqld start 2.使用 mysqld 脚本启动: /etc/inint.d/mysqld star ...
- linux mysql开远程访问,Linux mysql开启远程访问
默认情况下远程访问会出现 Can't connect to MySQL server on '192.168.10.18′ (10061) 错误 是因为,mysql的默认配置为了增强安全性,禁止了非本 ...
- mysql远程访问命令linux,linux mysql远程连接命令
想必大家都很想知道linux mysql远程连接命令是怎样设置吧?下面由学习啦小编为大家整理了linux mysql远程连接命令的相关只是,希望大家喜欢! linux mysql远程连接命令 Mysq ...
- mysql查看连接数 (linux)
2019独角兽企业重金招聘Python工程师标准>>> mysql查看连接数 (linux) 1.查看当前所有连接的详细资料: ./mysqladmin -uroot -p -hlo ...
- linux记录用户命令的日志是,用日志记录Linux用户执行的每一条命令
用日志记录Linux用户执行的每一条命令 用日志记录Linux用户执行的每一条命令 工作中,需要把用户执行的每一个命令都记录下来,并发送到日志服务器的需求,为此我做了一个简单的解决方案.这个方案会在每 ...
- MYSQL.版本查看-LINUX
MYSQL.版本查看-LINUX 方式1: 不需登录mysql,登录Linux服务后,执行如下指令: # mysql -V 注意: 那个是大写的V,如果使用小写的v,在root没有设置密码的情况下,就 ...
- MySQL 当记录不存在时insert,当记录存在时update
MySQL 当记录不存在时insert,当记录存在时更新 网上基本有三种解决方法. 第一种: 示例一:insert多条记录 假设有一个主键为 client_id 的 clients 表,可以使用下面的 ...
- php mysql获取新添加记录的id值_PHP获取MySql新增记录ID值的方法
今天发现用mysql_insert_id()获取到的新增记录的id不正确, 虽然发现源代码的事务写的有问题,但是最根本的原因是,我插入数据的id类型是bigint型 获取MySql新增记录ID值的方法 ...
- mysql 5.6.37 winx64_Mysql 5.6.37 winx64安装双版本mysql笔记记录
机器上现在已经存在5.0版本Mysql的情况下,继续安装一个最新版的mysql. 一.官网下载免安装压缩包. 本人下载的是mysql-5.6.37-winx64.zip.将压缩包解压到自定义目录中.例 ...
最新文章
- 【前端】react and redux教程学习实践,浅显易懂的实践学习方法。
- javascript Date 格式化
- jquery文本折叠
- 华为hcia H31-311 练习题
- 记一次Socket.IO长链服务的性能压测
- 8种常见SQL错误用法,你犯过几个?
- ElasticSearch 聚合查询
- python软件下载安装中文版-Python3.7.6下载
- 玩转Bootstrap(JS插件篇)-第1章 模态弹出框 :1-2 动画过渡
- 2. java程序严格区分_2.java基本语法
- Linux操作命令分类详解 - 压缩备份(四)
- (笔记)一些有意思的电路
- Mac无法连接wifi和手机热点 解决方法
- oracle mod函数
- 两阶段随机规划模型简介
- C++ sqlite3解决中文排序问题
- tensorflow2.0实现DeepFM
- Java虚拟机讲解 与 搞垮Java虚拟机
- 小程序重构 [cnode社区]:mpvue + 开源api,现已上线!
- 【Joy of Cryptography 读书笔记】Chapter 6 伪随机函数(Pseudorandom Function)分组密码(Block Cipher)