我使用的是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 stop之后,然后执行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`发布于 2017-11-03 08:13:14
由于某些原因,主重启脚本没有关闭旧的my.cnf实例,所以mysql的更改没有反映出来。(数据损坏、配置错误、缺少文件路径pid、权限错误、mysql使用其他脚本启动)。根据机器的类型和服务的数据类型,您可以尝试手动终止mysql的进程,然后从脚本重新启动它。但我看到一些错误消息,当数据库完整性有点丢失时(这应该被修复)-在重新启动系统后,您可能会遇到与启动时相同的情况或数据丢失。
我会做一些更像这样的步骤:
mysqldump database > database.sqlmysql_upgrade kill -9 processnumberhere来自ps -aux第2列ps -aux如果服务器仍未列出,启动它并再次检查错误日志ls -l /usr/local/var/mysql/ (如果没有进程,请手动删除此文件)希望它能帮上点忙。
https://stackoverflow.com/questions/47086011
复制相似问题