web-dev-qa-db-fra.com

brasser installer mysql sur mac os

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)
307
nikola

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:

  1. mysql installé avec brew install mysql
  2. 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
    
  3. Démarrez mysql avec la commande mysql.server start pour pouvoir vous connecter

  4. Utilisé le script de sécurité alternatif:

    /usr/local/Cellar/mysql/5.5.10/bin/mysql_secure_installation
    
  5. 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
    
  6. 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! 

633
Lorin Rivers

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:

Supprimer complètement MySQL par The Tech Lab

  • ps -ax | grep mysql
  • arrêter et kill tous les processus MySQL
  • Sudo 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
  • éditez /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*
  • essayez de lancer mysql, cela ne devrait pas fonctionner

Brew installez MySQL par utilisateur Sedorner à partir de cette StackOverflow answer

  • brew doctor et corrigez les erreurs
  • brew 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
  • lancez les commandes suggérées par Brew, ajoutez MySQL à launchctl pour qu'il se lance automatiquement au démarrage

mysql devrait maintenant fonctionner et fonctionner tout le temps comme prévu

Bonne vitesse.

44
corysimmons

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.

42
Alistair McMillan

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
12
mrucci

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

8
Darren Newton

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. 

8
Mark

Si mysql est déjà installé

Arrêtez mysql complètement.

  1. mysql.server stop <- peut avoir besoin d'une édition basée sur votre version
  2. ps -ef | grep mysql <- liste les processus avec mysql dans leur nom
  3. kill [PID] <- tuer les processus par PID

Supprimer des fichiers. Les instructions ci-dessus sont bonnes. Je vais ajouter:

  1. Sudo find /. -name "*mysql*"
  2. En utilisant votre jugement, 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.

Installer

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

  1. Sudo brew update
  2. Sudo brew install cmake <- dépendance pour mysql, utile
  3. Sudo brew install openssl <- dépendance pour mysql, utile
  4. Sudo brew info mysql <- parcourez ceci ... cela vous donne une idée de ce qui va suivre
  5. Sudo 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)

Ensuite

  1. Sudo chown -R mysql /usr/local/var/mysql/ <- mysql ne fonctionnerait pas avant que j'aie lancé cette commande
  2. Sudo mysql.server start <- encore une fois, la syntaxe exacte peut varier
  3. Créez des utilisateurs dans mysql ( http://dev.mysql.com/doc/refman/5.7/fr/create-user.html ). N'oubliez pas d'ajouter un mot de passe pour l'utilisateur root.
6
sudo rm -rf slash

brasser 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.

3
Felipe Duardo

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.

2
Nicholas

Essayez en donnant l'autorisation d'accorder la commande de mysql

1
XMen

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.

1
toddmetheny

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
0
Bernhard Zürn

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.

0
Alexander Millar

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!! 
0
Edison