Je ne parviens pas à utiliser MySQL sur mon MacBook. J'essaie de démarrer mon serveur à l'aide de Sudo mysqld_safe
. Le résultat est le suivant:
140131 00:03:02 mysqld_safe Logging to '/usr/local/var/mysql/david-mbp.err'.
140131 00:03:02 mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql
140131 00:03:03 mysqld_safe mysqld from pid file /usr/local/var/mysql/david-mbp.pid ended
J'ai jeté un coup d'œil à cette question et les problèmes et méthodes que j'ai essayés pour résoudre mes problèmes sont identiques. Sa solution était la mise à niveau vers Lion, mais je suis déjà sur la dernière version de Mavericks, ce n’est donc pas une solution viable pour moi.
J'ai cherché sur Google et réinstallé de nombreuses fois, mais je n'ai pas réussi à trouver la raison de mon problème.
Comment puis-je résoudre ce problème?
Modifier:
140131 00:03:02 mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql
2014-01-31 00:03:03 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2014-01-31 00:03:03 13223 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/var/mysql/ is case insensitive
2014-01-31 00:03:03 13223 [Note] Plugin 'FEDERATED' is disabled.
/usr/local/Cellar/mysql/5.6.15/bin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13 - Permission denied)
2014-01-31 00:03:03 13223 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
2014-01-31 00:03:03 13223 [Note] InnoDB: The InnoDB memory heap is disabled
2014-01-31 00:03:03 13223 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2014-01-31 00:03:03 13223 [Note] InnoDB: Compressed tables use zlib 1.2.3
2014-01-31 00:03:03 13223 [Note] InnoDB: Using CPU crc32 instructions
2014-01-31 00:03:03 13223 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2014-01-31 00:03:03 13223 [Note] InnoDB: Completed initialization of buffer pool
2014-01-31 00:03:03 13223 [ERROR] InnoDB: ./ibdata1 can't be opened in read-write mode
2014-01-31 00:03:03 13223 [ERROR] InnoDB: The system tablespace must be writable!
2014-01-31 00:03:03 13223 [ERROR] Plugin 'InnoDB' init function returned error.
2014-01-31 00:03:03 13223 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2014-01-31 00:03:03 13223 [ERROR] Unknown/unsupported storage engine: InnoDB
2014-01-31 00:03:03 13223 [ERROR] Aborting
2014-01-31 00:03:03 13223 [Note] Binlog end
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'partition'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'PERFORMANCE_SCHEMA'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'INNODB_SYS_DATAFILES'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'INNODB_SYS_TABLESPACES'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'INNODB_SYS_FOREIGN_COLS'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'INNODB_SYS_FOREIGN'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'INNODB_SYS_FIELDS'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'INNODB_SYS_COLUMNS'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'INNODB_SYS_INDEXES'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'INNODB_SYS_TABLESTATS'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'INNODB_SYS_TABLES'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'INNODB_FT_INDEX_TABLE'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'INNODB_FT_INDEX_CACHE'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'INNODB_FT_CONFIG'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'INNODB_FT_BEING_DELETED'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'INNODB_FT_DELETED'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'INNODB_FT_DEFAULT_STOPWORD'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'INNODB_METRICS'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'INNODB_BUFFER_POOL_STATS'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'INNODB_BUFFER_PAGE_LRU'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'INNODB_BUFFER_PAGE'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'INNODB_CMP_PER_INDEX_RESET'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'INNODB_CMP_PER_INDEX'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'INNODB_CMPMEM_RESET'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'INNODB_CMPMEM'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'INNODB_CMP_RESET'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'INNODB_CMP'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'INNODB_LOCK_WAITS'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'INNODB_LOCKS'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'INNODB_TRX'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'BLACKHOLE'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'ARCHIVE'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'MRG_MYISAM'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'MyISAM'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'MEMORY'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'CSV'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'sha256_password'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'mysql_old_password'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'mysql_native_password'
2014-01-31 00:03:03 13223 [Note] Shutting down plugin 'binlog'
2014-01-31 00:03:03 13223 [Note] /usr/local/Cellar/mysql/5.6.15/bin/mysqld: Shutdown complete
140131 00:03:03 mysqld_safe mysqld from pid file /usr/local/var/mysql/david-mbp.pid ended
ls -l/usr/local/var/mysql sortie:
-rw-rw---- 1 dave admin 50331648 30 Jan 22:35 ib_logfile0
-rw-rw---- 1 dave admin 50331648 30 Jan 22:35 ib_logfile1
-rw-rw---- 1 dave admin 12582912 30 Jan 22:35 ibdata1
drwx------ 81 dave admin 2754 30 Jan 22:35 mysql
drwx------ 55 dave admin 1870 30 Jan 22:35 performance_schema
-rw-r----- 1 _mysql admin 4784 31 Jan 00:03 david-mbp.err
drwx------ 2 dave admin 68 30 Jan 22:35 test
Les autorisations de fichiers sont certainement la cause du problème. Il existe de bien meilleurs experts que moi, mais je recommande ce qui suit:
Assurez-vous que l’ensemble de votre répertoire de données appartient à l’utilisateur _mysql
avec les autorisations drwxr-xr-x
.
Dans votre cas, il semble que votre répertoire d'installation MySQL soit votre répertoire de données. Mon répertoire de données se trouve dans un sous-répertoire du répertoire d'installation.
Vous pouvez probablement être opérationnel en modifiant les autorisations par la commande:
Sudo chown -R _mysql:admin /usr/local/var/mysql
Sudo chmod -R u+rwX,g+rwX,o-rwx /usr/local/var/mysql
Cela peut empêcher votre compte dave
d'accéder au répertoire d'installation mysql sans Sudo
. Vous pouvez donc modifier ces autorisations pour inclure g+rwx
si votre utilisateur dave
est membre du groupe admin
qu'il semble être. Ce Tweak serait accompli avec:
Sudo chmod -R g+rwx /usr/local/var/mysql
j'ai corrigé cela en supprimant simplement le fichier ".err". En quelque sorte, le journal des erreurs appartenant à "_mysql" et empêcher mysqld zu start.
Dans mon cas, j'ai eu un problème similaire sur Mac OS 10.10 Yosemite. Pour une raison quelconque, lorsque j'ai tué manuellement le processus mysql, il a changé la propriété du fichier journal des erreurs /usr/local/var/mysql/rally.local.err
en _mysql
au lieu de caleb
. Contrairement à la solution acceptée ci-dessus, le reste de mon répertoire appartient à caleb
et non _mysql
.
Je l'ai corrigé en exécutant Sudo chown caleb /usr/local/var/mysql/rally.local.err
Pour mémoire, je suppose que la méthode appropriée pour arrêter et démarrer le serveur mysql dans Yosemite est d'utiliser /usr/local/var/mysql/mysql.server start|stop|restart
.
Si vous ne disposez pas de données importantes, le plus simple serait de réinstaller MariaDB à partir de zéro (sinon, ignorez cette étape), par exemple.
mv /usr/local/var/mysql /usr/local/var/mysql.bak
brew reinstall mariadb
Fixez ensuite les autorisations en:
Sudo chmod -R u+rwX,g+rwX,o-rwx /usr/local/var/mysql
Sudo chown -R $USER:_mysql /usr/local/var/mysql
Redémarrez les services MariaDB en:
brew services restart mariadb
Pensez à configurer vos informations d'identification MariaDB en exécutant:
mysql_secure_installation
Si cela ne fonctionne toujours pas, recherchez dans les journaux d'autres problèmes en:
tail /usr/local/var/mysql/*.err
Par exemple, vérifiez si l’ancien fichier de configuration contient des paramètres non valides, car ils risquent de ne plus être pris en charge.