当我尝试启动/重启它时,Mysqld进程已经存在

时间:2017-11-02 23:09:59

标签: mariadb

我正在使用mariaDB。 基本上每次我启动它,它告诉我一个mysqld进程已经存在。 为什么我必须运行sudo apachectl start以使mysql工作? 我不应该只需要mysql.server start吗?

mysql.server restart
Shutting down MySQL .. SUCCESS! Starting MySQL .171102 15:59:35 mysqld_safe Logging to '/usr/local/var/mysql/****.err'. 171102 15:59:35 mysqld_safe A mysqld process already exists SUCCESS!

一个相关的问题是,当我编辑etc/my.cnf时,它没有做任何事情。 我只知道我做错了什么,但我看不清楚。

编辑: 做完mysql.server后,然后ps aux,这就是我得到的: `

drewson           9625   0.0  0.0  2466636   2756 s001  S+    3:55pm  0:00.59 mysql -u root -p --max_allowed_packet=1073741824 -D hive
drewson          10235   0.0  0.0  2442020   1936 s000  S+    4:36pm   0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn mysql
drewson          10186   0.0  1.3  2969520 108876   ??  S     4:35pm   0:00.26 /usr/local/opt/mariadb/bin/mysqld --basedir=/usr/local/opt/mariadb --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/opt/mariadb/lib/plugin --log-error=/usr/local/var/mysql/drewson.err --pid-file=drewson.pid
drewson          10105   0.0  0.0  2444660   2376   ??  S     4:35pm   0:00.02 /bin/sh /usr/local/opt/mariadb/bin/mysqld_safe --datadir=/usr/local/var/mysql`

这是我的错误日志中的信息:

2017-11-02 16:35:05 140735735079872 [ERROR] mysql.user has no `Event_priv` column at position 29
2017-11-02 16:35:05 140735735079872 [ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_A
2017-11-02 16:35:05 140735735079872 [ERROR] mysqld: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler.
2017-11-02 16:35:05 140735735079872 [Note] Reading of all Master_info entries succeded
2017-11-02 16:35:05 140735735079872 [Note] Added new Master_info '' to hash table
2017-11-02 16:35:05 140735735079872 [Note] /usr/local/opt/mariadb/bin/mysqld: ready for connections.
Version: '10.2.10-MariaDB'  socket: '/tmp/mysql.sock'  port: 3306  Homebrew`

1 个答案:

答案 0 :(得分:4)

由于某些原因,主要重启脚本没有关闭旧的mysql实例,因此my.cnf更改没有反映出来。 (损坏的数据,错误的配置,丢失文件路径pid,错误的权限,mysql启动与其他脚本)。根据您所使用的机器类型以及您所服务的数据类型,您可以尝试手动终止mysql的进程并从脚本再次启动它。但是我看到一些错误消息显示在数据库完整性丢失时(这应该是固定的) - 并且在重新启动系统后,您可能会遇到与启动或数据丢失相同的情况。

我会做更多的步骤:

  1. 备份数据库(表格) mysqldump database > database.sql
  2. 制作整个mysql文件夹的二进制备份(如果可能)
  3. 将mysql升级到最新格式,因为错误日志表明可能存在格式问题mysql_upgrade
  4. 检查表mysqlcheck -u root -p --auto-repair --check --all-databases
  5. 上的问题
  6. 检查磁盘/系统运行状况
  7. 尝试再次停止数据库服务器(修复后)如果失败:
  8. 如果没有错误,请再次检查错误日志:
  9. kill -9 processnumberhere第2列
  10. 中删除流程ps -aux
  11. 检查ps -aux是否仍然列出服务器,启动它并再次检查错误日志
  12. 检查pid文件是否存在ls -l /usr/local/var/mysql/(如果没有进程,请手动删除此文件)
  13. 如果可能的话重启系统 - 有时它会有所帮助......但也可能导致服务器停机。
  14. 希望它有所帮助。