mariadb 无法以错误开始

Posted

技术标签:

【中文标题】mariadb 无法以错误开始【英文标题】:mariadb cannot start with error 【发布时间】:2017-11-09 20:37:46 【问题描述】:

我已经重启了服务器。

mariadb 没有自动启动。

所以我会输入 service mysqld start。但显示我不能从错误开始。

mariadb 无法以排序规则开始

我想开始没有错误

我使用的是 centos 6.5

**# mysql --version**
mysql  Ver 15.1 Distrib 10.1.19-MariaDB, for Linux (x86_64) using readline 5.1

**# ./mysqld_safe &**
mysqld_safe Logging to '/var/lib/mysql/localhost.localdomain.err'

**localhost.localdomain.err shows me**
mysqld_safe mysqld from pid file /var/lib/mysql/localhost.localdomain.pid ended
mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
[Warning] '--skip-locking' is deprecated and will be removed in a future release. Please use '--skip-external-locking' instead.
[ERROR] Unknown collation: 'utf8mb4_unicode_ci'
[ERROR] Aborting
[Note] /usr/libexec/mysqld: Shutdown complete

**my.cnf**
[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
collation-server = utf8mb4_unicode_ci
character-set-server = utf8mb4

【问题讨论】:

用排序规则注释掉该行;看看它是否更进一步。也许然后可以进行进一步的分析。 (该排序规则应该在该版本中可用。) 【参考方案1】:

无论您在那台机器上拥有什么服务器,它都不是 MariaDB 10.1。 mysql --version只显示client版本,确实是MariaDB 10.1,但server不是。

MariaDB 10.1 不会对skip-locking 发出警告,这将是一个错误,因为该选项早在 10.1 之前就已被删除。它甚至在 5.5 中都不存在。

您最有可能拥有的是 MySQL 5.1,它仍然在 CentOS 6 上提供。也许您尝试在其上安装 MariaDB,但它并不顺利,或者发生了类似的事情。

MySQL 5.1 没有utf8mb4,所以这个错误是有道理的,尽管我预计它会在character-set-server 上失败。您可能在其他地方有另一个配置覆盖character-set-server(并添加了skip-locking,这在您的粘贴中不存在,但它必须来自某个地方)。

【讨论】:

它在设置为相同环境的服务器上运行良好。【参考方案2】:

添加

skip-character-set-client-handshake

如果通过启动选项设置排序规则,则在 my.cnf 中的 mysqld 下解决任何冲突。

https://dev.mysql.com/doc/refman/5.7/en/charset-server.html

【讨论】:

这不是解决方案。

以上是关于mariadb 无法以错误开始的主要内容,如果未能解决你的问题,请参考以下文章

您正在以匿名用户身份使用 mariadb

MariaDB 触发错误以获取名称长度

无法在 MariaDB 中插入查询

Centos7安装 mariadb启动错误解决

Mariadb 无法重启|启动

安装的mariadb怎么在配置文件里设置密码