J'essaie d'installer MySQL sur mac os 10.6 en utilisant Homebrew avec brew install mysql 5.1.52
.
Tout se passe bien et je réussis aussi avec le mysql_install_db
.
Cependant, lorsque j'essaie de me connecter au serveur en utilisant:
/usr/local/Cellar/mysql/5.1.52/bin/mysqladmin -u root password 'mypass'
Je reçois:
/usr/local/Cellar/mysql/5.1.52/bin/mysqladmin: se connecter au serveur à l'adresse 'localhost' ) '
J'ai aussi essayé d'accéder à mysqladmin or mysql using -u root -proot
,
mais cela ne fonctionne pas avec ou sans mot de passe.
Il s'agit d'une toute nouvelle installation sur une toute nouvelle machine et, autant que je sache, la nouvelle installation doit être accessible sans mot de passe root. J'ai aussi essayé:
/usr/local/Cellar/mysql/5.1.52/bin/mysql_secure_installation
mais je reçois aussi
ERROR 1045 (28000): Accès refusé pour l'utilisateur 'root' @ 'localhost' (avec mot de passe: NO)
Je pense que l'on peut se retrouver dans cette position avec les anciennes versions de mysql déjà installées. J'ai eu le même problème et aucune des solutions ci-dessus n'a fonctionné pour moi. Je l'ai fixé ainsi:
Utilisez les commandes remove
& cleanup
de brew, déchargez le script launchctl
, puis supprimez le répertoire mysql dans /usr/local/var
, supprimez mon /etc/my.cnf
existant (laissez celui-ci à vous, le cas échéant) et lancez-vous plist
Mise à jour de la chaîne pour le plist. Notez également que votre répertoire de script de sécurité alternatif sera basé sur la version de MySQL que vous installez.
Pas à pas:
brew remove mysql
brew cleanup
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Sudo rm -rf /usr/local/var/mysql
J'ai alors commencé à partir de zéro:
brew install mysql
a lancé les commandes proposées: (voir remarque: ci-dessous)
unset TMPDIR
mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
Démarrez mysql avec la commande mysql.server start
pour pouvoir vous connecter
Utilisé le script de sécurité alternatif:
/usr/local/Cellar/mysql/5.5.10/bin/mysql_secure_installation
Suit la section launchctl
à partir de la sortie du script du package brew, telle que,
#start
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
#stop
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Boom.
J'espère que ça aide quelqu'un!
Remarque: le bit --force
de brew cleanup
nettoie également les fûts obsolètes, pense qu'il s'agit d'une nouvelle fonctionnalité homebrew.
Notez la seconde: un intervenant dit que l'étape 2 n'est pas obligatoire. Je ne veux pas le tester, alors YMMV!
Voici des instructions détaillées pour combiner l’élimination de MySQL de votre Mac, puis l’installation de The Brew Way comme l’a écrit Sedorner ci-dessus:
ps -ax | grep mysql
kill
tous les processus MySQLSudo rm /usr/local/mysql
Sudo rm -rf /usr/local/var/mysql
Sudo rm -rf /usr/local/mysql*
Sudo rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Sudo rm -rf /Library/StartupItems/MySQLCOM
Sudo rm -rf /Library/PreferencePanes/My*
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
/etc/hostconfig
et supprimez la ligne MYSQLCOM=-YES-
rm -rf ~/Library/PreferencePanes/My*
Sudo rm -rf /Library/Receipts/mysql*
Sudo rm -rf /Library/Receipts/MySQL*
Sudo rm -rf /private/var/db/receipts/*mysql*
mysql
, cela ne devrait pas fonctionnerbrew doctor
et corrigez les erreursbrew remove mysql
brew cleanup
brew update
brew install mysql
unset TMPDIR
mysql_install_db --verbose --user=
whoami--basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
mysql.server start
launchctl
pour qu'il se lance automatiquement au démarragemysql
devrait maintenant fonctionner et fonctionner tout le temps comme prévu
Bonne vitesse.
Avait le même problème. On dirait que quelque chose ne va pas dans les instructions de configuration ou les tables initiales en cours de création. C'est ainsi que mysqld a fonctionné sur ma machine.
Si le serveur mysqld est déjà en cours d'exécution sur votre Mac, arrêtez-le d'abord avec:
launchctl unload -w ~/Library/LaunchAgents/com.mysql.mysqld.plist
Démarrez le serveur mysqld avec la commande suivante qui permet à tout le monde de se connecter avec des autorisations complètes.
mysqld_safe --skip-grant-tables
Puis lancez mysql -u root
qui devrait vous permettre de vous connecter sans mot de passe. La commande suivante devrait réinitialiser tous les mots de passe root.
UPDATE mysql.user SET Password=PASSWORD('NewPassword') WHERE User='root'; FLUSH PRIVILEGES;
Maintenant, si vous supprimez la copie active de mysqld_safe et que vous le redémarrez sans l'option skip-grant-tables, vous devriez pouvoir vous connecter avec mysql -u root -p
et le nouveau mot de passe que vous venez de définir.
Si brew a installé MySQL 5.7, le processus est légèrement différent de celui des versions précédentes . Pour réinitialiser le mot de passe root, procédez comme suit:
Sudo rm -rf /usr/local/var/mysql
mysqld --initialize
Un mot de passe temporaire sera imprimé sur la console et il ne peut être utilisé que pour mettre à jour le mot de passe root:
mysql.server start
echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'my-new-password';" | mysql -uroot --password=TEMPORARY_PASSWORD
D'accord, j'ai eu le même problème et résolu. Pour une raison quelconque, le script mysql_secure_installation ne fonctionne pas immédiatement lorsque vous utilisez Homebrew pour installer mysql, je l’ai donc fait manuellement. Sur la CLI, entrez :
mysql -u root
Cela devrait vous mettre dans mysql. Maintenant, faites ce qui suit (tiré de mysql_secure_installation):
UPDATE mysql.user SET Password=PASSWORD('your_new_pass') WHERE User='root';
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
DELETE FROM mysql.user WHERE User='';
DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'
DROP DATABASE test;
FLUSH PRIVILEGES;
Maintenant, quittez et retournez dans mysql avec: mysql -u root -p
J'ai eu le même problème tout à l'heure. Si vous brew info mysql
et suivez les étapes, il semble que le mot de passe root devrait être new-password
si je me souviens bien. Je voyais la même chose que vous voyez. Cet article m'a aidé le plus.
Il s'est avéré que je n'avais aucun compte créé pour moi. Lorsque je me suis connecté après avoir exécuté mysqld_safe
et que j'ai select * from user;
, aucune ligne n'a été renvoyée. J'ai ouvert MySQLWorkbench avec le mysqld_safe
en cours d'exécution et ajouté un compte root
avec tous les privilèges que j'attendais. Cela fonctionne bien pour moi maintenant.
Arrêtez mysql complètement.
mysql.server stop
<- peut avoir besoin d'une édition basée sur votre versionps -ef | grep mysql
<- liste les processus avec mysql dans leur nomkill [PID]
<- tuer les processus par PIDSupprimer des fichiers. Les instructions ci-dessus sont bonnes. Je vais ajouter:
Sudo find /. -name "*mysql*"
rm -rf
ces fichiers. Notez que de nombreux programmes ont des pilotes pour mysql que vous ne voulez pas supprimer. Par exemple, ne supprimez pas de contenu dans le répertoire d'installation de PHP. Supprimez les éléments dans son propre répertoire mysql.J'espère que vous avez un homebrew. Sinon, téléchargez-le.
J'aime faire fonctionner le breuvage en tant que racine, mais je ne pense pas que vous ayez à le faire. Edit 2018: vous ne pouvez plus utiliser brew en tant que root
Sudo brew update
Sudo brew install cmake
<- dépendance pour mysql, utileSudo brew install openssl
<- dépendance pour mysql, utileSudo brew info mysql
<- parcourez ceci ... cela vous donne une idée de ce qui va suivreSudo brew install mysql --with-embedded; say done
<- Installe mysql avec le serveur intégré. Vous dit quand ça finit (mon installation a pris 10 minutes)Sudo chown -R mysql /usr/local/var/mysql/
<- mysql ne fonctionnerait pas avant que j'aie lancé cette commandeSudo mysql.server start
<- encore une fois, la syntaxe exacte peut varierbrasser info mysql
mysql: stable 5.6.12 (bottled)
http://dev.mysql.com/doc/refman/5.6/en/
Conflicts with: mariadb, mysql-cluster, percona-server
/usr/local/Cellar/mysql/5.6.12 (9363 files, 353M) *
Poured from bottle
From: https://github.com/mxcl/homebrew/commits/master/Library/Formula/mysql.rb
==> Dependencies
Build: cmake
==> Options
--enable-debug
Build with debug support
--enable-local-infile
Build with local infile loading support
--enable-memcached
Enable innodb-memcached support
--universal
Build a universal binary
--with-archive-storage-engine
Compile with the ARCHIVE storage engine enabled
--with-blackhole-storage-engine
Compile with the BLACKHOLE storage engine enabled
--with-embedded
Build the embedded server
--with-libedit
Compile with editline wrapper instead of readline
--with-tests
Build with unit tests
==> Caveats
A "/etc/my.cnf" from another install may interfere with a Homebrew-built
server starting up correctly.
To connect:
mysql -uroot
To reload mysql after an upgrade:
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
mysql.service start
. ERROR! The server quit without updating PID file (/var/run/mysqld/mysqld.pid).
ou mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Je cherche une solution depuis quelque temps mais je ne peux pas résoudre mon problème. J'ai essayé plusieurs solutions dans stackoverflow.com mais cela ne m'aide pas.
TL; DR
Le serveur MySQL peut ne pas être en cours d'exécution après l'installation avec Brew. Essayez brew services start mysql
ou simplement mysql.server start
si vous ne voulez pas que MySQL s'exécute en tant que service d'arrière-plan.
Histoire complète:
Je viens d'installer MySQL (stable) 5.7.17 sur un nouveau MacBook Pro exécutant Sierra et j'ai également une erreur lors de l'exécution de mysql_secure_installation
:
Securing the MySQL server deployment.
Enter password for user root:
Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Tu peux répéter s'il te plait?
Selon les informations d'installation de Brew, mysql_secure_installation
devrait m'inviter à ... sécuriser l'installation. J'ai pensé que le serveur MySQL pourrait ne pas fonctionner correctement. Exécuter brew services start mysql
puis mysql_secure_installation
a fonctionné comme un charme.
Essayez en donnant l'autorisation d'accorder la commande de mysql
Aucune des réponses ci-dessus (ni aucune des dizaines de réponses que j'ai vues ailleurs) ne fonctionnait pour moi lorsque j'utilisais Brew avec la version la plus récente de MySQL et de Yosemite. J'ai fini par installer une version différente de MySQL via Brew.
Spécifier une ancienne version en disant (par exemple)
brew install mysql56
Travaillé pour moi J'espère que ça aide quelqu'un. C'était un problème frustrant sur lequel je me sentais bloqué pour toujours.
Le "chemin de base" pour Mysql est stocké dans /etc/my.cnf
qui n'est pas mis à jour lors de la mise à niveau par brassage Il suffit de l'ouvrir et de changer la valeur basedir
Par exemple, changez ceci:
[mysqld]
basedir=/Users/3st/homebrew/Cellar/mysql/5.6.13
pour pointer vers la nouvelle version:
[mysqld]
basedir=/Users/3st/homebrew/Cellar/mysql/5.6.19
Redémarrez mysql avec:
mysql.server start
J'ai eu le même problème après avoir essayé de redémarrer mysql.
J'utilise les deux alias suivants dans mon .profile pour plus de commodité
alias mysql-stop='launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist'
alias mysql-start='launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist'
Après avoir arrêté mysql et essayé de redémarrer, j'ai rencontré le problème que vous rencontriez. J'ai examiné le chargement launchctl et il signalait une erreur «rien trouvé à charger».
Après une recherche rapide, j'ai trouvé ceci ..
http://www.daveoncode.com/2013/02/01/solve-mac-osx-launchctl-nothing-found-to-load-error/
Donc je m’ai mis à jour le mysql-start
alias comme suit
alias mysql-start='launchctl load -w -F ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist'
Cela a résolu mon problème qui pourrait vous être utile.
Voici une mise à jour pour MySQL 5.7
bash --version GNU bash, version 4.4.12 (1) - release (x86_64-Apple-darwin17.0.0) Droits d'auteur (C) 2016 Free Software Foundation, Inc. .. Licence GPLv3 + : GNU GPL version 3 ou ultérieure .__ Ceci est un logiciel libre; vous êtes libre de le changer et de le redistribuer . Il n'y a AUCUNE GARANTIE, dans la mesure permise par la loi . # ================== =================== brassin --version Homebrew 1.7.6 Homebrew/homebrew-core (révision git eeb08; dernier commit 2018-09-27) Homebrew/homebrew-cask (dernière version du git c9f62; dernier commit 2018-09-27) # ================= ====================== mysql --version mysql Ver 14.14 Distrib 5.7.23, pour osx10.13 (x86_64) en utilisant EditLine wrapper # ======================================= system_profiler SPSoftwareDataType Software: Aperçu du logiciel système: Version du système: macOS 10.13.3 (17D47) Version du noyau: Darwin 17.4.0 Volume de démarrage: Macintosh HD Mode d'amorçage: Normal Nom de l'ordinateur: EdisonMacHomeBj Nom d'utilisateur: Edison (edison) Secure Virtual Memory: Enabled Protection de l'intégrité du système: Désactivé Temps écoulé depuis le démarrage: 6 jours 23:13
brew supprimer [email protected] brew cleanup mv/usr/local/var/mysql /usr/local/var/mysql.bak brew installer [email protected] rm -rf/usr/local/var/mysql # =================================== ==== mysqld --initialize 2018-09-28T04: 54: 06.526061Z 0 [Avertissement] L'horodatage avec la valeur implicite DEFAULT est obsolète. Veuillez utiliser l'option de serveur --explicit_defaults_for_timestamp (voir la documentation pour plus de détails) . 2018-09-28T04: 54: 06.542625Z 0 [Avertissement] Définition de lower_case_table_names = 2 car le système de fichiers pour/usr/local/var/mysql/is insensible à la casse 2018-09-28T04: 54: 07.096637Z 0 [Avertissement] InnoDB: Création de nouveaux fichiers journaux, LSN = 45790 2018-09-28T04: 54: 07.132950Z 0 [Avertissement] InnoDB: Création étrangère key contrainte tables système ..__2018-09-28T04: 54: 07.196824Z 0 [Avertissement] Aucun UUID existant n'a été trouvé. Nous supposons donc que c'est la première fois que ce serveur est démarré. Génération d'un nouvel UUID: 87cf2f10-c2da-11e8-ac2d-ba163df10130 . 2018-09-28T04: 54: 07.224871Z 0 [Avertissement] La table Gtid n'est pas prête à être utilisée. La table 'mysql.gtid_executed' ne peut pas être ouverte . 2018-09-28T04: 54: 07.366688Z 0 [Avertissement] Le certificat de l'autorité de certification ca.pem est auto-signé . 2018-09-28T04: 54: 07.457954Z 1 [Note] Un mot de passe temporaire est généré pour root @ localhost: kq3K = JR8; GqZ # ========================= =============... mysql_secure_installation -uroot -p "kq3K = JR8; GqZ" mysql_secure_installation: [Avertissement] L'utilisation d'un mot de passe sur l'interface de ligne de commande peut ne pas être sûre. Sécurisation du déploiement du serveur MySQL . Le mot de passe existant pour le compte utilisateur root a expiré. Veuillez définir un nouveau mot de passe . Nouveau mot de passe: Ressaisissez le nouveau mot de passe: VALIDATE PASSWORD PLUGIN peut être utilisé pour tester les mots de passe Et améliorer la sécurité. Il vérifie la force du mot de passe Et permet aux utilisateurs de ne définir que les mots de passe qui sont suffisamment sécurisés. Voulez-vous configurer le plug-in VALIDATE PASSWORD? Appuyez sur y | Y pour Oui, toute autre touche pour Non: n Utilisation du mot de passe existant pour root . Modifiez le mot de passe pour root? ((Appuyez sur y | Y pour Oui, toute autre touche pour Non): y Nouveau mot de passe: Entrez le nouveau mot de passe: Par défaut, une installation MySQL a une valeur anonyme. utilisateur, permettant à quiconque de se connecter à MySQL sans avoir à créer un compte utilisateur créé à cet effet, destiné uniquement à testing et permettant une installation un peu plus fluide . Vous devriez supprimez-les avant de passer à un environnement de production environnement . Supprimez les utilisateurs anonymes? (Appuyez sur y | Y pour Oui, toute autre touche pour Non): y Succès .. Normalement, root ne devrait être autorisé à se connecter qu'à partir de 'Localhost'. Cela évite à quelqu'un de deviner le mot de passe root du réseau . Ne pas autoriser la connexion root à distance? (Appuyez sur y | Y pour Oui, toute autre clé pour Non): n ... sauter . Par défaut, MySQL est livré avec une base de données nommée 'test' à laquelle tout un chacun peut accéder. C'est aussi destiné uniquement aux tests, et doit être supprimé avant de passer à un environnement de production y accéder? (Appuyez sur y | Y pour Oui, toute autre touche pour Non): n ... ignorer ... Le rechargement des tables de privilèges garantira que toutes les modifications apportées jusqu'ici prendront effet immédiatement . (Appuyez sur y | Y pour Oui, toute autre touche pour Non): y Succès .. Tout est fait!!